]> gcc.gnu.org Git - gcc.git/blame - gcc/cp/ChangeLog
call.c: Include intl.h.
[gcc.git] / gcc / cp / ChangeLog
CommitLineData
d2a6f3c0
ZW
12003-04-06 Zack Weinberg <zack@codesourcery.com>
2
3 * call.c: Include intl.h.
4 (print_z_candidate): Always use inform; get rid of errfn
5 argument. Reorganize so that all the strings get picked up
6 by xgettext. Note obligation of caller to pass first argument
7 through gettext.
8 (print_z_candidates): Update to match. Indent second and
9 successive candidates by strlen() of translated message.
10 (joust): Restructure ambiguous-conversion pedwarn so that
11 translators see a complete sentence. Update calls to
12 print_z_candidate.
13
14 * Make-lang.in (cp/call.o): Update dependencies.
15
ff955512
KG
162003-04-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17
18 * decl.c (set_current_binding_level): Delete, revert last change.
19 (current_binding_level): Modify to allow it as as lvalue.
20
da247ccc
KG
212003-04-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
22
23 * name-lookup.c (find_binding): Pass appropriate pointer type to
24 POP_TIMEVAR_AND_RETURN.
25
d893ff33
KG
262003-04-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
27
28 * Make-lang.in (cp-warn): Add $(STRICT_WARN).
29 * cp-tree.h: Don't insist on having GNUC.
30
78d55cc8
JM
312003-04-03 Jason Merrill <jason@redhat.com>
32
55a2af0c
JM
33 * cvt.c (ocp_convert): Only abort if we try to convert an object
34 of TREE_ADDRESSABLE type.
35
78d55cc8
JM
36 * class.c (build_vtable): Set DECL_ALIGN here.
37 (get_vtable_decl): Not here.
38 (layout_vtable_decl): Or here.
39 (create_vtable_ptr): Or here.
40 (layout_class_type): Or here.
41 (check_bitfield_decl): Don't mess with field alignment.
42
de94b46c
KG
432003-04-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
44
45 * operators.def (DEF_SIMPLE_OPERATOR, DEF_ASSN_OPERATOR,
46 DEF_ASSN_OPERATOR): Delete spurious semi-colon.
47 * rtti.c (dfs_class_hint_mark): Likewise.
48
49 * decl.c (push_local_name, push_class_level_binding,
50 maybe_inject_for_scope_var): Don't use POP_TIMEVAR_AND_RETURN in
51 functions returning void.
52 * decl2.c (add_using_namespace): Likewise.
53
54 * decl.c (print_binding_level, print_other_binding_stack,
55 print_binding_stack): Cast argument of %p specifier to void*.
56 * ptree.c (cxx_print_decl): Likewise.
57
58 * cp-tree.h (VAR_OR_FUNCTION_DECL_CHECK,
59 VAR_FUNCTION_OR_PARM_DECL_CHECK,
60 VAR_TEMPL_TYPE_OR_FUNCTION_DECL_CHECK, RECORD_OR_UNION_TYPE_CHECK,
61 BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK, LANG_TYPE_CLASS_CHECK,
62 LANG_TYPE_PTRMEM_CHECK, LANG_DECL_U2_CHECK): Add __extension__.
63
64 * decl.c (set_current_binding_level): New macro. Use throughout
65 when setting the current binding level.
66
67 * cp-tree.h (cp_lvalue_kind, base_access): Delete trailing comma
68 in enum.
69 * method.c (mangling_flags): Likewise.
70
71 * cp-tree.h (lang_type_header): Add __extension__ and use
72 CHAR_BITFIELD for members.
73
0de298af
GK
742003-04-02 Geoffrey Keating <geoffk@apple.com>
75
76 PR other/9274
77 * mangle.c: Include gt-cp-mangle.h.
78 (subst_identifiers): Mark with GTY.
79 * config-lang.in (gtfiles): Add cp/mangle.c.
80 * Make-lang.in: (gt-cp-mangle.h): New rule.
81 (cp/mangle.o): Depends on gt-cp-mangle.h.
82
28ea4c88
AP
832003-04-01 Andrew Pinski <pinskia@physics.uc.edu>
84
0de298af 85 * config-lang.in (gtfiles): Add \$(srcdir)/cp/name-lookup.c
28ea4c88
AP
86 after \$(srcdir)/cp/name-lookup.h.
87 * name-lookup.c: (cxx_binding_make): Use ggc_alloc_clearedinstead
88 of ggc_alloc. Include gt-cp-name-lookup.h at the end of the file.
0de298af
GK
89 * Make-lang.in: (gt-cp-name-lookup.h): Is generated by gengtype.
90 (cp/name-lookup.o): Depends on gt-cp-name-lookup.h.
d2a6f3c0 91
adff28c3
JM
922003-03-31 Jason Merrill <jason@redhat.com>
93
94 PR java/10145
95 * class.c (check_field_decl): Don't set DECL_ALIGN.
96
c717c5af
MM
972003-03-30 Mark Mitchell <mark@codesourcery.com>
98
99 PR c++/7647
100 * decl.c (grokdeclarator): Tidy, slightly.
101 * search.c (lookup_field_1): Add want_type parameter.
102 (lookup_field_r): Adjust call to lookup_field_1.
103
7c71dc2b
GDR
1042003-03-30 Gabriel Dos Reis <gdr@integrable-solutions.net>
105
106 * Make-lang.in (cp/name-lookup.o): Add more dependencies.
107
ed3cf953
GDR
1082003-03-30 Gabriel Dos Reis <gdr@integrable-solutions.net>
109
110 * cp-tree.h (binding_for_name: Move to name-lookup.h Adjust
d2a6f3c0 111 prototype.
ed3cf953
GDR
112 (cxx_scope_find_binding_for_name): Likewise.
113 * decl.c (find_binding: Move to name-lookup.c.
114 (binding_for_name): Likewise.
115 (cxx_scope_find_binding_for_name): Likewise.
116 (BINDING_LEVEL): Remove.
117 (push_binding): Tidy.
118 (push_class_binding): Likewise.
119 (pop_binding): Likewise.
120 (poplevel): Likewise.
121 (poplevel_class): Likewise.
122 (set_identifier_type_value_with_scope): Likewise.
123 (push_overloaded_decl): Likewise.
124 (lookup_tag): Likewise.
125 (unqualified_namespace_lookup): Likewise.
126 (lookup_name_current_level): Likewise.
127 (maybe_inject_for_scope_var): Likewise.
128 (namespace_binding): Move to name-lookup.c.
129 (set_namespace_binding): Likewise.
130 * decl2.c (lookup_using_namespace): Tidy.
131 (qualified_lookup_using_namespace): Likewise.
132 (do_toplevel_using_decl): Likewise.
133 * name-lookup.c: Include "timevar.h"
134 * name-lookup.h (cxx_scope): Declare.
135 (struct cxx_binding): Lose member "has_level". Adjust "scope"
136 member declaration.
137 (BINDING_SCOPE): Adjust definition.
138 (BINDING_HAS_LEVEL_P): Remove.
139
aed81407
GDR
1402003-03-30 Gabriel Dos Reis <gdr@integrable-solutions.net>
141
142 * name-lookup.c: New file.
143 * name-lookup.h: Likewise..
144 * decl.c (push_binding): Adjust use cxx_binding_make.
145 (free_bindings): Move to name-lookup.c
146 (pop_binding): Use cxx_binding_free.
147 (binding_for_name): Tidy.
148 * cp-tree.h: Include "name-lookup.h"
149 (cxx_binding_make): Move to name-lookup.h
150 (cxx_binding_clear): Likewise.
151 (struct cxx_binding): Likewise.
152 (LOCAL_BINDING_P): Likewise.
153 (INHERITED_VALUE_BINDING_P): Likewise.
154 (BINDING_SCOPE): Likewise.
155 (BINDING_HAS_LEVEL_P): Likewise.
156 (BINDING_VALUE): Likewise.
157 (BINDING_TYPE): Likewise.
158 * config-lang.in (gtfiles): Add cp/name-lookup.h
159 * Make-lang.in (cp/name-lookup.o): New rule.
160 (CXX_OBJS): Add cp/name-lookup.o
161 (CXX_TREE_H): Add cp/name-lookup.h
162
f7b9026e
JM
1632003-03-28 Jason Merrill <jason@redhat.com>
164
165 PR c++/10245
166 * cvt.c (force_rvalue): New fn.
167 * call.c (build_conditional_expr): Use it.
168 * cp-tree.h: Declare it.
169
2d30fe53
MS
1702003-03-28 Mike Stump <mrs@apple.com>
171
172 * error.c (dump_expr): Add 0x to printed hex numbers to make
173 output match source code better.
174
400fbc08
MM
1752003-03-28 Mark Mitchell <mark@codesourcery.com>
176
316a2456
MM
177 PR c++/10218
178 * decl.c (grokfndecl): Return NULL_TREE for bogus out-of-class
179 definitions.
180
400fbc08
MM
181 * decl2.c (generate_ctor_or_dtor_function): Tolerate a
182 non-existant ssdf_decls array.
183 (finish_file): Call generator_ctor_or_dtor_function when there are
184 static constructors or destructors and no other static
185 initializations.
186
433cd9c9
NS
1872003-03-28 Nathan Sidwell <nathan@codesourcery.com>
188
189 PR c++/10047
190 * decl2.c (finish_file): Don't warn about explicitly instantiated
191 inline decls.
192
544aef8c
NS
1932003-03-27 Nathan Sidwell <nathan@codesourcery.com>
194
195 PR c++/10224
196 * pt.c (lookup_template_class): Only check instantiated args if
197 they do not contain template parameters.
198
649fc72d
NS
1992003-03-27 Nathan Sidwell <nathan@codesourcery.com>
200
201 PR c++/10158
202 * parser.c (cp_parser_function_definition): Set
203 DECL_INITIALIZED_IN_CLASS for members.
204 * pt.c (instantiate_decl): Only reduce the template args for
205 friends that are not defined in class.
206
d8c8524d
JM
2072003-03-25 Jason Merrill <jason@redhat.com>
208
209 * call.c (print_z_candidate): Change name of first arg to msgid.
210 (joust): Add comment for translators.
211
1c82cc90 2122003-03-24 Nathan Sidwell <nathan@codesourcery.com>
d2a6f3c0 213
1c82cc90 214 PR c++/9898, PR c++/383, DR 322
649fc72d 215 * pt.c (maybe_adjust_types_for_deduction) <DEDUCE_CONV>: Look
1c82cc90
NS
216 through reference types on both PARM and ARG.
217
a5fcc895
NS
2182003-03-24 Nathan Sidwell <nathan@codesourcery.com>
219
220 PR c++/10119
649fc72d 221 * error.c (dump_expr) <BASELINK>: Use dump_expr.
a5fcc895 222 * pt.c (maybe_fold_nontype_args): New function.
649fc72d
NS
223 (tsubst_copy) <SCOPE_REF>: Subst any template_id args.
224 <TEMPLATE_ID_EXPR>: Break out folding code, call it.
225 (tsubst_copy_and_build) <TEMPLATE_ID_EXPR>: Call
a5fcc895
NS
226 maybe_fold_nontype_args.
227
2ef6c975
NS
2282003-03-24 Nathan Sidwell <nathan@codesourcery.com>
229
230 PR c++/10026
649fc72d 231 * decl2.c (arg_assoc_type) <ERROR_MARK>: Don't die.
2ef6c975 232
f29a2bd1
MM
2332003-03-23 Mark Mitchell <mark@codesourcery.com>
234
235 PR c++/7086
2ef6c975
NS
236 * typeck.c (cxx_mark_addressable): Adjust call to
237 gen_mem_addressof or put_var_into_stack.
f29a2bd1 238
3e4a3562
NS
2392003-03-22 Nathan Sidwell <nathan@codesourcery.com>
240
241 PR c++/9978, c++/9708
242 * cp-tree.h (instantiate_template): Add tsubst_flags parameter.
243 * call.c (add_template_candidate_real): Adjust
244 instantiate_template call.
245 * class.c (resolve_address_of_overloaded_function): Likewise.
246 * decl.c (build_enumerator): Set TREE_CONSTANT.
247 * pt.c (check_instantiated_args): New.
248 (push_inline_template_parms_recursive): Set TREE_CONSTANT,
249 TREE_READONLY.
250 (build_template_parm_index): Copy TREE_CONSTANT, TREE_READONLY.
251 (reduce_template_parm_level): Likewise.
252 (process_template_parm): Likewise.
253 (check_explicit_specialization): Adjust instantiate_template call.
254 (convert_template_argument): Don't check non-type argument here.
255 (lookup_template_class): Check them here.
256 (tsubst_friend_function): Adjust instantiate_template call.
257 (instantiate_template): Add tsubst_flags parameter, use it. Check
258 instantiated args.
259
d9b2742a
ZW
2602003-03-21 Zack Weinberg <zack@codesourcery.com>
261
262 * decl.c: Update calls to shadow_warning.
263
f3146d75
NS
2642003-03-21 Nathan Sidwell <nathan@codesourcery.com>
265
266 PR c++/9898
267 * error.c (dump_decl) [CONST_DECL]: Print '<enumerator>'.
268 (dump_expr) [CONSTRUCTOR]: Print default ctor as a function call.
269
963142fc
MM
2702003-03-20 Mark Mitchell <mark@codesourcery.com>
271
272 * cp/decl2.c (arg_assoc_class): Correct check for namespace-scope
273 friends.
274 * cp/pt.c (instantiate_class_template): Fix formatting.
275
a260bce6
MA
2762003-03-14 Matt Austern <austern@apple.com>
277
278 * cp-tree.h (unemitted_tinfo_decls): Declaration of a new varray.
279 (unemitted_tinfo_decl_p): Remove.
280 (emit_tinfo_decl): Change declaration to remove unused parameter.
281 * decl2.c (finish_file): Change tinfo emission to loop through
282 unemitted_tinfo_decls array instead of looping through all decls.
283 * rtti.c (unemitted_tinfo_decl_p): Declare as static, remove
284 unused second parameter.
285 (init_rtti_processing): initialize unemitted_tinfo_decls varray.
286 (get_tinfo_decls): push new tinfo decl on unemitted_tinfo_decls.
287 (emit_tinfo_decl): remove unused second parameter, add assertion
d9b2742a
ZW
288 that decl hasn't already been emitted.
289
2bd3ecad
NN
2902003-03-19 Nathanael Nerode <neroden@gcc.gnu.org>
291
292 * dump.c (cp_dump_tree), cp-tree.h (cp_dump_tree): Change return
293 type from 'int' to 'bool'. Replace 0 and 1 with true and false in
294 return statements.
295
b9747e59
JM
2962003-03-19 Jason Merrill <jason@redhat.com>
297
298 PR c++/8316, c++/9315, c++/10136
299 * call.c (print_z_candidate): Split out from...
300 (print_z_candidiates): ...here.
301 (joust): Use it.
302
10326855
RS
3032003-03-17 Roger Sayle <roger@eyesopen.com>
304
b9747e59 305 PR c++/10031
10326855
RS
306 * decl.c (duplicate_decls): Use the new type when prototyping
307 anticipated decls, even when the types match. This defines the
308 exception list for the built-in function.
309
bdaa131b
JM
3102003-03-17 Jason Merrill <jason@redhat.com>
311
312 PR c++/10091
d9b2742a 313 * typeck.c (build_class_member_access_expr): Compare
bdaa131b
JM
314 TYPE_MAIN_VARIANTs.
315
ec20aa6c
MM
3162003-03-17 Mark Mitchell <mark@codesourcery.com>
317
318 PR c++/9639
319 * parser.c (cp_parser_declarator_id): Clear parser->scope.
320
35e939ae
JM
3212003-03-16 Jason Merrill <jason@redhat.com>
322
323 PR c++/9993
324 * decl.c (finish_function): Only allow the NRVO to use variables
325 declared at function scope.
326
40a4184c
AJ
3272003-03-17 Andreas Jaeger <aj@suse.de>
328
329 * Make-lang.in (cp/TAGS): Remove.
330
1f5a253a
NS
3312003-03-16 Nathan Sidwell <nathan@codesourcery.com>
332
333 PR c++/9629
334 * cp-tree.h (struct language_function): Add in_base_initializer.
335 (in_base_initializer): define it.
336 (expand_member_init): Remove INIT param.
337 * init.c (expand_member_init): Remove INIT param, return the member.
338 (emit_mem_initializers): Set in_base_initializer.
339 * class.c (build_base_path): Check in_base_initializer.
340 * parser.c (cp_parser_mem_initializer): Set in_base_initializer.
341 * pt.c (tsubst_initializer_list): Likewise.
342
4f907b59
GDR
3432003-03-16 Gabriel Dos Reis <gdr@integrable-solutions.net>
344
345 * decl.c (binding_for_name): Fix initialization thinko.
346
ac2768ff 3472003-03-15 Gabriel Dos Reis <gdr@integrable-solutions.net>
40a4184c 348
af6fd53f
GDR
349 Compile-time improvement: 2/n.
350 * cp-tree.h (struct cxx_binding): New datatype;
351 (struct lang_identifier): Use it.
352 (LOCAL_BINDING_P): Adjust definition.
353 (INHERITED_VALUE_BINDING_P): Likewise.
354 (BINDING_SCOPE): Likewise.
355 (BINDING_HAS_LEVEL_P): Likewise.
356 (BINDING_VALUE): Likewise.
357 (BINDING_TYPE): Likewise.
358 (IDENTIFIER_VALUE): Likewise.
359 (struct tree_binding): Remove.
360 (TS_CP_BINDING): Likewise.
361 ((union lang_tree_node): Remove field "binding".
362 (cxx_binding_clear): New macro.
363 (binding_for_name): Adjust return type.
364 (qualified_lookup_using_namespace): Adjust prototype.
365 (lookup_using_namespace): Adjust prototype.
366 (cxx_scope_find_binding_for_name): Declare.
367 * cp-tree.def: Remove CPLUS_BINDING definition.
368 * decl.c (push_binding): Adjust local variable type.
369 (add_binding): Likewise.
370 (push_class_binding): Likewise.
371 (pop_binding): Likewise.
372 (poplevel): Likewise.
373 (poplevel_class): Likewise.
374 (free_bindings): Adjust type.
375 (find_binding): Adjust return type, add a third parameter. Remove
40a4184c 376 non-useful assertion now that we use static typing.
af6fd53f 377 (cxx_scope_find_binding_for_name): New function.
40a4184c 378 (binding_for_name): Use it. Adjust local variable type. Simplify.
af6fd53f
GDR
379 (namespace_binding): Simplify.
380 (set_namespace_binding): Likewise.
381 (set_identifier_type_value_with_scope): Adjust local variable type.
382 (lookup_tag): Don't type-abuse of local variable 'old'.
383 (lookup_namespace_name): Likewise. Allocate binding on stack.
384 (select_decl): Adjust prototype.
385 (unqualified_namespace_lookup): Allocate binding on stack.
386 Don't type-abuse of local variable 'val'.
387 (lookup_name_real): Likewise.
388 (maybe_inject_for_scope_var): Adjust local variable type.
389 (cp_tree_node_structure): Remove CPLUS_BINDING case label.
390 (namespace_binding): Adjust logic, simplify.
391 (BINDING_LEVEL): Adjust definition.
392 (push_class_level_binding): Adjust local variable type.
393 (struct cxx_saved_binding): Adjust field 'binding' type.
394 * decl2.c (ambiguous_decl): Adjust prototype.
395 (lookup_using_namespace): Adjust local variable type.
396 (qualified_lookup_using_namespace): Catch type error and correct
397 ensueing logic error.
398 (do_nonmember_using_decl): Adjust local variable type. Allocate
399 temporary cxx_binding on stack.
400 (do_toplevel_using_decl): Adjust local variable type.
401 * ptree.c (cxx_print_cxx_binding): New function.
402 (cxx_print_identifier): Use it.
403 (cxx_print_xnode): Delete CPLUS_BINDING case label.
404
6a87d634
RS
4052003-03-15 Roger Sayle <roger@eyesopen.com>
406
407 * tree.c (count_functions): Fix whitespace.
408
c1bad961
NB
4092003-03-15 Neil Booth <neil@daikokuya.co.uk>
410
411 * Make-lang.in: Update.
412
6e049fcd
KL
4132003-03-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
414
415 PR c++/6440
416 * pt.c (maybe_process_partial_specialization): Handle
417 member class template when enclosing class template is
418 explicit specialized.
419 (most_general_template): Stop looking when DECL is already
420 specialized.
421
0171b21c
JM
4222003-03-13 Jason Merrill <jason@redhat.com>
423
424 PR c++/9420
425 * search.c (lookup_conversions): Call complete_type here.
426 * call.c (implicit_conversion): Not here.
427
26f86471
MM
4282003-03-13 Mark Mitchell <mark@codesourcery.com>
429
45707d31
MM
430 * decl2.c (do_nonmember_using_decl): Correct handling of
431 simultaneous type/non-type bindings.
432
26f86471
MM
433 * call.c (initialize_reference): Remove bogus assertion.
434 * decl.c (build_ptrmemfunc_type): Revert change of 2003-03-09.
435
847311f4
AL
4362003-03-12 Andrew Lewycky <andrew@mxc.ca>
437
438 PR c++/7050
439 * expr.c (cxx_expand_expr): Return const0_rtx for throw
440 expressions.
441
2601a4ee
MM
4422003-03-11 Mark Mitchell <mark@codesourcery.com>
443
e1145e7f 444 PR c++/9474
2601a4ee
MM
445 * decl2.c (do_nonmember_using_decl): Do not call duplicate decls
446 to merge old and new declarations.
447
2bfe542b
AO
4482003-03-12 Alexandre Oliva <aoliva@redhat.com>
449
450 * g++.1: Remove.
451 * Make-lang.in (c++.generated-manpages): Build cp/g++.1.
452 (cp/g++.1): Build it from scratch in the build tree.
453 (c++.install-man): Depend on it. Install it from the build tree.
454 (c++.mostlyclean): Clean it.
455
0c33daff
MM
4562003-03-11 Mark Mitchell <mark@codesourcery.com>
457
3033f0ed 458 PR c++/9474
2601a4ee
MM
459 * decl2.c (do_nonmember_using_decl): Do not call duplicate decls
460 to merge old and new declarations.
461
0c33daff
MM
462 PR c++/9924
463 * decl2.c (do_nonmember_using_decl): Ignore anticipated builtins.
464
cf237c19
JM
4652003-03-11 Jason Merrill <jason@redhat.com>
466
467 PR c++/9820
40a4184c 468 * search.c (lookup_member): Fix handling of functions in a class
cf237c19
JM
469 being defined.
470
436f8a4c
MM
4712003-03-11 Mark Mitchell <mark@codesourcery.com>
472
473 PR c++/8700
474 * call.c (convert_class_to_reference): Adjust usage of
475 splice_viable.
476 (any_viable): Remove.
477 (splice_viable): Combine with any_viable.
478 (print_z_candidates): Avoid printing duplicates.
479 (build_user_type_conversion_1): Adjust usage of splice_viable.
480 (build_new_function_call): Likewise.
481 (build_operator_new_call): Likewise.
482 (build_object_call): Likewise.
483 (build_conditional_expr): Likewise.
484 (build_new_op): Likewise.
485 (build_new_method_call): Likewise.
486 (joust): Remove spurious comment.
487 * cp-tree.h (DECL_FRIENDLIST): Correct documentation.
488 * decl2.c (arg_assoc_class): Simplify.
489 * friend.c (add_friend): Likewise.
490
5b8e011c
JM
4912003-03-11 Jason Merrill <jason@redhat.com>
492
493 PR c++/8660
40a4184c 494 * decl2.c (check_classfn): A member template only matches a
5b8e011c
JM
495 member template.
496
cb60f38d
NB
4972003-03-11 Neil Booth <neil@daikokuya.co.uk>
498
499 * Make-lang.in (CXX_C_OBJS): Update.
500 * lang-specs.h: Don't define __GNUG__ here.
501
125e6594
MM
5022003-03-10 Mark Mitchell <mark@codesourcery.com>
503
504 * call.c (perform_overload_resolution): New function.
505 (build_new_function_call): Use it.
506 (build_operator_new_call): Likewise.
507 (add_candidates): Add explicit_targs and template_only parameters.
508 (build_new_op): Adjust accordingly.
509 * cp-tree.h (build_operator_new_call): New function.
510 (build_function_call_real): Remove.
511 (build_function_call_maybe): Likewise.
512 * init.c (build_new_1): Use build_operator_new_call.
513 * typeck.c (build_function_call_real): Rename to ...
514 (build_function_call): ... this.
515
87d7d780 5162003-03-10 Devang Patel <dpatel@apple.com>
40a4184c 517
87d7d780
DP
518 PR c++/9394
519 * g++spec.c (lang_specific_driver): Use DEFAULT_WORD_SWTCH_TAKES_ARG.
125e6594 520
6e9554e1
JM
5212003-03-10 Jason Merrill <jason@redhat.com>
522
70f0e288
JM
523 PR c++/9798
524 * decl.c (push_using_directive): Push before recursing.
525
526 PR c++/9868, c++/9524
6e9554e1
JM
527 * call.c (resolve_scoped_fn_name): Handle the case of a function
528 pointer member.
529
530 * decl2.c (build_offset_ref_call_from_tree): Only mess with 'this'
531 argument in the pointer-to-member case.
532
f6d19bfe
MM
5332003-03-09 Mark Mitchell <mark@codesourcery.com>
534
1d719415
MM
535 PR c++/9373
536 * cp-lang.c (cxx_get_alias_set): Use alias set zero for
537 pointers to member functions.
538
f6d19bfe
MM
539 PR c++/8534
540 * decl.c (build_ptrmemfunc_type): Do not allow default arugments
541 in pointer-to-member-function types.
542
d9b4e85e
GDR
5432003-03-10 Gabriel Dos Reis <gdr@integrable-solutions.net>
544
545 * expr.c (cplus_expand_constant): Use C90 prototype style.
546 (cxx_expand_expr): Likewise.
547
ca9e1382
KL
5482003-03-09 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
549
550 PR c++/9970
551 * decl.c (duplicate_decls): Only copy DECL_THUNKS for virtual
552 functions.
553
00a221f0
GK
5542003-03-08 Geoffrey Keating <geoffk@apple.com>
555
556 * lang-specs.h (c++-header): Change .pch to .gch.
557
4bfec483
NB
5582003-03-08 Neil Booth <neil@daikokuya.co.uk>
559
560 * cp-tree.h (cxx_init): Update prototype.
561 * lex.c (cxx_init): Similarly.
562
089d6ea7
MM
5632003-03-08 Mark Mitchell <mark@codesourcery.com>
564
0e136342
MM
565 PR c++/9823
566 * cp-tree.h (begin_mem_initializers): Remove.
567 * parser.c (cp_parser_mem_initializer_list): Inline it here.
568 Do not call finish_mem_initializers if not in a constructor.
569 (cp_parser_class_head): Fix typo in error message.
570 * semantics.c (begin_mem_initializers): Remove.
571 * testsuite/g++.dg/parser/constructor1.C: New test.
572
089d6ea7
MM
573 PR c++/9809
574 * call.c (add_function_candidate): Skip builtin fuctions that have
575 not yet been declared.
576
577 PR c++/9982
578 * init.c (build_new_1): Correct logic for determining whether or
579 not to use an array cookie.
580
581 PR c++/9524
582 * parser.c (cp_parser_postfix_expression): Call
583 finish_non_static_data_member, even when processing_template_decl.
584
585 PR c++/9912
586 * cp-tree.h (is_ancestor): New function.
587 (handle_class_head): Change prototype.
588 * decl2.c (is_namespace_ancestor): Rename to ...
589 (namespace_anecestor): ... this.
590 (set_decl_namespace): Adjust accordingly.
591 (handle_class_head): Remove unncessary parameters.
592 * parser.c (cp_parser_class_head): Check that
593 nested-name-specifiers are used appropriately.
40a4184c 594
aa6e8ed3
MM
5952003-03-07 Mark Mitchell <mark@codesourcery.com>
596
597 * call.c (reference_binding): Remove REF_IS_VAR parameter.
598 (implicit_conversion): Adjust call to reference_binding.
599 (make_temporary_var_for_ref_to_type): Add TYPE parameter.
600 (initialize_reference): Adjust handling for references bound to
601 rvalues.
602 * cp-tree.h (make_temporary_var_for_ref_to_temp): Change
603 prototype.
604 (real_non_cast_lvalue_p): New method.
605 * cvt.c (build_up_reference): Adjust use of
606 make_temporary_var_for_ref_to_temp.
89d11511 607 * tree.c (real_non_cast_lvalue_p): New method.
40a4184c 608
5cc3d3b8
GDR
6092003-03-07 Gabriel Dos Reis <gdr@integrable-solutions.net>
610
611 * except.c (init_exception_processing): Use C90 prototype style.
612 (cp_protect_cleanup_actions): Likewise.
613 (prepare_eh_type): Likewise.
614 (build_eh_type_type): Likewise.
615 (build_exc_ptr): Likewise.
616 (do_begin_catch): Likewise.
617 (dtor_nothrow): Likewise.
618 (do_end_catch): Likewise.
619 (push_eh_cleanup): Likewise.
620 (decl_is_java_type): Likewise.
621 (choose_personality_routine): Likewise.
622 (initialize_handler_parm): Likewise.
623 (expand_start_catch_block): Likewise.
624 (expand_end_catch_block): Likewise.
625 (begin_eh_spec_block): Likewise.
626 (finish_eh_spec_block): Likewise.
627 (do_allocate_exception): Likewise.
628 (do_free_exception): Likewise.
629 (wrap_cleanups_r): Likewise.
630 (stabilize_throw_expr): Likewise.
631 (build_throw): Likewise.
632 (complete_ptr_ref_or_void_ptr_p): Likewise.
633 (is_admissible_throw_operand): Likewise.
634 (nothrow_libfn_p): Likewise.
635 (can_convert_eh): Likewise.
636 (check_handlers_1): Likewise.
637 (check_handlers): Likewise.
40a4184c 638
3d938426
MM
6392003-03-06 Mark Mitchell <mark@codesourcery.com>
640
641 * call.c (merge_conversion_sequences): New function.
642 (build_conv): Set ICS_USER_FLAG for USER_CONVs.
643 (convert_class_to_reference): Correct handling of second
644 standard conversion sequence in a user-defined conversion
645 sequence.
646 (build_user_type_conversion_1): Use merge_conversion_sequences.
647 * cp-tree.def: Add comments for CONV nodes.
9534f4bc 648 * rtti.c (get_tinfo_decl): Use build_address/build_nop.
40a4184c 649
3f8548e7
GDR
6502003-03-07 Gabriel Dos Reis <gdr@integrable-solutions.net>
651
652 * error.c (init_error): Use C90 prototype style.
653 (dump_scope): Likewise.
654 (dump_qualifiers): Likewise.
655 (dump_template_argument): Likewise.
656 (dump_template_argument_list): Likewise.
657 (dump_template_parameter): Likewise.
658 (dump_template_bindings): Likewise.
659 (dump_type): Likewise.
660 (dump_typename): Likewise.
661 (class_key_or_enum): Likewise.
662 (dump_aggr_type): Likewise.
663 (dump_type_prefix): Likewise.
664 (dump_type_suffix): Likewise.
665 (dump_global_iord): Likewise.
666 (dump_simple_decl): Likewise.
667 (dump_decl): Likewise.
668 (dump_template_decl): Likewise.
669 (dump_function_decl): Likewise.
670 (dump_parameters): Likewise.
671 (dump_exception_spec): Likewise.
672 (dump_function_name): Likewise.
673 (dump_template_parms): Likewise.
674 (dump_char): Likewise.
675 (dump_expr_list): Likewise.
676 (dump_expr): Likewise.
677 (dump_binary_op): Likewise.
678 (dump_unary_op): Likewise.
679 (type_as_string): Likewise.
680 (expr_as_string): Likewise.
681 (decl_as_string): Likewise.
682 (context_as_string): Likewise.
683 (lang_decl_name): Likewise.
684 (cp_file_of): Likewise.
685 (cp_line_of): Likewise.
686 (decl_to_string): Likewise.
687 (expr_to_string): Likewise.
688 (fndecl_to_string): Likewise.
689 (code_to_string): Likewise.
690 (language_to_string): Likewise.
691 (parm_to_string): Likewise.
692 (op_to_string): Likewise.
693 (type_to_string): Likewise.
694 (assop_to_string): Likewise.
695 (args_to_string): Likewise.
696 (cv_to_string): Likewise.
697 (cxx_print_error_function): Likewise.
698 (cp_diagnostic_starter): Likewise.
699 (cp_diagnostic_finalizer): Likewise.
700 (cp_print_error_function): Likewise.
701 (function_category): Likewise.
702 (print_instantiation_full_context): Likewise.
703 (print_instantiation_partial_context): Likewise.
704 (maybe_print_instantiation_context): Likewise.
705 (print_instantiation_context): Likewise.
706 (cp_printer): Likewise.
707 (print_integer): Likewise.
708 (print_non_consecutive_character): Likewise.
709 (locate_error): Likewise.
710
3d1df1fa
MM
7112003-03-06 Mark Mitchell <mark@codesourcery.com>
712
5e256996
MM
713 PR c++/9965
714 * call.c (reference_binding): Add ref_is_var parameter.
715 (implicit_conversion): Adjust call to reference_binding.
716 (initialize_reference): Likewise.
717
07681121
MM
718 PR c++/9400
719 * decl.c (pushdecl): Don't check for shadowing of DECL_ARTIFICIAL
720 PARM_DECLs.
721
3d1df1fa
MM
722 PR c++/9791
723 * class.c (get_basefndecls): Use lookup_fnfields_1.
724
8a6393df
KL
7252003-03-06 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
726
727 PR c++/9188
728 * parser.c (cp_parser_type_parameter): Remove redundant `expect'
729 in error message.
730 (cp_parser_single_declaration): Likewise.
731
c965b169
JM
7322003-03-05 Jason Merrill <jason@redhat.com>
733
734 PR c++/9440
735 * call.c (build_conditional_expr): Use convert rather than an
736 explicit NOP_EXPR.
737
1d555f7a
MA
7382003-03-02 Matt Austern <austern@apple.com>
739
740 * decl.c (cp_binding_level): Add static_decls varray member.
741 (add_decl_to_level): Add static/inline namespace scope
742 declarations to static_decls array.
743 (wrapup_global_for_namespace): Pass static_decls only, instead of
744 all decls, to wrapup_global_declarations/check_global_declarations.
745 (push_namespace): Initialize static_decls for ordinary namespaces.
746 (cxx_init_decl_processing): Initialize static_decls for global
747 namespace.
40a4184c 748
8234c6c1
MM
7492003-03-05 Mark Mitchell <mark@codesourcery.com>
750
751 * class.c (end_of_class): Correct thinko.
752
dc2b3526
NN
7532003-03-04 Nathanael Nerode <neroden@gcc.gnu.org>
754
755 * config-lang.in: Replace ${libstdcxx_version} by its value.
756
000d38ea
GDR
7572003-03-04 Gabriel Dos Reis <gdr@integrable-solutions.net>
758
d9b2742a
ZW
759 * cp-tree.h (cxx_saved_binding): Declare.
760 (struct saved_scope): Adjust type of field 'old_binding'.
761 * decl.c (cxx_saved_binding_make): New macro.
762 (struct cxx_saved_binding): Define.
763 (store_bindings): Adjust prototype. Use cxx_saved_binding to save
764 C++ bindings.
765 (maybe_push_to_top_level): Adjust local variable type.
766 (pop_from_top_level): Likewise.
40a4184c 767
b87141b3
TT
7682003-03-04 Tom Tromey <tromey@redhat.com>
769
770 * Make-lang.in (c++.tags): New target.
771
f20d8e39
NB
7722003-03-04 Neil Booth <neil@daikokuya.co.uk>
773
774 * Make-lang.in: Update.
775
f5d70cc0
JM
7762003-03-03 Jason Merrill <jason@redhat.com>
777
778 * decl.c (finish_enum): Do set the type in a template. Simplify.
779 * pt.c (tsubst_enum, tsubst_copy): Revert last patch.
780
7993382e
MM
7812003-03-03 Mark Mitchell <mark@codesourcery.com>
782
783 PR c++/9878
784 * call.c (convert_class_to_reference): Correct conversion
785 sequences.
786 (reference_binding): Add ref_bound_directly_to_rvalue_p parameter.
787 (implicit_conversion): Adjust call to reference_binding.
788 (add_candidate): Change type of candidates parameter.
789 (add_function_candidate): Likewise.
790 (add_conv_candidate): Likewise.
791 (build_builtin_candidate): Likewise.
792 (add_builtin_candidate): Likewise.
793 (add_builtin_candidates): Likewise.
794 (add_template_candidate_real): Likewise.
795 (add_template_candidate): Likewise.
796 (add_template_conv_candidate): Likewise.
797 (build_user_type_conversion_1): Adjust accordingly.
798 (build_object_call): Likewise.
799 (build_conditional_expr): Likewise.
800 (add_candidates): Likewise.
801 (build_new_op): Likewise.
802 (convert_like_real): Use USER_CONV_CAND. Use build_nop.
803 (build_new_method_call): Adjust calls to add_function_candidate.
804 (make_temporary_var_for_ref_to_temp): New function.
805 (initialize_reference): Add decl parameter.
806 * class.c (build_rtti_vtbl_entries): Use build_address and
807 build_nop.
808 * cp-tree.h (initialize_reference): Change prototype.
809 (make_temporary_var_for_ref_to_temp): New function.
810 (build_type_conversion): Change prototype.
811 (build_address): New function.
812 (build_nop): Likewise.
813 * cvt.c (cp_convert_to_pointer): Adjust call to
814 build_type_conversion. Avoid indicating redundant NOP_EXPRs.
815 Use build_nop.
816 (convert_to_pointer_force): Use build_nop.
817 (build_up_reference): Use make_temporary_var_for_ref_to_temp.
818 (convert_to_reference): Adjust call to build_type_conversion.
819 (ocp_convert): Likewise.
820 (build_type_conversion): Remove for_sure parameter.
821 * decl.c (grok_reference_init): Use initialize_reference.
822 * typeck.c (build_address): New function.
823 (build_nop): Likewise.
824 (build_unary_op): Use them.
825 (build_ptrmemfunc): Tidy slightly.
826 (convert_for_initialization): Adjust call to
827 initialize_reference.
828 * typeck2.c (store_init_value): Remove #if 0'd code.
40a4184c 829
d1a74aa7
JM
8302003-03-03 Jason Merrill <jason@redhat.com>
831
832 * decl.c (start_function): Clear DECL_NUM_STMTS.
833
834 * class.c (get_vtable_decl): Use vtbl_type_node.
835 (build_primary_vtable): Check for it.
836
6e1b3a7c
AH
8372003-03-02 Aldy Hernandez <aldyh@redhat.com>
838
08162287 839 * decl.c (check_initializer): Check for vector_opaque_p.
6e1b3a7c 840
8a035a6b
AH
8412003-03-02 Ashif Harji <asharji@uwaterloo.ca>
842
843 * lang-specs.h (default_compilers): Add -no-integrated-cpp flag to
844 invoke an external cpp during compilation.
845
456d8864
GDR
8462003-03-01 Gabriel Dos Reis <gdr@integrable-solutions.net>
847
848 * decl.c (duplicate_decls): Convert use of warning_with_decl() to
849 that of warning().
850 (start_decl): Likewise.
851 (start_function): Likewise.
852
5793b276
NB
8532003-03-01 Neil Booth <neil@daikokuya.co.uk>
854
855 * Make-lang.in (CXX_C_OBJS): Update.
856
b063b379 8572003-02-28 Mark Mitchell <mark@codesourcery.com>
1d62c33e
MM
858
859 PR c++/9892
860 * pt.c (instantiate_decl): Clear DECL_RTL for a VAR_DECL when
861 instantiating it.
862
704a0bbd
AH
8632003-02-28 Aldy Hernandez <aldyh@redhat.com>
864
d9b2742a
ZW
865 * parser.c (cp_parser_init_declarator): Revert opaque
866 vector_opaque_p change.
867 Do not include target.h.
704a0bbd 868
1cb8292f
MM
8692003-02-28 Mark Mitchell <mark@codesourcery.com>
870
871 PR c++/9879
872 * cp-tree.h (build_zero_init): Add parameter.
873 * decl.c (cp_finish_decl): Adjust call.
874 * init.c (build_zero_init): Add nelts parameter. Adjust recursive
875 calls.
876 (build_default_init): Add nelts parameter. Adjust calls to
877 build_zero_init.
878 (build_new_1): Adjust call to build_default_init.
879 * typeck2.c (process_init_constructor): Adjust call to build_zero_init.
40a4184c 880
fdedded1
DP
8812003-02-26 Devang Patel <dpatel@apple.com>
882
2ef6c975
NS
883 * decl.c (finish_enum): Merge two 'for' loops. Copy value node if
884 required. Postpone enum setting for template decls.
885 (build_enumerator): Delay copying value node until finish_enum
886 (). Remove #if 0'ed code.
fdedded1
DP
887 * pt.c (tsubst_enum): Set TREE_TYPE and copy value node.
888 (tsubst_copy): Add check for enum type.
40a4184c 889
cec24319
MM
8902003-02-25 Mark Mitchell <mark@codesourcery.com>
891
892 PR c++/9683
893 * decl2.c (prune_vars_needing_no_initialization): Do not throw
894 away initializations for DECL_EXTERNAL VAR_DECLs.
895 (finish_file): Adjust accordingly.
896 * pt.c (instantiate_decl): Do not defer VAR_DECLs.
897
7d9f2df2
GDR
8982003-02-24 Gabriel Dos Reis <gdr@integrable-solutions.net>
899
08162287
JM
900 * decl.c (add_binding): Time TV_NAME_LOOKUP.
901 (push_class_binding): Likewise.
902 (set_namespace_binding): Likewise.
7d9f2df2 903
353b4fc0
MM
9042003-02-24 Mark Mitchell <mark@codesourcery.com>
905
906 PR c++/9836
907 * cp-tree.h (CLASSTYPE_PRIMARY_TEMPLATE): Do not skip from
908 specializations back to the main template.
909 * parser.c (cp_parser_diagnose_invalid_type_name):Adjust use.
910 * pt.c (resolve_typename_type): Likewise.
911
8b6a662e
JO
9122003-02-24 Jeffrey D. Oldham <oldham@codesourcery.com>
913
914 PR c++/9778
915 * pt.c (tsubst_copy_and_build): For a templated function inside a
916 scope, process template arguments.
917
9e236a9d
KL
9182003-02-24 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
919
920 PR c++/9602
921 * typeck2.c (abstract_virtuals_error): Don't check when
922 TYPE is still template parameter dependent.
923
ca099ac8
MM
9242003-02-23 Mark Mitchell <mark@codesourcery.com>
925
926 PR c++/5333
927 * cp-tree.h (CLASSTYPE_PRIMARY_TEMPLATE): New macro.
928 * parser.c (cp_parser_diagnose_invalid_type_name): Use it.
929 * pt.c (instantiate_class_template): Don't try to instantiate
930 dependent types.
931 (resolve_typename_type): Use CLASSTYPE_PRIMARY_TEMPLATE.
40a4184c 932
2fff6d71
MM
9332003-02-21 Mark Mitchell <mark@codesourcery.com>
934
935 PR c++/9749
936 * decl.c (grokdeclarator): Do not allow parameters with variably
937 modified types.
938
7fb1c86d
NS
9392003-02-21 Nathan Sidwell <nathan@codesourcery.com>
940
1f5a253a 941 * search.c (grow_bfs_bases): Remove. Fold into ...
7fb1c86d
NS
942 (bfs_walk): ... here, fix fencepost error. Fix merge lossage
943 in previous patch.
944
63a3cd3e
MM
9452003-02-20 Mark Mitchell <mark@codesourcery.com>
946
947 PR c++/9729
948 * mangle.c (mangle_conv_op_name_for_type): Issue an error message
949 when the G++ 3.2 ABI prevents correct compilation.
950
dbbf88d1
NS
9512003-02-20 Nathan Sidwell <nathan@codesourcery.com>
952
953 Change base class access representation. Share virtual base
954 binfos.
955 * cp/call.c (build_special_member_call): Remove binfo_for_vbase
956 call.
957 * cp/class.c (build_base_path): Likewise.
958 (build_primary_vtable): Adjust BINFO_NEW_VTABLE_MARKED use.
959 (build_secondary_vtable): Remove FOR_TYPE arg. Adjust.
960 (make_new_vtable): Adjust.
961 (force_canonical_binfo_r): Delete.
962 (force_canonical_binfo): Delete.
963 (mark_primary_virtual_base): Delete.
964 (dfs_unshared_virtual_bases): Delete.
965 (mark_primary_bases): Adjust.
966 (maybe_warn_about_overly_private_class): Adjust.
967 (dfs_base_derived_from): Delete.
968 (base_derived_from): Follow the inheritance chain.
969 (struct find_final_overrider_data): Add vpath member.
970 (dfs_find_final_overrider): Adjust.
971 (dfs_find_final_overrider_q, dfs_find_final_overrider_post): New.
972 (find_final_overrider): Adjust.
973 (update_vtable_entry_for_fn): Adjust.
974 (modify_all_vtables): Adjust.
975 (walk_subobject_offsets): Adjust.
976 (layout_nonempty_base_or_field): Adjust.
977 (layout_empty_base): Remove last parameter. Adjust.
978 (build_base_field): Adjust.
979 (build_base_fields): Adjust.
980 (propagate_binfo_offsets): Remove last parameter. Adjust.
981 (dfs_set_offset_for_unshared_vbases): Delete.
982 (layout_virtual_bases): Adjust.
983 (finish_struct_1): Adjust.
984 (init_class_processing): Don't init access nodes.
985 (dfs_get_primary_binfo): Delete.
986 (get_primary_binfo): Adjust.
987 (dump_class_hierarchy_r): Remove most derived arg, add IGO
988 parameter. Adjust.
989 (dump_class_hierarchy): Adjust.
990 (finish_vtbls): Adjust.
991 (get_original_base): Delete.
992 (build_vtt_inits): Adjust.
993 (dfs_build_secondary_vptr_vtt_inits): Adjust.
994 (dfs_ctor_vtable_bases_queue_p): Adjust.
995 (build_ctor_vtbl_group): Adjust.
996 (dfs_accumulate_vtbl_inits): Adjust.
997 (build_vtbl_initializer): Adjust.
998 (build_vbase_offset_vtbl_entries): Adjust.
999 (add_vcall_offset_vtbl_entries_1): Adjust.
1000 * cp/cp-tree.h (CPTI_ACCESS_*): Remove.
1001 (access_*_node): Remove.
1002 (CANONICAL_BINFO): Delete.
1003 (BINFO_UNSHARED_MARKED): Remove.
1004 (BINFO_MARKED): Set LANG_FLAG_0 directly.
1005 (SET_BINFO_MARKED, CLEAR_BINFO_MARKED): Delete.
1006 (BINFO_VTABLE_PATH_MARKED): Set LANG_FLAG_3 directly.
1007 (SET_BINFO_VTABLE_PATH_MARKED, CLEAR_BINFO_VTABLE_PATH_MARKED):
1008 Delete.
1009 (BINFO_NEW_VTABLE_MARKED): Set LANG_FLAG_4 directly.
1010 (SET_BINFO_NEW_VTABLE_MARKED): Adjust.
1011 (SET_BINFO_PUSHDECLS_MARKED, CLEAR_BINFO_PUSHDECLS_MARKED):
1012 Delete.
1013 (BINFO_DEPENDENT_BASE_P): New.
1014 (dfs_walk, dfs_walk_real): Queue function takes derived binfo and
1015 index.
1016 (markedp, unmarkedp): Adjust.
1017 (dfs_unmarked_real_bases_queue_p, dfs_marked_real_bases_queue_p,
1018 dfs_skip_vbases, marked_vtable_pathp, unmarked_vtable_pathp,
1019 find_vbase_instance, binfo_for_vbase): Delete.
1020 (copied_binfo, original_binfo): Declare.
1021 (finish_base_specifier): Add virtual_p arg.
1022 (unshare_base_binfos): Delete.
1023 (copy_base_binfos): Declare.
1024 (reverse_path): Delete.
1025 * cp/decl.c (xref_basetypes): Access and virtuality passed
1026 differently. Don't copy direct base binfos here. Call
1027 copy_base_binfos.
1028 * cp/init.c (dfs_initialize_vtbl_ptrs): Adjust.
1029 (initialize_vtbl_ptrs): Adjust.
1030 (expand_member_init): Adjust.
1031 * cp/parser.c (cp_parser_base_specifier): Adjust.
1032 * cp/pt.c (instantiate_class_template): Adjust.
1033 (get_template_base_recursive): Adjust.
1034 * cp/rtti.c (get_pseudo_ti_init): Adjust.
1035 (get_pseudo_ti_desc): Adjust.
1036 * cp/tree.c (unshare_base_binfos): Rename to ...
1037 (copy_base_binfos): ... here, reimplement.
1038 (make_binfo): Set BINFO_DEPENDENT_BASE_P.
1039 (reverse_path): Remove.
1040 * cp/typeck.c (get_delta_difference): Adjust error messages.
1041 * cp/semantics.c (finish_base_specifier): Add virtual arg, adjust.
1042 * cp/search.c (lookup_base_r): Adjust.
1043 (dynamic_cast_base_recurse): Adjust.
1044 (canonical_binfo): Remove.
1045 (dfs_canonical_queue): Remove.
1046 (dfs_assert_unmarked_p): Remove.
1047 (assert_canonical_unmarked): Remove.
1048 (shared_marked_p, shared_unmarked_p): Remove.
1049 (BINFO_ACCESS, SET_BINFO_ACCESS): Use TREE_PUBLIC & TREE_PRIVATE.
1050 (dfs_access_in_type): Adjust.
1051 (access_in_type): Adjust.
1052 (dfs_accessible_queue_p): Adjust.
1053 (dfs_accessible_p): Adjust.
1054 (is_subobject_of_p_1, is_subobject_of_p): Remove.
1055 (struct lookup_field_info): Remove from_dep_base_p field.
1056 (lookup_field_queue_p): Adjust, test BINFO_DEPENDENT_BASE_P.
1057 (lookup_field_r): Remove dependent base code.
1058 (lookup_member): Likewise.
1059 (dfs_walk, dfs_walk_real): Add access arg to queue fn.
1060 (dfs_unmarked_real_bases_queue_p): Remove.
1061 (dfs_marked_real_bases_queue_p): Remove.
1062 (dfs_skip_vbases): Remove.
1063 (dfs_get_pure_virtuals): Adjust.
1064 (markedp, unmarkedp): Adjust.
1065 (marked_vtable_pathp, unmarked_vtable_pathp): Remove.
1066 (marked_pushdecls_p, unmarked_pushdecls_p): Adjust.
1067 (dfs_unmark): Adjust.
1068 (dfs_get_vbase_types):Remove.
1069 (dfs_build_inheritance_graph_order): Remove.
1070 (get_vbase_types): Remove
1071 (dfs_find_vbase_instance): Remove.
1072 (find_vbase_instance): Remove.
1073 (dfs_debug_unmarkedp): Adjust.
1074 (dependent_base_p): Remove.
1075 (dfs_push_type_decls): Adjust.
1076 (dfs_push_decls): Adjust.
1077 (dfs_no_overlap_yet): Adjust.
1078 (copied_binfo): New function.
1079 (original_binfo): New function.
1080 (binfo_for_vbase): Remove.
1081
860c9ea6
ZW
10822003-02-18 Zack Weinberg <zack@codesourcery.com>
1083
1084 * cp/search.c (grow_bfs_bases): New subroutine of bfs_walk.
1085 (bfs_walk): Rewritten using circular queue of BINFO_BASETYPES
1086 vectors, for speed.
1087
6b99d1c0
MM
10882003-02-18 Mark Mitchell <mark@codesourcery.com>
1089
1090 PR c++/9704
1091 * class.c (layout_class_type): In the 3.2 ABI, take into account
1092 trailing bit fields when computing CLASSTYPE_SIZE_UNIT.
1093
2b59501b 10942003-02-18 Matt Austern <austern@apple.com>
40a4184c 1095
2b59501b
MA
1096 * cp/cp-lang.c: Change lang hooks so that final_write_globals does
1097 nothing for C++.
1098 * cp/decl.c (wrapup_globals_for_namespace): Remove special
1099 handling of global namespace.
40a4184c 1100
e17aafd1
GK
11012003-02-18 Geoffrey Keating <geoffk@apple.com>
1102
1103 * cp-tree.h (rid_to_yy): Delete.
1104 (C_RID_YYCODE): Delete.
1105 (finish_file): Delete redundant declaration.
1106
04b03085
JM
11072003-02-18 Jason Merrill <jason@redhat.com>
1108
1109 PR c++/9623
1110 * decl.c (reshape_init): Don't mess with initializer labels.
1111
08162287
JM
1112 PR c++/9485
1113 * parser.c (cp_parser_postfix_expression): Set idk properly for
1114 object->scope::member.
1115
bf7c02dd
BE
11162003-02-18 Ben Elliston <bje@redhat.com>
1117
1118 PR other/7350
1119 * decl.c (duplicate_decls): Fix typo in comment.
1120
0f3a8219
MEC
11212003-02-17 Michael Elizabeth Chastain <mec@shout.net>
1122
c7adfa01 1123 PR debug/9717
0f3a8219
MEC
1124 * class.c (build_base_field): Mark fields for base classes with
1125 DECL_IGNORED_P.
1126
db77ef4c
KL
11272003-02-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
1128
1129 PR c++/9457
1130 * pt.c (tsubst_copy_and_build) [CONSTRUCTOR]: Substitute
1131 CONSTRUCTOR_ELTS only once.
1132
0df4ae96
KL
11332003-02-16 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
1134
1135 PR c++/9459
1136 * error.c (dump_type_prefix): Handle TYPEOF_TYPE.
1137 (dump_type_suffix): Likewise.
1138
86ac0575
NS
11392003-02-14 Nathan Sidwell <nathan@codesourcery.com>
1140
1141 * search.c: ANSIfy function declarations and definitions.
1142 * cp-tree.h (lookup_field, lookup_member): Last parameter is a bool.
1143 * call.c (build_method_call, resolve_scoped_fn_name,
1144 build_java_interface_fn_ref): Adjust lookup_field, lookup_member
1145 calls.
1146 * class.c (handle_using_decl): Likewise.
1147 * decl.c (make_typename_type, make_unmound_class_template,
1148 start_decl, compute_array_index_type): Likewise.
1149 * decl2.c (build_expr_from_tree, build_call_from_tree): Likewise.
1150 * init.c (expand_member_init, build_member_call): Likewise.
1151 * pt.c (tsubst_copy, tsubst_copy_and_build, do_decl_instantiation,
1152 resolve_typename_type): Likewise.
1153 * typeck.c (lookup_destructor, finish_class_member_access_exprm
1154 build_prememfunc_access_expr): Likewise.
1155
fd295cb2
GDR
11562003-02-13 Gabriel Dos Reis <gdr@integrable-solutions.net>
1157
1158 * decl2.c: Include "timevar.h".
1159 (namespace_ancestor): Time name lookup.
1160 (add_using_namespace): Likewise.
1161 (lookup_using_namespace): Likewise.
1162 (qualified_lookup_using_namespace): Likewise.
1163 (decl_namespace): Likewise.
1164 (lookup_arg_dependent): Likewise.
1165 * lex.c (do_identifier): Likewise.
1166 (do_scoped_id): Likewise.
1167 * pt.c (lookup_template_class): Likewise.
1168
62ed060f
AP
11692003-02-14 Andrew Pinski <pinskia@physics.uc.edu>
1170
d9b2742a 1171 * decl.c: (define_label): Fix warning for return 0 instead of NULL.
40a4184c 1172
22ffcc6f
GDR
11732003-02-13 Gabriel Dos Reis <gdr@integrable-solutions.net>
1174
1175 * decl.c: Include "timevar.h".
1176 (poplevel): Time name lookup.
1177 (find_binding): Likewise.
1178 (push_namespace): Likewise.
1179 (pop_nested_namespace): Likewise.
1180 (store_bindings): Likewise.
1181 (maybe_push_to_top_level): Likewise.
1182 (pop_from_top_level): Likewise.
1183 (push_local_name): Likewise.
1184 (pushtag): Likewise.
1185 (pushdecl): Likewise.
1186 (pushdecl_with_scope): Likewise.
1187 (pushdecl_namespace_level): Likewise.
1188 (pushdecl_top_level): Likewise.
1189 (pushdecl_class_level): Likewise.
1190 (push_class_level_binding): Likewise.
1191 (push_using_decl): Likewise.
1192 (push_using_directive): Likewise.
1193 (push_overloaded_decl): Likewise.
1194 (lookup_label): Likewise.
1195 (define_label): Likewise.
1196 (lookup_tag): Likewise.
1197 (lookup_tag_reverse): Likewise.
1198 (lookup_namespace_name): Likewise.
1199 (select_decl): Likewise.
1200 (unqualified_namespace_lookup): Likewise.
1201 (lookup_name_real): Likewise.
1202 (lookup_name_current_level): Likewise.
1203 (lookup_type_current_level): Likewise.
1204 (maybe_inject_for_scope_var): Likewise.
1205 (xref_tag): Likewise.
1206
1207 * Make-lang.in (cp/decl.o): Add dependency on timevar.h
40a4184c 1208
6a540f3c
PE
12092003-02-12 Phil Edwards <pme@gcc.gnu.org>
1210
1211 * decl.c (build_enumerator): Remove unneeded test.
1212
7a93f739
DN
12132003-02-09 Dan Nicolaescu <dann@ics.uci.edu>
1214
1215 * cp-tree.h (struct lang_type_header): Make all fields unsigned
1216 char.
1217
b80f8ef3
MM
12182003-02-03 Mark Mitchell <mark@codesourcery.com>
1219
1220 PR c++/7129
1221 * call.c (z_candidate): Add args.
1222 (convert_class_to_reference): Set it.
1223 (implicit_conversion): Tidy.
1224 (add_candidate): Add args parameter.
1225 (add_function_candidate): Adjust call to add_candidate.
1226 (add_conv_candidate): Likewise.
1227 (build_builtin_candidate): Likewise.
1228 (build_user_type_conversion_1): Eliminate wasteful tree_cons
1229 usage.
1230 (build_new_function_call): Likewise.
1231 (build_object_call): Likewise.
1232 (add_candidates): New function.
1233 (build_new_op): Use it.
1234 (covert_like_real): Adjust call to build_over_call.
1235 (build_over_call): Remove args parameter.
1236 * operators.def: Add <?= and >?=.
1237
271bd540
RS
12382003-02-01 Richard Sandiford <rsandifo@redhat.com>
1239
1240 * typeck.c (build_indirect_ref): Don't check flag_volatile.
1241
db0f613d
KL
12422003-01-31 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
1243
1244 PR c++/8849
1245 * pt.c (resolve_overloaded_unification): Handle FUNCTION_DECL.
1246
1824b90d
NS
12472003-01-31 Nathan Sidwell <nathan@codesourcery.com>
1248
1249 * cp-tree.h (BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX,
1250 BINFO_PRIMARY_BASE_OF): Use BINFO_ELTS.
1251 (BINFO_LANG_ELTS): New #define.
1252 * tree.c (make_binfo): Use BINFO_LANG_ELTS.
1253
f099d360
GK
12542003-01-30 Geoffrey Keating <geoffk@apple.com>
1255
1256 * cp/Make-lang.in: Remove -Wno-error from cp/decl.o.
1257
5552b43c
MM
12582003-01-30 Mark Mitchell <mark@codesourcery.com>
1259
1260 * class.c (check_field_decls): Only check C_TYPE_FIELDS_READONLY
1261 for class types.
1262 * cp-tree.h (C_TYPE_FIELDS_READONLY): Use a lang-specific bit
1263 rather than TYPE_LANG_FLAG_0.
1264 (TYPE_BUILT_IN): Remove.
1265 (TYPE_DEPENDENT_P): New macro.
1266 (TYPE_DEPENDENT_P_VALID): Likewise.
1267 (lang_type_class): Add fields_readonly.
1268 * decl.c (record_builtin_type): Don't set TYPE_BUILT_IN.
1269 * pt.c (dependent_type_p_r): New function, split out from ...
1270 (dependent_type_p): ... here. Memoize results.
1271 * search.c (dependent_base_p): Use dependent_type_p, not
1272 uses_template_parms.
1273 * typeck.c (build_modify_expr): Only check C_TYPE_FIELDS_READONLY
1274 for class types.
1275
14d22dd6
MM
12762003-01-29 Mark Mitchell <mark@codesourcery.com>
1277
1278 * call.c (build_field_call): Use build_new_op, not build_opfncall.
1279 (prep_operand): New function.
1280 (build_new_op): Use it. Remove dead code.
1281 * class.c (pushclass): Change "modify" parameter type from int to
1282 bool.
1283 (currently_open_class): Use same_type_p, not pointer equality.
1284 (push_nested_class): Adjust calls to pushclass, remove modify
1285 parameter.
1286 * cp-tree.h (INTEGRAL_OR_ENUMERATION_TYPE_P): New macro.
1287 (pushclass): Change prototype.
1288 (push_nested_class): Likewise.
1289 (grokoptypename): Remove.
1290 (build_opfncall): Remove.
1291 (value_dependent_expression_p): Declare.
1292 (resolve_typename_type): Likewise.
1293 (resolve_typename_type_in_current_instantiation): Likewise.
1294 (enter_scope_of): Remove.
1295 (tsubst): Remove.
1296 (tsubst_expr): Likewise.
1297 (tsubst_copy): Likewise.
1298 (tsubst_copy_and_build): Likewise.
1299 * decl.c (warn_about_implicit_typename_lookup): Remove.
1300 (finish_case_label): Return error_mark_node for erroneous labels.
1301 (start_decl): Adjust calls to push_nested_class.
1302 (grokfndecl): Call push_scope/pop_scope around call to
1303 duplicate_decls.
1304 (grokdeclarator): Do not call tsubst.
1305 (start_function): Adjust calls to push_nested_class.
1306 * decl2.c (grok_array_decl): Use build_new_op, not build_opfncall.
1307 (check_classfn): Use push_scope/pop_scope around type comparisions.
1308 (grokoptypename): Remove.
1309 (push_sscope): Adjust call to push_nested_class.
1310 * error.c (dump_type): Show cv-qualification of typename types.
1311 * init.c (build_member_call): Use build_new_op, not
1312 build_opfncall.
1313 * method.c (build_opfncall): Remove.
1314 * parser.c (cp_parser): Add allow_non_constant_expression_p and
1315 non_constant_expression_p.
1316 (cp_parser_constant_expression): Adjust prototype.
1317 (cp_parser_resolve_typename_type): Remove.
1318 (cp_parser_non_constant_expression): New function.
1319 (cp_parser_non_constant_id_expression): Likewise.
1320 (cp_parser_new): Set allow_non_constant_expression_p and
1321 non_constant_expression_p.
1322 (cp_parser_primary_expression): Reject `this' and `va_arg' in
1323 constant-expressions. Note that dependent names aren't really
1324 constant.
1325 (cp_parser_postfix_expression): Reject conversions to non-integral
1326 types in constant-expressions. Neither are increments or
1327 decrements.
1328 (cp_parser_unary_expression): Reject increments and decrements in
1329 constant-expressions.
1330 (cp_parser_direct_new_declarator): Adjust call to
1331 cp_parser_constant_expression.
1332 (cp_parser_cast_expression): Reject conversions to non-integral
1333 types in constant-expressions.
1334 (cp_parser_assignment_expression): Rejects assignments in
1335 constant-expressions.
1336 (cp_parser_expression): Reject commas in constant-expressions.
1337 (cp_parser_labeled_statement): Adjust call to
1338 cp_parser_constant_expression.
1339 (cp_parser_direct_declarator): Simplify array bounds, even in
1340 templates, when they are non-dependent. Use
1341 resolve_typename_type, not cp_parser_resolve_typename_type.
1342 (cp_parser_class_head): Use resolve_typename_type, not
1343 cp_parser_resolve_typename_type.
1344 (cp_parser_member_declaration): Adjust call to
1345 cp_parser_constant_expression.
1346 (cp_parser_constant_initializer): Likewise.
1347 (cp_parser_constructor_declarator): Use resolve_typename_type, not
1348 cp_parser_resolve_typename_type.
1349 (cp_parser_late_parsing_default_args): Adjust call to
1350 push_nested_class.
1351 * pt.c (tsubst): Give it internal linkage.
1352 (tsubst_expr): Likewise.
1353 (tsubst_copy): Likewise.
1354 (tsubst_copy_and_build): Likewise.
1355 (push_access_scope_real): Likewise.
1356 (tsubst_friend_class): Likewise.
1357 (instantiate_class_template): Adjust call to pushclass.
1358 (value_dependent_expression_p): Give it external linkage.
1359 Robustify.
1360 (resolve_typename_type): New function.
1361 * semantics.c (finish_call_expr): Use build_new_op, not
1362 build_opfncall.
1363 (begin_constructor_declarator): Remove.
1364 (begin_class_definition): Adjust call to pushclass.
1365 (enter_scope_of): Remove.
1366 * typeck.c (comptypes): Resolve typename types as appropriate.
1367 (build_x_indirect_ref): Use build_new_op, not build_opfncall.
1368 (build_x_compound_expr): Likewise.
1369 (build_modify_expr): Likewise.
1370 (build_x_modify_expr): Likewise.
1371 * typeck2.c (build_x_arrow): Likewise.
40a4184c 1372
be5a07ac
FJ
13732003-01-29 Fariborz Jahanian <fjahanian@apple.com>
1374
d9b2742a 1375 * pt.c (last_pending_template) Declare GTY().
be5a07ac 1376
710b73e6
KL
13772003-01-29 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
1378
1379 PR c++/8591
1380 * parser.c (cp_parser_elaborated_type_specifier): Convert
1381 TEMPLATE_DECL to TYPE_DECL only when processing template friends.
1382 (cp_parser_maybe_treat_template_as_class): Remove redundant tests.
1383
f2ce60b8
NS
13842003-01-28 Nathan Sidwell <nathan@codesourcery.com>
1385
9ae58faf
NS
1386 PR c++/9437
1387 * pt.c (unify): Don't unify '*T' with 'U C::*'.
1388
f2ce60b8
NS
1389 PR c++/3902
1390 * parser.c (cp_parser_decl_specifier_seq): Cannot have constructor
1391 inside a declarator.
1392
a2ddc397
NS
13932003-01-27 Nathan Sidwell <nathan@codesourcery.com>
1394
1395 * class.c (update_vtable_entry_for_fn): Add index parameter.
1396 Generate vcall thunk for covariant overriding from a virtual
1397 primary base.
1398 (dfs_modify_vtables): Adjust.
1399
bbaab916
NS
14002003-01-25 Nathan Sidwell <nathan@codesourcery.com>
1401
1402 PR c++/9403
1403 * parser.c (cp_parser_class_or_namespace_name): Reject duplicate
1404 template keyword.
1405 (cp_parser_base_specifier): Look for and consume a
1406 TEMPLATE keyword. Replace switch with array index.
1407
1408 PR c++/795
1409 * semantics.c (finish_non_static_data_member): Remember the
1410 field's type even in a template.
1411
1412 PR c++/9415
1413 * pt.c (tsubst_copy_and_build, CALL_EXPR): BASELINK exprs are
1414 already scoped.
40a4184c 1415
bbaab916
NS
1416 PR c++/8545
1417 * parser.c (cp_parser_cast_expression): Be more tentative.
1418
fb8eab96
KL
14192003-01-25 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
1420
1421 * cp-tree.h (flagged_type_tree_s): Remove.
1422 (check_for_new_type): Likewise.
1423 * typeck2.c (check_for_new_type): Likewise.
1424
c38e9817
NN
14252003-01-23 Nathanael Nerode <neroden@gcc.gnu.org>
1426
ee42dd9d
NN
1427 * dump.c: ANSIfy function declarations and definitions.
1428
c38e9817
NN
1429 * cp-tree.h, decl.h: Get rid of PARAMS. Again.
1430
c006d942
MM
14312003-01-22 Mark Mitchell <mark@codesourcery.com>
1432
1433 PR c++/9354
1434 * init.c (build_new): Set the type of the new-expression, even
1435 when processing_templte_decl.
1436
1437 PR c++/9216
1438 * parser.c (cp_parser_primary_expression): Improve error message
1439 for templates used in an expression context.
1440
1441 PR c++/8696
1442 * parser.c (cp_parser_decl_specifier_seq): Commit to tentative
1443 parse when encountering "typedef".
1444
94edc4ab
NN
14452003-01-22 Nathanael Nerode <neroden@gcc.gnu.org>
1446
1447 * class.c, parser.c: ANSIfy function definitions and declarations.
1448
e0860732
MM
14492003-01-22 Mark Mitchell <mark@codesourcery.com>
1450
65a5559b
MM
1451 PR c++/9328
1452 * error.c (dump_decl): For an OVERLOAD, just print the name of the
1453 function; it doesn't make sense to try to print its type.
1454 * semantics.c (finish_typeof): Issue errors about invalid uses.
1455
e0860732
MM
1456 PR c++/9298
1457 * parser.c (cp_parser_consume_semicolon_at_end_of_statement): New
1458 function.
1459 (cp_parser_expression_statement): Use it.
1460 (cp_parser_explicit_instantiation): Likewise.
1461 * pt.c (do_decl_instantiation): Improve error handling logic.
40a4184c 1462
1fb3244a
MM
14632003-01-22 Mark Mitchell <mark@codesourcery.com>
1464
4eb6d609
MM
1465 PR c++/9384
1466 * parser.c (cp_parser_using_declaration): Issue error messages
1467 about name resolution failures here.
1468
1fb3244a
MM
1469 PR c++/9388
1470 * class.c (currently_open_derived_class): Use dependent_type_p.
1471 * cp-tree.h (dependent_type_p): New function.
1472 (dependent_template_arg_p): Likewise.
1473 (dependent_template_p): Likewise.
1474 (type_dependent_expression_p): Likewise.
1475 * parser.c (cp_parser_dependent_type_p): Remove.
1476 (cp_parser_value_dependent_type_p): Likewise.
1477 (cp_parser_type_dependent_expression_p): Likewise.
1478 (cp_parser_dependent_template_arg_p): Likewise.
1479 (cp_parser_dependent_template_id_p): Likewise.
1480 (cp_parser_dependent_template_p): Likewise.
1481 (cp_parser_diagnose_invalid_type_name): Replace
1482 cp_parser_dependent_type_p with dependent_type_p, etc.
1483 (cp_parser_primary_expresion): Likewise.
1484 (cp_parser_nested_name_specifier_opt): Likewise.
1485 (cp_parser_postfix_expression): Likewise.
1486 (cp_parser_unary_expression): Likewise.
1487 (cp_parser_template_name): Likewise.
1488 (cp_parser_class_name): Likewise.
1489 (cp_parser_lookup_name): Likewise.
1490 * pt.c (dependent_type_p): New function.
1491 (value_dependent_expression_p): Likewise.
1492 (type_dependent_expression_p): Likewise.
1493 (dependent_template_arg_p): Likewise.
1494 (dependent_template_id_p): Likewise.
1495 (dependent_template_p): Likewise.
40a4184c 1496
1fb3244a
MM
1497 PR c++/9285
1498 PR c++/9294
00b51d29 1499 * parser.c (cp_parser_simple_declaration): Return quickly when
d9b2742a 1500 encountering errors.
1fb3244a 1501
dd859b8a
KG
15022003-01-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1503
1504 Make-lang.in (cp/decl.o-warn): Add -Wno-error.
1505
753225c1
JM
15062003-01-17 Jason Merrill <jason@redhat.com>
1507
1508 PR c++/9167, c++/9358
1509 * decl.c (require_complete_types_for_parms): Also update DECL_ARG_TYPE.
1510
77b996cc
JM
15112003-01-17 Jason Merrill <jason@redhat.com>
1512
1513 PR c++/9342
1514 * call.c (build_conditional_expr): Always do lvalue-rvalue
1515 conversion.
1516
5dae1114
MM
15172003-01-17 Mark Mitchell <mark@codesourcery.com>
1518
1519 PR c++/9294
1520 * cp-tree.def (BASELINK): Make it class 'x', not class 'e'.
1521 * cp-tree.h (BASELINK_BINFO): Adjust.
1522 (BASELINK_FUNCTIONS): Likewise.
1523 (BASELINK_ACCESS_BINFO): Likewise.
1524 (tree_baselink): New structure.
1525 (cp_tree_node_structure_enum): Add TS_CP_BASELINK.
1526 (lang_tree_node): Add baselink.
1527 * decl.c (cp_tree_node_structure): Add BASELINK case.
1528 * search.c (build_baselink): Adjust.
1529 * tree.c (cp_walk_subtrees): Add BASELINK case. Remove BASELINK_P
1530 test from TREE_LIST case.
1531
1532 PR c++/9272
1533 * parser.c (cp_parser_constructor_declarator_p): Do not assume
1534 that a constructor cannot be declared outside of its own class.
40a4184c 1535
5dae1114
MM
1536 * parser.c (cp_parser_resolve_typename_type): If the scope cannot
1537 be resolved, neither can the qualified name.
1538
1539 * rtti.c (get_pseudo_ti_desc): Fix thinko.
1540
a48cccea
JM
15412003-01-16 Jason Merrill <jason@redhat.com>
1542
1543 PR c++/8564
1544 * init.c (build_vec_init): Re-add maxindex parm.
1545 (perform_member_init, build_aggr_init): Pass it.
1546 (build_new_1): Pass it. Use an incomplete array type for full_type.
1547 * typeck.c (build_modify_expr): Pass it.
1548 * cp-tree.h: Adjust.
1549
cc23546e
JO
15502003-01-16 Jeffrey D. Oldham <oldham@codesourcery.com>
1551
1552 * cp-tree.h (tsubst_copy_and_build): New declaration.
1553 * pt.c (tsubst_copy): Remove 'build_expr_from_tree' from comment.
1554 (tsubst_expr): Use 'tsubst_copy_and_build'. Update initial comment.
1555 (tsubst_copy_and_build): New function.
1556
8fbc5ae7
MM
15572003-01-16 Mark Mitchell <mark@codesourcery.com>
1558
1559 * cp-tree.h (lang_type_class): Remove is_partial_instantiation.
1560 (PARTIAL_INSTANTIATION_P): Remove.
1561 (IMPLICIT_TYPENAME_P): Likewise.
1562 (IMPLICIT_TYPENAME_TYPE_DECL_P): Likewise.
1563 (build_typename_type): Remove declaration.
1564 (parmlist_is_exprlist): Likewise.
1565 * decl.c (build_typename_type): Make it static, remove third
1566 parameter.
1567 (push_class_binding): Don't do implicit typename stuff.
1568 (make_typename_type): Likewise.
1569 (lookup_name_real): Likewise.
1570 (grokdeclarator): Don't try to convert declarations into
1571 initializations. Don't do implicit typename stuff.
1572 (parmlist_is_exprlist): Remove.
1573 (xref_basetypes): Simplify.
1574 * decl2.c (grokfield): Don't try to convert declarations into
1575 initializations.
1576 (build_anon_union_vars): Do this while processing templates, too.
1577 (finish_anon_union): Likewise.
1578 * error.c (dump_type): Remove implicit typename handling.
1579 * parser.c (cp_parser_diagnose_invalid_type_name): New method.
1580 (cp_parser_primary_expression): Correct handling of names not
1581 found by unqualified name lookup in templates.
1582 (cp_parser_nested_name_specifier_opt): Avoid checking dependency
1583 of types when possible.
1584 (cp_parser_simple_declaration): Complain intelligently about some
1585 invalid declarations.
1586 (cp_parser_member_declaration): Likewise.
1587 (cp_parser_constructor_declarator_p): Don't check when we're in a
1588 function scope.
1589 * pt.c (instantiate_class_template): Remove
1590 PARTIAL_INSTANTIATION_P gunk.
1591 * search.c (lookup_field_r): Don't build implicit typenames.
1592 (marked_pushdecls_p): Don't enter dependent base types.
1593 (unmarked_pushdecls_p): Likewise.
1594 * semantics.c (begin_class_definition): Remove implicit typename
1595 stuff.
1596
712becab
NS
15972003-01-16 Nathan Sidwell <nathan@codesourcery.com>
1598
1599 PR c++/9212
1600 * parser.c (cp_parser_direct_declarator): If accepting either
1601 abstract or named, the name must be an unqualified-id.
1602
fc555370
KG
16032003-01-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1604
1605 * class.c (layout_virtual_bases): Avoid signed/unsigned warning.
1606
dd1b7476
KG
16072003-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1608
1609 * decl2.c (check_classfn): Fix uninitialized warning.
1610 (build_anon_union_vars): Likewise.
1611 * pt.c (tsubst_copy): Likewise.
1612
a7189b49
JO
16132003-01-14 Jeffrey D. Oldham <oldham@codesourcery.com>
1614
1615 Further conform g++'s __vmi_class_type_info to the C++ ABI
1616 specification.
1617 * rtti.c (dfs_class_hint_mark): Do not set hints not specified by
1618 the specification.
1619 (class_hint_flags): Likewise.
1620
cf22909c
KL
16212003-01-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
1622
1623 * config-lang.in: Add semantics.c to gtfiles.
1624 * cp-tree.h (flagged_type_tree_s): Remove lookups field.
1625 (saved_scope): Likewise.
1626 (type_lookups): Remove.
1627 (deferred_access): New structure.
1628 (type_access_control): Remove.
1629 (save_type_access_control): Likewise.
1630 (reset_type_access_control): Likewise.
1631 (decl_type_access_control): Likewise.
1632 (push_deferring_access_checks): Declare.
1633 (resume_deferring_access_checks): Likewise.
1634 (stop_deferring_access_checks): Likewise.
1635 (pop_deferring_access_checks): Likewise.
1636 (get_deferred_access_checks): Likewise.
1637 (pop_to_parent_deferring_access_checks): Likewise.
1638 (perform_deferred_access_checks): Likewise.
1639 (perform_or_defer_access_check): Likewise.
1640 * decl.c (make_typename_type): Use perform_or_defer_access_check.
1641 (make_unbound_class_template): Likewise.
1642 (grokdeclarator): Don't call decl_type_access_control.
1643 * parser.c (cp_parser_context): Remove deferred_access_checks
1644 and deferring_access_checks_p fields.
1645 (cp_parser_context_new): Adjust.
1646 (cp_parser): Remove access_checks_lists.
1647 (cp_parser_defer_access_check): Remove.
1648 (cp_parser_start_deferring_access_checks): Remove.
1649 (cp_parser_stop_deferring_access_checks): Remove.
1650 (cp_parser_perform_deferred_access_checks): Remove.
1651 (cp_parser_nested_name_specifier_opt): Use new deferred access
1652 functions.
1653 (cp_parser_simple_declaration): Likewise.
1654 (cp_parser_template_id): Likewise.
1655 (cp_parser_function_definition): Likewise.
1656 (cp_parser_class_specifier): Likewise.
1657 (cp_parser_lookup_name): Likewise.
1658 (cp_parser_single_declaration): Likewise.
1659 (cp_parser_pre_parsed_nested_name_specifier): Likewise.
1660 (cp_parser_parse_tentatively): Likewise.
1661 (cp_parser_parse_definitely): Likewise.
1662 (yyparse): Likewise.
1663 (cp_parser_init_declarator): Remove access_checks parameter.
1664 Use new deferred access functions.
1665 (cp_parser_function_definition_from_specifiers_and_declarator):
1666 Likewise.
1667 (cp_parser_class_head): Remove deferring_access_checks_p and
1668 saved_access_checks parameters. Use new deferred access functions.
1669 (cp_parser_member_specification_opt): Don't call
1670 reset_type_access_control.
1671 * search.c (type_access_control): Remove.
1672 * semantics.c: Include "gt-cp-semantics.h".
1673 (deferred_type_access_control): Remove.
1674 (deferred_access_stack): New variable.
1675 (deferred_access_free_list): Likewise.
1676 (push_deferring_access_checks): New function.
1677 (resume_deferring_access_checks): Likewise.
1678 (stop_deferring_access_checks): Likewise.
1679 (pop_deferring_access_checks): Likewise.
1680 (get_deferred_access_checks): Likewise.
1681 (pop_to_parent_deferring_access_checks): Likewise.
1682 (perform_deferred_access_checks): New function, adapted from
1683 cp_parser_perform_deferred_access_checks.
1684 (perform_or_defer_access_check): New function, adapted from
1685 cp_parser_defer_access_check.
1686 (current_type_lookups): Remove.
1687 (deferred_type_access_control): Likewise.
1688 (decl_type_access_control): Likewise.
1689 (save_type_access_control): Likewise.
1690 (reset_type_access_control): Likewise.
1691 (begin_function_definition): Adjust.
1692 (begin_class_definiton): Likewise.
1693
f576dfc4
JM
16942003-01-13 Jason Merrill <jason@redhat.com>
1695
1696 PR c++/8748
1697 * class.c (build_base_path): Take the address before calling save_expr.
1698
1699 * call.c (build_user_type_conversion_1): Do set ICS_BAD_FLAG if
1700 all the ambiguous conversions are bad.
1701
1702 * class.c (maybe_warn_about_overly_private_class): Don't stop
1703 searching when we find a nonprivate method.
1704
1705 * typeck.c (build_class_member_access_expr): Use unary_complex_lvalue.
1706
8fa1ad0e
MM
17072003-01-12 Mark Mitchell <mark@codesourcery.com>
1708
1709 * cp-tree.h (get_arglist_len_in_bytes): Remove.
1710
1711 PR c++/9264
1712 * parser.c (cp_parser_elaborated_type_specifier): Handle erroneous
1713 typeame types more robustly.
1714
15d2cb19
PE
17152003-01-11 Phil Edwards <pme@gcc.gnu.org>
1716
1717 * parser.c: Fix comment typos.
1718
a6f6052a
MM
17192003-01-10 Mark Mitchell <mark@codesourcery.com>
1720
99152b95 1721 PR c++/9099
a6f6052a
MM
1722 * parser.c (cp_parser_scope_through_which_access_occurs): Handle
1723 an object_type which is not a class type.
1724
3466b292
GK
17252003-01-10 Geoffrey Keating <geoffk@apple.com>
1726
1727 * parser.c (cp_parser_late_parsing_for_member): Don't cast to void.
1728 (cp_parser_late_parsing_default_args): Likewise.
1729
b2f29cd9
NN
17302003-01-10 Nathanael Nerode <neroden@gcc.gnu.org>
1731
1732 * cfns.gperf: ANSIfy function declarations.
1733 * cfns.h: Regenerate.
1734 * cp-tree.h: ANSIfy function declarations.
1735
2050a1bb
MM
17362003-01-10 Mark Mitchell <mark@codesourcery.com>
1737
1738 * cp-tree.h (reparse_absdcl_as_expr): Remove.
1739 (reparse_absdcl_as_casts): Likewise.
1740 (reparse_decl_as_expr): Likewise.
1741 (finish_decl_parsing): Likewise.
1742 * decl2.c (reparse_absdcl_as_expr): Remove.
1743 (reparse_absdcl_as_casts): Likewise.
1744 (repase_decl_as_expr): Likewise.
1745 (finish_decl_parsing): Likewise.
1746
1747 PR c++/9128
1748 PR c++/9153
1749 PR c++/9171
1750 * parser.c (cp_parser_pre_parsed_nested_name_specifier): New
1751 function.
1752 (cp_parser_nested_name_specifier_opt): Correct the
1753 check_dependency_p false.
1754 (cp_parser_postfix_expression): Fix formatting.
1755 (cp_parser_decl_specifier_seq): Avoid looking for constructor
1756 declarators when possible.
1757 (cp_parser_template_id): Avoid performing name-lookup when
1758 possible.
1759 (cp_parser_class_head): Do not count specializations when counting
1760 levels of templates.
1761 (cp_parser_constructor_declarator_p): Return immediately if
1762 there's no chance that the tokens form a constructor declarator.
1763 * rtti.c (throw_bad_typeid): Add comment. Do not return an
1764 expression with reference type.
1765 (get_tinfo_decl_dynamic): Do not return an expression with
1766 reference type.
1767 (build_typeid): Add comment. Do not return an expression with
1768 reference type.
1769 * typeck.c (build_class_member_access_expr): Improve handling of
1770 conditionals and comma-expressions as objects.
1771
45225759
NN
17722003-01-09 Nathanael Nerode <neroden@gcc.gnu.org>
1773
d9b2742a
ZW
1774 * cfns.gperf: ANSIfy function declarations.
1775 * cfns.h: Regenerate.
1776 * cp-tree.h: ANSIfy function declarations.
1777 * parser.c: ANSIfy function declarations & definitions.
b2f29cd9 1778
45225759
NN
1779 * decl.c (bad_specifiers): Fix parameter order error I introduced.
1780
17211ab5
GK
17812003-01-09 Geoffrey Keating <geoffk@apple.com>
1782
1783 Merge from pch-branch:
1784
1785 2003-01-09 Geoffrey Keating <geoffk@apple.com>
1786
1787 Merge to tag pch-merge-20030102:
40a4184c 1788
17211ab5
GK
1789 * semantics.c (finish_translation_unit): Don't call finish_file.
1790 * parser.c: Don't include ggc.h.
1791 (cp_lexer_new_main): Rename from cp_lexer_new, only create main lexer,
1792 read first token here. Don't allow PCH files after the first
1793 token is read.
1794 (cp_lexer_new_from_tokens): Duplicate functionality from cp_lexer_new.
1795 (cp_lexer_get_preprocessor_token): Allow LEXER to be NULL.
1796 (cp_parser_new): Call cp_lexer_new_main before allocating GCed memory.
1797 (cp_parser_late_parsing_for_member): Don't duplicate call to
1798 cp_lexer_set_source_position_from_token.
1799 (cp_parser_late_parsing_default_args): Likewise.
1800 (yyparse): Call finish_file after clearing the_parser.
1801
1802 2002-12-11 Geoffrey Keating <geoffk@apple.com>
1803
1804 * Make-lang.in: Remove $(GGC_H) from all dependencies.
1805 (CXX_TREE_H): Add $(GGC_H).
40a4184c 1806 * class.c: Don't include ggc.h.
17211ab5
GK
1807 (field_decl_cmp): Make parameters be 'const void *' to match qsort.
1808 (method_name_cmp): Likewise.
1809 (resort_data): New variable.
1810 (resort_field_decl_cmp): New.
1811 (resort_method_name_cmp): New.
1812 (resort_sorted_fields): New.
1813 (resort_type_method_vec): New.
1814 (finish_struct_methods): Delete cast.
1815 (finish_struct_1): Delete cast.
1816 * cp-tree.h: Include ggc.h.
1817 (struct lang_type_class): Add reorder attribute to field `methods'.
1818 (union lang_decl_u3): Add reorder attribute to field `sorted_fields'.
1819 (resort_sorted_fields): New prototype.
1820 (resort_type_method_vec): New prototype.
1821 * call.c: Don't include ggc.h.
1822 * decl.c: Likewise.
1823 * decl2.c: Likewise.
1824 * init.c: Likewise.
1825 * lex.c: Likewise.
1826 * method.c: Likewise.
1827 * optimize.c: Likewise.
1828 * parse.y: Likewise.
1829 * pt.c: Likewise.
1830 * repo.c: Likewise.
1831 * search.c: Likewise.
1832 * semantics.c: Likewise.
1833 * spew.c: Likewise.
1834 * tree.c: Likewise.
1835
1836 * lang-specs.h: Remove comment.
1837
1838 2002-12-03 Geoffrey Keating <geoffk@apple.com>
1839
1840 * cp-tree.h (struct operator_name_info_t): Mark for GTY machinery.
1841 (operator_name_info): Mark to be saved for PCH, specify size.
1842 (assignment_operator_name_info): Likewise.
1843
1844 2002-11-19 Geoffrey Keating <geoffk@apple.com>
1845
1846 * decl.c (anon_cnt): Mark to be saved for PCH.
1847
1848 2002-10-25 Geoffrey Keating <geoffk@apple.com>
1849
1850 * lex.c (init_reswords): Delete now-untrue comment.
1851 Allocate ridpointers using GGC.
1852
1853 2002-10-04 Geoffrey Keating <geoffk@apple.com>
1854
1855 * cp-tree.h (union lang_decl_u2): Add tags to all fields.
1856
1857 * g++spec.c (lang_specific_driver): Don't include standard
1858 libraries in `added'.
1859
1860 2002-08-27 Geoffrey Keating <geoffk@redhat.com>
1861
1862 * decl2.c (finish_file): Call c_common_write_pch.
1863 * Make-lang.in (CXX_C_OBJS): Add c-pch.o.
1864
1865 2002-08-17 Geoffrey Keating <geoffk@redhat.com>
1866
1867 * g++spec.c (lang_specific_driver): Treat .h files as C++ header
1868 files when using g++.
1869 * lang-specs.h: Handle compiling C++ header files.
1870
ca5dd8b7
JJ
18712003-01-09 Jakub Jelinek <jakub@redhat.com>
1872
1873 * decl.c (start_decl): Only check DECL_THREAD_LOCAL for VAR_DECLs.
1874
0f399e5f
KL
18752003-01-09 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
1876
1877 * pt.c (push_access_scope_real): Call push_to_top_level for
1878 function in namespace scope.
1879 (pop_access_scope): Call pop_from_top_level for function in
1880 namespace scope.
1881
c456a45a
JJ
18822003-01-09 Jakub Jelinek <jakub@redhat.com>
1883
1884 * decl.c (start_decl): Don't set DECL_COMMON for __thread variables.
1885
2c6ce97e
CC
18862003-01-09 Christian Cornelssen <ccorn@cs.tu-berlin.de>
1887
1888 * Make-lang.in (c++.install-common, c++.install-man,
1889 c++.uninstall): Prepend $(DESTDIR) to destination paths in
1890 all (un)installation commands.
1891 (c++.install-common): Rewrite $(LN) commands to support
1892 DESTDIR with "ln" as well as with "ln -s".
1893
f74dbcec
JM
18942003-01-08 Jason Merrill <jason@redhat.com>
1895
1896 * parser.c (cp_parser_primary_expression): See through explicitly
1897 scoped ALIAS_DECLs, too.
1898
11f6b451
NN
18992003-01-08 Nathanael Nerode <neroden@gcc.gnu.org>
1900
1774f99d
NN
1901 * decl.c: Remove some #if 0 code.
1902
11f6b451
NN
1903 * decl.c: ANSIfy function declarations.
1904
8caf4c38
MM
19052003-01-07 Mark Mitchell <mark@codesourcery.com>
1906
1907 * parser.c (cp_parser_asm_definition): Correct handling of omitted
1908 operands.
1909
2b59fc25
KL
19102003-01-08 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
1911
1912 PR c++/9030
1913 * decl.c (make_typename_type): Check access only when tf_error.
1914 (make_unbound_class_template): Likewise.
1915 * pt.c (saved_access_scope): New variable.
1916 (push_access_scope_real): New function.
1917 (push_access_scope): Likewise.
1918 (pop_access_scope): Likewise.
1919 (tsubst_default_argument): Use them.
1920 (instantiate_template): Likewise.
1921 (regenerate_decl_from_template): Likewise.
1922 (instantiate_decl): Likewise.
1923 (get_mostly_instantiated_function_type): Likewise.
1924
3f7617e4
NN
19252003-01-07 Nathanael Nerode <neroden@gcc.gnu.org>
1926
1927 * tree.c: Delete bogus #if 0 code.
1928
c9372112
AS
19292003-01-07 Andreas Schwab <schwab@suse.de>
1930
1931 * class.c (layout_class_type): Don't use
1932 PCC_BITFIELD_TYPE_MATTERS if not defined.
1933
8218bd34
MM
19342003-01-06 Mark Mitchell <mark@codesourcery.com>
1935
c10cdb3d
MM
1936 PR c++/9165
1937 * decl2.c (build_cleanup): Mark the object as used.
1938
69f794a7
MM
1939 * pt.c (retrieve_local_specialization): Revert 2003-01-05 change.
1940 (hash_local_specialization): New function.
1941 (register_local_specialization): Revert 2003-01-05 change.
1942 (instantiate_decl): Use hash_local_specialization when creating
1943 the local_specializations table.
40a4184c 1944
4c4646b5
MM
1945 * decl2.c (mark_used): Do not synthesize thunks.
1946
63e5f567
MM
1947 * class.c (layout_class_type): Correct handling of unnamed
1948 bitfields wider than their types.
1949
8218bd34
MM
1950 PR c++/9189
1951 * parser.c (cp_parser): Remove default_arg_types. Update
1952 documentation for unparsed_functions_queues.
1953 (cp_parser_late_parsing_default_args): Take a FUNCTION_DECL as the
1954 parameter.
1955 (cp_parser_new): Don't set parser->default_arg_types.
1956 (cp_parser_function_definition): Adjust usage of
1957 unparsed_funtions_queues.
1958 (cp_parser_class_specifier): Don't mess with
1959 parser->default_arg_types. Handle default argument processing in
1960 a separate phase from function body processing.
1961 (cp_parser_template_declaration_after_export): Adjust usage of
1962 unparsed_functions_queues.
1963 (cp_parser_late_parsing_for_member): Do not handle default
1964 arguments.
1965
62b8a44e
NS
19662003-01-06 Nathan Sidwell <nathan@codesourcery.com>
1967
1968 PR c++/9109
1969 * parser.c (cp_parser_declarator_kind): New enum.
1970 (cp_parser_declarator): Adjust.
1971 (cp_parser_direct_declarator): Adjust. Allow for either named or
1972 abstract declarator. Prefer abstract, if possible. Allow
1973 parenthesized function name.
1974 (cp_parser_condition): Adjust cp_parser_declarator call.
1975 (cp_parser_explicit_instantiation): Likewise.
1976 (cp_parser_init_declarator): Likewise.
1977 (cp_parser_type_id): Likewise.
1978 (cp_parser_function_definition): Likewise.
1979 (cp_parser_member_declaration): Likewise.
1980 (cp_parser_parameter_declaration): Use cp_parser_declarator to do
1981 the tentative parsing.
1982 (cp_parser_exception_declaration): Likewise.
1983
ec194454
MM
19842003-01-05 Mark Mitchell <mark@codesourcery.com>
1985
1986 * parser.c (cp_parser_template_parameter): Adjust call to
1987 cp_parser_parameter_declaration.
1988 (cp_parser_parameter_declaration_list): Likewise.
1989 (cp_parser_parameter_declaration): Replace
1990 greater_than_is_operator_p with template_parm_p parameter. Do not
1991 cache tokens for template default arguments.
1992
1993 * pt.c (retrieve_local_specialization): Use htab_find, not
1994 htab_find_with_hash.
1995 (register_local_specialization): Use htab_find_slot, not
1996 htab_find_slot_with_hash.
1997 (instantiate_decl): Pass a hash function to htab_create.
40a4184c 1998
39b1af70
KG
19992003-01-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2000
2001 * parser.c (cp_parser_binary_expression,
2002 cp_parser_multiplicative_expression,
2003 cp_parser_additive_expression, cp_parser_shift_expression,
2004 cp_parser_relational_expression, cp_parser_equality_expression,
2005 cp_parser_and_expression, cp_parser_exclusive_or_expression,
2006 cp_parser_inclusive_or_expression,
2007 cp_parser_logical_and_expression, cp_parser_logical_or_expression,
2008 cp_parser_binary_expression): Const-ify.
2009
1bb2cc34
MM
20102003-01-04 Mark Mitchell <mark@codesourcery.com>
2011
2012 * method.c (use_thunk): Disable access control while building the
2013 body of the thunk.
2014
3fd5abcf
NN
20152003-01-03 Nathanael Nerode <neroden@gcc.gnu.org>
2016
40a4184c 2017 * cvt.c, decl.c, decl2.c: This is the C++ front end, not the C
3fd5abcf
NN
2018 front end.
2019
9aad8f83
MA
20202003-01-03 Matt Austern <austern@apple.com>
2021
2022 * cp-tree.h (struct lang_type_class): add field for key method
2023 (cp_global_trees): rename dynamic_classes to keyed_classes
2024 (key_method): add definition
2025 * class.c (finish_struct_1): compute class's key method, and add
2026 the class to keyed_classes list if there is no key method.
2027 * decl.c (finish_function): add class to keyed_classes list if we
2028 see a definition of the class's key method.
2029 * pt.c (instantiate_class_template): add template specialization
2030 of a dynamic class to keyed_classes list.
2031 * decl2.c (key_method): remove
2032 (finish_file): iterate only through keyed_classes list when
2033 deciding whether to emit vtables, remove class from its list after
2034 we do the emission.
40a4184c 2035
6cce57b0
JM
20362003-01-02 Jason Merrill <jason@redhat.com>
2037
4e8dca1c
JM
2038 * call.c (build_conditional_expr): Stabilize lvalues properly.
2039 * cvt.c (ocp_convert): Don't build NOP_EXPRs of class type.
2040 * tree.c (lvalue_p_1): Don't allow sloppy NOP_EXPRs as lvalues.
2041 Don't allow CALL_EXPR or VA_ARG_EXPR, either.
2042
2043 * call.c (convert_like_real): Call decl_constant_value for an
2044 IDENTITY_CONV even if there are no more conversions.
2045
2046 * cvt.c (build_up_reference): Don't push unnamed temps.
2047
2048 * decl2.c (do_namespace_alias): Namespace aliases are DECL_EXTERNAL.
2049
2050 * dump.c (cp_dump_tree): Don't try to dump class-specific fields
2051 for a backend struct.
2052
2053 * except.c (wrap_cleanups_r, build_throw): Make
2054 MUST_NOT_THROW_EXPRs void.
2055 * init.c (expand_default_init): Update to handle MUST_NOT_THROW_EXPR.
2056
2057 * init.c (build_vec_delete_1): Pre-evaluate the base address.
2058
2059 * init.c (get_temp_regvar): Simplify logic.
2060
2061 * tree.c (cp_copy_res_decl_for_inlining): Only do debug tweaks if
2062 our replacement is a decl.
2063
6cce57b0
JM
2064 * decl.c (cp_make_fname_decl): Push the decls inside the
2065 outermost scope.
2066
31758337
NS
20672003-01-03 Nathan Sidwell <nathan@codesourcery.com>
2068
2069 PR c++/45, c++/3784
2070 * tree.c (cp_tree_equal, TEMPLATE_PARM_INDEX): The types must be
2071 the same too.
2072
24c0ef37
GS
20732003-01-03 Graham Stott <graham.stott@btinternet.com>
2074
2075 * parser.c (struct cp_parser): Add access_checks_lists field
2076 (cp_parser_simple_declaration): Use.
40a4184c 2077 (cp_parser_init_declarator): Likewise.
24c0ef37 2078
5e8a153a
MM
20792003-01-02 Mark Mitchell <mark@codesourcery.com>
2080
1092805d
MM
2081 * parser.c (cp_parser_declaration): Accept the __extension__
2082 keyword before the declaration.
2083
4971227d
MM
2084 PR c++/2843
2085 * parser.c (cp_parser_parameter_declaration): Allow attributes to
2086 appear after the declarator.
2087
5e8a153a
MM
2088 * call.c (build_new_method_call): Fix typo in message format
2089 string.
2090
3beb3abf
MM
20912003-01-02 Mark Mitchell <mark@codesourcery.com>
2092
f7b5ecd9
MM
2093 * parser.c (cp_lexer_next_token_is): Declare it inline.
2094 (cp_lexer_set_source_position_from_token): Likewise.
2095 (cp_lexer_debugging_p): Likewise.
2096 (cp_parser_parsing_tentatively): Likewise.
2097 (cp_parser_nested_name_specifier_opt): Reduce the number of calls
2098 to the cp_lexer_peek_token.
1092805d 2099
3beb3abf
MM
2100 * parser.c (cp_parser_sizeof_operand): Do not evaluate the
2101 expression.
2102
43c6a96a
SB
21032003-01-02 Steven Bosscher <s.bosscher@student.tudelft.nl>
2104
2105 * cp/except.c, cp/expr.c, cp/friend.c, cp/g++spec.c,
2106 cp/lang-options.h, cp/lang-specs.h, cp/lex.h, cp/ptree.c,
2107 cp/repo.c: Fix copyright years.
2108
c58b209a
NB
21092003-01-01 Neil Booth <neil@daikokuya.co.uk>
2110
2111 * lex.c: Remove superfluous include of cpplib.h.
2112 (CONSTRAINT): Define without conditions.
2113 (init_cp_pragma): Use c_register_pragma.
2114
7347c2c5
NB
21152002-12-31 Neil Booth <neil@daikokuya.co.uk>
2116
2117 * .cvsignore: Remove.
2118
f5adbb8d
SB
21192002-12-31 Steven Bosscher <s.bosscher@student.tudelft.nl>
2120
2121 * call.c, class.c, cp-lang.c, cp-tree.h, cvt.c, dump.c, error.c,
2122 except.c, expr.c friend.c, g++spec.c, init.c, lang-options.h,
2123 lang-specs.h, lex.c, mangle.c, method.c, optimize.c, parser.c,
2124 pt.c, ptree.c, repo.c, rtti.c, search.c, semantics.c, tree.c,
2125 typeck.c, typeck2.c: Replace "GNU CC" with "GCC" in the
2126 copyright header.
2127 * lex.h: parse.y is dead, so don't mention it. Also replace the
2128 copyright header with the default GNU copyright header.
2129
f1aba0a5
MM
21302002-12-31 Mark Mitchell <mark@codesourcery.com>
2131
eea9800f
MM
2132 * cp-tree.h (LOOKUP_TEMPLATES_EXPECTED): Remove.
2133 (lookup_name_namespace_only): Likewise.
2134 (begin_only_namespace_names): Likewise.
2135 (end_only_namespace_names): Likewise.
2136 * decl.c (only_namespace_names): Remove.
2137 (qualify_lookup): Do not check LOOKUP_TEMPLATES_EXPECTED.
2138 (lookup_name_real): Do not check only_namespace_names.
2139 (lookup_name_namespace_only): Remove.
2140 (begin_only_namespace_names): Likewise.
2141 (end_only_namespace_names): Likewise.
2142 * parser.c (cp_parser_nested_name_specifier_opt): Handle erroneous
2143 nested-name-specifiers more gracefully.
2144 (cp_parser_class_or_namespace_name): Avoid looking up namespace
2145 names when they cannot possibly appear.
2146 (cp_parser_template_name): Adjust call to cp_parser_lookup_name.
2147 (cp_parser_elaborated_type_specifier): Likewise.
2148 (cp_parser_namespace_name): Only look for namespace names.
2149 (cp_parser_lookup_name): Add is_namespace parameter.
2150 (cp_parser_lookup_name_simple): Adjust call to
2151 cp_parser_lookup_name.
2152
f1aba0a5
MM
2153 * parser.c (cp_parser_dependent_type_p): Fix thinko.
2154
eea9800f
MM
21552002-12-31 Neil Booth <neil@daikokuya.co.uk>
2156
2157 * .cvsignore: Update.
2158
3cfabe60
NS
21592002-12-31 Nathan Sidwell <nathan@codesourcery.com>
2160
2161 * class.c (modify_vtable_entry): Remove unused variable.
2162 (get_vcall_index): Always expect a non-thunk.
2163 (update_vtable_entry_for_fn): Combine covariant adjustments, when
2164 overriding a thunk. Pass get_vcall_index a non-thunk.
2165
2166 * decl2.c (finish_file): Mark undefined inlines as extern.
2167
92bc1323
MM
21682002-12-31 Mark Mitchell <mark@codesourcery.com>
2169
2170 * cp-tree.def (RETURN_INIT): Remove.
2171 * cp-tree.h (DECL_IN_MEMORY_P): Remove.
2172 (scope_kind): Add sk_block, sk_try, sk_catch, sk_for.
2173 (note_level_for_for): Remove.
2174 (note_level_for_try): Likewise.
2175 (note_level_for_catch): Likewise.
2176 (finish_named_return_value): Likewise.
2177 (do_pushlevel): Change prototype.
2178 (pending_lang_change): Remove.
2179 * decl.c (begin_scope): Handle sk_block, sk_try, sk_catch,
2180 sk_for.
2181 (note_level_for_for): Remove.
2182 (note_level_for_try): Likewise.
2183 (note_level_for_catch): Likewise.
2184 (maybe_inject_for_scope_var): Remove use of DECL_IN_MEMORY_P.
2185 * parser.c (cp_parser_context_free_list): Make it "deletable".
2186 (cp_parser_template_argument): Remove misleading comment.
2187 * pt.c (tsubst_expr): Remove RETURN_INIT code.
2188 * semantics.c (genrtl_named_return_value): Remove.
2189 (do_pushlevel): Take a scope kind as an argument.
2190 (begin_if_stmt): Adjust.
2191 (begin_while_stmt): Likewise.
2192 (begin_for_stmt): Likewise.
2193 (finish_for_init_stmt): Likewise.
2194 (begin_switch_stmt): Likewise.
2195 (begin_handler): Likewise.
2196 (begin_compound_stmt): Likewise.
2197 (finish_named_return_value): Remove.
2198 (cp_expand_stmt): Remove RETURN_INIT case.
2199 * tree.c (cp_statement_code_p): Remove RETURN_INIT case.
43c6a96a 2200
abda8efe
MM
22012002-12-31 Mark Mitchell <mark@codesourcery.com>
2202
2203 PR c++/9112
2204 * parser.c (cp_parser_direct_declarator): Handle erroneous
2205 parenthesized declarators correctly.
2206
eddcae5a
GDR
22072002-12-31 Gabriel Dos Reis <gdr@integrable-solutions.net>
2208
2209 * cp-tree.h (pending_lang_change): Declare.
2210
c838d82f
MM
22112002-12-30 Mark Mitchell <mark@codesourcery.com>
2212
e5976695
MM
2213 * parser.c (cp_parser_context_free_list): New variable.
2214 (cp_parser_context_new): Use it.
2215 (cp_parser_error): Check return code from
2216 cp_parser_simulate_error.
2217 (cp_parser_simulate_error): Return a value.
2218 (cp_parser_id_expression): Optimize common case.
2219 (cp_parser_class_name): Likewise.
2220 (cp_parser_class_specifier): Adjust call to
2221 cp_parser_late_parsing_default_args.
2222 (cp_parser_lookup_name): Optimize common case.
2223 (cp_parser_late_parsing_for_member): Adjust call to
2224 cp_parser_late_parsing_default_args.
2225 (cp_parser_late_parsing_default_args): Add scope parameter.
2226 (cp_parser_require): Avoid creating the error message unless it's
2227 needed.
2228 (cp_parser_parse_definitely): Place free'd contexts on the free
2229 list.
2230
c838d82f
MM
2231 * parser.c (cp_parser_declaration_seq_opt): Handle pending_lang_change.
2232
c73aecdf
DE
22332002-12-30 David Edelsohn <edelsohn@gnu.org>
2234
2235 * parser.c (cp_parser_parameter_declaration_clause): Treat system
2236 header as extern "C" if NO_IMPLICIT_EXTERN_C undefined.
2237
b599b135
NN
22382002-12-30 Nathanael Nerode <neroden@gcc.gnu.org>
2239
43c6a96a 2240 * config-lang.in, Make-lang.in, operators.def, cp-tree.def:
b599b135
NN
2241 GCC, not GNU CC.
2242
946d5e45
MM
22432002-12-30 Mark Mitchell <mark@codesourcery.com>
2244
afd9b9dd
MM
2245 * parse.y: Remove.
2246 * spew.c: Likewise.
2247 * Make-lang.in (gt-cp-spew.h): Remove.
2248 * cp-tree.h (do_pending_lang_change): Remove.
2249 (do_identifier): Change prototype.
2250 (finish_id_expr): Remove.
2251 * decl.c (lookup_name_real): Remove yylex variable.
2252 * decl2.c (build_expr_from_tree): Adjust call to do_identifier.
2253 * lex.c (init_cpp_parse): Remove.
2254 (reduce_cmp): Likewise.
2255 (token_cmp): Likewise.
2256 (yychar): Likewise.
2257 (lastiddecl): Likewise.
2258 (token_count): Likewise.
2259 (reduce_count): Likewise.
2260 (yyhook): Likewise.
2261 (print_parse_statistics): Likewise.
2262 (do_pending_lang_change): Likewise.
2263 (do_identifier): Remove parsing parameter.
2264 * lex.h (lastiddecl): Remove.
2265 (looking_for_typename): Remove.
2266 (looking_for_template): Likewise.
2267 (pending_lang_change): Likewise.
2268 (yylex): Likewise.
2269 * semantics.c (finish_id_expr): Remove.
43c6a96a 2270
946d5e45
MM
2271 * decl.c (grokdeclarator): Diagnost "extern thread" and "static
2272 thread" correctly.
2273
1c313945
NN
22742002-12-30 Nathanael Nerode <neroden@gcc.gnu.org>
2275
2276 * decl.c, decl2.c, decl.h: GCC, not GNU CC. This is the C++ front
2277 end, not the C front end.
2278
8e268f72
NS
22792002-12-30 Nathan Sidwell <nathan@codesourcery.com>
2280
2281 * cp-tree.h (THUNK_TARGET): New macro.
2282 (THUNK_VIRTUAL_OFFSET): For result thunks it is always a binfo.
2283 (finish_thunk): Remove offset parms.
2284 * class.c (find_final_overrider): Look through thunks.
2285 (get_vcall_index): Use THUNK_TARGET.
2286 (update_vtable_entry_for_fn): Look through thunks. Set covariant
2287 fixed offset here. Adjust finish_thunk call.
2288 (build_vtbl_initializer): Adjust finish_thunk calls.
2289 * mangle.c (mangle_call_offset): Remove superfluous if.
2290 (mangle_thunk): Adjust.
2291 * method.c (make_thunk): Adjust.
2292 (finish_thunk): Adjust.
2293 (thunk_adjust): Remove assert.
2294 (use_thunk): Use THUNK_TARGET
2295 * dump1.c (cp_dump_tree): Adjust thunk dumping.
2296
2297 PR c++/9054
2298 * class.c (layout_class_type): Set TYPE_CONTEXT of type for base.
2299 * dump.c (cp_dump_tree, RECORD_TYPE): Deal with type for base types.
2300
848eed92
GDR
23012002-12-28 Gabriel Dos Reis <gdr@integrable-solutions.net>
2302
2303 Remove traditional C constructs 4/n.
2304 * decl2.c (grok_method_quals, warn_if_unknown_interface,
2305 grok_x_components, cp_build_parm_decl, build_artificial_parm,
2306 maybe_retrofit_in_chrg, grokclassfn, grok_array_decl,
2307 delete_sanity, check_member_template, check_java_method,
2308 check_classfn, finish_static_data_member_decl, grokfield,
2309 grokbitfield, grokoptypename, grok_function_init,
2310 cplus_decl_attributes, constructor_name, defer_fn,
2311 build_anon_union_vars, finish_anon_union, coerce_new_type,
2312 coerce_delete_type, comdat_linkage, maybe_make_one_only,
2313 key_method, import_export_vtable, import_export_class,
2314 output_vtable_inherit, import_export_decl, import_export_tinfo,
2315 build_cleanup, get_guard, get_guard_bits, get_guard_cond,
2316 set_guard, start_objects, finish_objects,
2317 start_static_storage_duration_function,
2318 finish_static_storage_duration_function, get_priority_info,
2319 start_static_initialization_or_destruction,
2320 finish_static_initialization_or_destruction,
2321 do_static_initialization, do_static_destruction,
2322 prune_vars_needing_no_initialization, write_out_vars,
2323 reparse_decl_as_expr, finish_decl_parsing, namespace_ancestor,
2324 add_using_namespace, merge_functions, ambiguous_decl,
2325 lookup_using_namespace, lookup_using_namespace,
2326 qualified_lookup_using_namespace, set_decl_namespace,
2327 decl_namespace, current_decl_namespace, push_decl_namespace,
2328 pop_decl_namespace, push_scope, pop_scope, add_function,
2329 arg_assoc_namespace, arg_assoc_template_arg, arg_assoc,
2330 lookup_arg_dependent, do_namespace_alias,
2331 validate_nonmember_using_decl, do_nonmember_using_decl,
2332 do_toplevel_using_decl, do_local_using_decl,
2333 do_class_using_decl, do_using_directive, check_default_args,
2334 mark_used, handle_class_head): Use C90 prototypings. Use booleans.
2335 * parser.c (cp_parser_class_head): Use booleanss.
2336 * decl.c (walk_globals, walk_vtables): Likewise.
2337 * cp-tree.h (walk_globals_pred, walk_globals_fn, walk_vtables,
2338 walk_globals): Change return type from 'int' to 'bool'.
2339 * rtti.c (init_rtti_processing, build_headof, throw_bad_cast
2340 throw_bad_typeid, get_tinfo_decl_dynamic, typeid_ok_p,
2341 build_typeid, tinfo_name, get_tinfo_decl, get_tinfo_ptr,
2342 get_typeid, ifnonnull, build_dynamic_cast_1, build_dynamic_cast,
2343 qualifier_flags, tinfo_base_init, generic_initializer,
2344 ptr_initializer, dfs_class_hint_mark, ptm_initializer,
2345 dfs_class_hint_unmark, class_hint_flags, class_initializer,
2346 typeinfo_in_lib_p, get_pseudo_ti_init, create_pseudo_type_info,
2347 get_pseudo_ti_desc, create_tinfo_types, emit_support_tinfos,
2348 unemitted_tinfo_decl_p, emit_tinfo_decl): Likewise.
2349 * repo.c (repo_compile_flags, repo_template_declared,
2350 repo_template_defined, repo_class_defined, repo_get_id,
2351 repo_template_used, repo_vtable_used, repo_inline_used,
2352 repo_tinfo_used, repo_template_instantiated, extract_string,
2353 open_repo_file, afgets, init_repo, reopen_repo_file_for_write,
2354 finish_repo): Likewise.
2355 * ptree.c (cxx_print_decl, cxx_print_type, cxx_print_identifier,
2356 cxx_print_xnode): Likewise..
2357 * cp-lang.c (ok_to_generate_alias_set_for_type, cxx_get_alias_set,
2358 cxx_warn_unused_global_decl, cp_expr_size): Likewise.
2359 * cxxfilt.c (demangle_it, print_demangler_list, usage,
2360 standard_symbol_characters, hp_symbol_characters, main, fatal):
43c6a96a 2361 Likewise.
848eed92
GDR
2362 (strip_underscore): Change type from 'int' to 'bool'.
2363 (main): Use boolean constants.
2364
b746c5dc
GDR
23652002-12-28 Gabriel Dos Reis <gdr@integrable-solutions.net>
2366
2367 Remove traditional C constructs 3/n.
2368 * cvt.c (cp_convert_to_pointer, convert_to_pointer_force,
2369 build_up_reference, warn_ref_binding, convert_to_reference,
2370 convert_from_reference, convert_lvalue, cp_convert, ocp_convert,
2371 convert_to_void, convert, convert_force, build_type_conversion,
2372 build_expr_type_conversion, type_promotes_to,
2373 perform_qualification_conversions): Use C90 prototyping style.
2374 * decl2.c (grok_array_decl): Use boolean constant.
2375 (delete_sanity): Likewise.
2376 * typeck.c (build_unary_op): Likewise.
2377 * semantics.c (finish_switch_cond): Likewise.
2378 * parser.c (cp_parser_direct_new_declarator): Likewise.
2379 * init.c (build_new): Likewise.
2380
a723baf1
MM
23812002-12-27 Mark Mitchell <mark@codesourcery.com>
2382
2383 * Make-lang.in (po-generated): Remove parse.c.
2384 (CXX_OBJS): Remove parse.o and spew.o. Add parser.o.
2385 ($(srcdir)/cp/parse.h): Remove target.
2386 ($(srcdir)/cp/parse.c): Likewise.
2387 (gt-cp-parse.h): Likewise.
2388 (gt-cp-parser.h): New target.
2389 (c++.distclean): Do not remove parse.output.
2390 (c++.maintainer-clean): Do not remove parse.c or parse.h.
2391 (cp/spew.o): Remove target.
2392 (cp/lex.o): Adjust dependencies.
2393 (cp/pt.o): Likewise.
2394 (cp/parse.o): Likewise.
2395 (cp/TAGS): Do not mention parse.c.
2396 (cp/parser.o): New target.
2397 * NEWS: Mention the new parser.
2398 * call.c (build_scoped_method_call): Simplify.
2399 (build_method_call): Likewise.
2400 (build_new_function_call): Adjust calls to add_function_candidate
2401 and add_template_candidate.
2402 (build_new_op): Improve handling of erroroneous operands.
2403 (convert_default_arg): Remove circular argument processing.
2404 (name_as_c_string): New function.
2405 (build_new_method_call): Use it.
2406 (perform_implicit_conversion): Use error_operand_p.
2407 * class.c (finish_struct_anon): Use constructor_name_p.
2408 (check_field_decls): Likewise.
2409 (pop_nested_class): Use OVL_NEXT, not OVL_CHAIN.
2410 (resolve_address_of_overloaded_function): Likewise.
2411 (instantiate_type): Tweak pointer-to-member handling.
2412 (get_primary_binfo): Remove incorrect assertion.
2413 * config-lang.in (gtfiles): Add parser.c, remove parse.c.
2414 * cp-tree.h (DEFARG_TOKENS): New macro.
2415 (default_arg): New structure.
2416 (cp_tree_node_structure_enum): Add TS_CP_DEFAULT_ARG.
2417 (lang_tree_node): Add default_arg.
2418 (cp_tree_index): Add CPTI_TYPE_INFO_REF_TYPE.
2419 (type_info_ref_type): New macro.
2420 (saved_scope): Make processing_explicit_instantiation a boolean.
2421 (check_access): New field.
2422 (unparsed_text): Remove.
2423 (language_function): Remove unparsed_inlines.
2424 (error_operand_p): New macro.
2425 (lang_decl): Adjust pending_inline_info.
2426 (DEFARG_POINTER): Remove.
2427 (tag_types): Add typenames.
2428 (lookup_ualified_name): Declare.
2429 (lookup_name_real): Likewise.
2430 (shadow_tag): Adjust prototype.
2431 (get_scope_of_declarator): Declare it.
2432 (process_next_inline): Remove it.
2433 (check_for_missing_semicolon): Likewise.
2434 (maybe_get_template_decl_from_type_decl): Declare it.
2435 (finish_label_stmt): Adjust prototype.
2436 (finish_non_static_data_meber): Declare it.
2437 (finish_pseudo_destructor_call_expr): Rename to ...
2438 (finish_pseudo_destructor_expr): ... this.
2439 (finish_compound_literal): Declare it.
2440 (begin_inline_definitions): Remove it.
2441 (init_spew): Remove.
2442 (peekyylex): Likewise.
2443 (arbitrate_lookup): Likewise.
2444 (frob_opname): Likewise.
2445 (maybe_snarf_defarg): Likewise.
2446 (add_defarg_fn): Likewise.
2447 (do_pending_defargs): Likewise.
2448 (done_pending_defargs): Likewise.
2449 (unprocessed_defarg_fn): Likewise.
2450 (replace_defarg): Likewise.
2451 (end_input): Likewise.
2452 (get_overloaded_fn): Likewise.
2453 * cvt.c (convert_to_reference): Improve error handling.
2454 * decl.c (lookup_name_real): Do not declare it static.
2455 (maybe_push_to_top_level): Set check_access.
2456 (identifier_type_value): Adjust call to lookup_name_real.
2457 (lookup_qualified_name): New method.
2458 (lookup_name_real): Remove special-case parsing code.
2459 (lookup_name-nonclass): Adjust call to lookup_name_real.
2460 (lookup_name_namespace_only): Likewise.
2461 (lookup_name): Likewise.
2462 (check_tag_decl): Return the type declared.
2463 (shadow_tag): Likewise.
2464 (register_dtor_fn): Tweak check_access.
2465 (grokfndecl): Use constructor_name_p.
2466 (get_scope_of_declarator): New function.
2467 (grokdeclarator): Obscure tweaks for slightly different declarator
2468 representations.
2469 (start_method): Return error_mark_node to indicate failure.
43c6a96a 2470 (cp_tree_node_structure_enum): Use TS_CP_DEFAULT_ARG for DEFAULT_ARGs.
a723baf1
MM
2471 * decl2.c (constructor_name_full): Simplify.
2472 (constructor_name): Use it.
2473 (build_expr_from_tree): Adjust for changes to do new parser.
2474 (push_scope): Improve robustness.
2475 (validate_nonmember_using_decl): Process declarations, not names.
2476 (do_class_using_decl): Likewise.
2477 (handle_class_head): Do not mess with CLASSTYPE_DECLARED_CLASS
2478 here.
2479 * error.c (dump_expr): Handle IDENTIFIER_NODEs and BASELINKs.
2480 * expr.c (cxx_expand_expr): Handle BASELINKs.
2481 * init.c (member_init_ok_or_else): Issue more errors.
2482 (build_offset_ref): Tweak handling of FUNCTION_DECLs.
2483 * lex.c: Do not include parse.h.
2484 (yypring): Do not declare.
2485 (yylval): Likewise.
2486 (make_reference_declarator): Remove error-generating code.
2487 (rid_to_yy): Remove.
2488 (cxx_init): Do not call init_spew.
2489 (yypring): Remove.
2490 (check_for_missing_semicolon): Remove.
2491 * lex.h (got_scope): Remove.
2492 (got_object): Remove.
2493 * method.c (hack_identifier): Use finish_non_static_data_member.
2494 (implicitly_declare_fn): Adjust use of constructor_name.
2495 * parser.c: New file.
2496 * pt.c (parse.h): Do not include it.
2497 (maybe_get_template_decl_from_template): Do not declare it.
2498 (finish_member_template_decl): Tweak.
2499 (begin_explicit_instantiation): Adjust for
2500 processing_explicit_instantiation being boolean.
2501 (end_explicit_instantiation): Likewise.
2502 (maybe_process_partial_specialization): Tighten specialization
2503 test.
2504 (retrieve_local_specialization): Adjust ue of hash table.
2505 (eq_local_specializations): New function.
2506 (register_local_specialization): Likewise.
2507 (push_template_decl_real): Remove unnecessary test.
2508 (maybe_get_template_decl_from_type_decl): Don't make it static.
2509 (for_each_template_parm_r): Handle TYPEOF_TYPE.
2510 (tsubst_copy): Use retrieive_local_specialization to handle
2511 PARM_DECL. Adjust handling of CONST_DECLs. Handle BASELINKs.
2512 Handle COMPONENT_REFs with pseudo-destructor-expressions.
2513 Simplify handling of CALL_EXPR and METHOD_CALL_EXPR.
2514 (tsubst_expr): Pass decls, not names, to do_local_using_decl.
2515 (unify): Tweak handling of CONST_DECLs.
2516 (regenerate_decl_from_template): Use push_nested_class.
2517 (template_for_substitution): New funciton.
2518 (instantiate_decl): Use it. Register parameters as local
2519 specializations.
2520 * rtti.c (init_rtti_processing): Set type_info_ref_type.
2521 (build_typeid): Use it.
2522 (get_typeid): Likeise.
2523 * search.c (accessible_p): Use check_access, not
2524 flag_access_control.
2525 (adjust_result_of_qualified_name_lookup): Pay attention to the
2526 context_class.
2527 * semantics.c (finish_asm_stmt): Adjust error handling.
2528 (finish_label_stmt): Return the statement.
2529 (finish_non_static_data_member): New function.
2530 (finish_class_expr): Handle BASELINKs.
2531 (finish_call_expr): Handle PSEUDO_DTOR_EXPR.
2532 (finish_object_call_expr): Simplify handling during templates.
2533 (finish_pseudo_destructor_call_expr): Rename to ...
2534 (finish_pseudo_dtor_expr): ... this.
2535 (finish_compound_literal): New function.
2536 (begin_inline_definitions): Remove.
2537 (finish_sizeof): Remove special template handling.
2538 * spew.c: Do not include parse.h.
2539 * tree.c (get_overloaded_fn): Remove.
2540 * typeck.c (build_class_member_access_expr): Handle
2541 PSEUDO_DTOR_EXPR. Adjust handling of static member functions.
2542 (lookup_destructor): New function.
2543 (finish_class_member_access_expr): Use it.
2544 (convert_arguments): Simplify.
2545 (build_unary_op): Handle BASELINKs.
43c6a96a 2546
aac1406f
NS
25472002-12-26 Nathan Sidwell <nathan@codesourcery.com>
2548
eab5474f
NS
2549 PR c++/4803
2550 * decl2.c (mark_used): Defer inline functions.
2551 (finish_file): Merge deferred_fns loops. Check all used
2552 inline functions have a definition.
2553 * method.c (make_thunk): Thunks are not inline.
2554
aac1406f
NS
2555 PR c++/5116, c++/764
2556 * call.c (build_new_op): Make sure template class operands are
2557 instantiated.
2558
b9201622
NS
25592002-12-24 Nathan Sidwell <nathan@codesourcery.com>
2560
3e14cd30
NS
2561 PR C++/7964
2562 * cp-tree.h (resolve_scoped_fn_name): Prototype.
2563 * call.c (resolve_scoped_fn_name): New function. Deal with
2564 more template expansion. Broken out of ...
2565 * parse.y (parse_finish_call_expr): ... here. Call it.
2566 * decl2.c (build_expr_from_tree, CALL_EXPR): Use
2567 resolve_scoped_fn_name and build_call_from_tree.
2568
b9201622
NS
2569 PR c++/9053
2570 * decl.c (duplicate_decls): Templates may be disambiguated by
2571 return type.
43c6a96a 2572
b9201622
NS
2573 PR c++/8702
2574 * decl2.c (check_classfn): Use lookup_fnfield_1. List all
2575 conversion operators on failure.
2576
94be8403
GDR
25772002-12-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
2578
b746c5dc
GDR
2579 Remove traditional C constructs 2/n.
2580 * call.c (tourney, build_field_call, equal_functions, joust,
2581 compare_ics, build_over_call, build_java_interface_fn_ref,
2582 convert_like_real, op_error, build_object_call, resolve_args,
2583 build_vfield_ref, check_dtor_name, build_scoped_method_call,
2584 build_addr_func, build_call, build_method_call, null_ptr_cst_p,
2585 sufficient_parms_p, build_conv, non_reference, strip_top_quals,
2586 standard_conversion, reference_related_p,
2587 reference_compatible_p, convert_class_to_reference,
2588 direct_reference_binding, reference_binding,
2589 ,implicit_conversion, is_complete, promoted_arithmetic_type_p,
2590 add_template_conv_candidate, any_viable, any_strictly_viable,
2591 build_this, splice_viable, print_z_candidates,
2592 build_user_type_conversion, build_new_function_call,
2593 conditional_conversion, build_conditional_expr, build_new_op,
2594 build_op_delete_call, enforce_access, call_builtin_trap,
2595 convert_arg_to_ellipsis, build_x_va_arg, cxx_type_promotes_to,
2596 convert_default_arg, type_passed_as, convert_for_arg_passing,
2597 in_charge_arg_for_name, is_properly_derived_from,
2598 maybe_handle_implicit_object, maybe_handle_ref_bind,
2599 source_type, add_warning, can_convert, can_convert_arg,
2600 perform_implicit_conversion, can_convert_arg_bad,
2601 initialize_reference, add_conv_candidate,
2602 add_template_candidate_real, add_template_candidate): Ansify.
94be8403 2603
081cebb2
NS
26042002-12-22 Nathan Sidwell <nathan@codesourcery.com>
2605
2606 PR c++/8572
2607 * cp-tree.h (grokoptypename): Add SCOPE parameter.
2608 * decl2.c (grokoptypename): Add SCOPE parameter. tsubst the type
2609 if in a template scope.
2610 * parse.y (unoperator): Return the scope.
2611 (operator_name): Adjust grokoptypename call.
2612
4f09be91
KL
26132002-12-22 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
2614
2615 * cp-tree.h (make_unbound_class_template): Use tsubst_flags_t.
2616 * decl.c (make_unbound_class_template): Adjust. Check for tf_error.
2617 * pt.c (tsubst) [OFFSET_TYPE]: Check for tf_error.
2618
4639c5c6
KH
26192002-12-20 Kazu Hirata <kazu@cs.umass.edu>
2620
2621 * ChangeLog: Fix a typo.
2622 * class.c: Fix comment typos.
2623 * cp-tree.h: Likewise.
2624
0ca7178c
JM
26252002-12-18 Jason Merrill <jason@redhat.com>
2626
2627 Handle anonymous unions at the tree level.
2628 C++ ABI change: Mangle anonymous unions using the name of their
2629 first named field (by depth-first search). Should not cause
2630 binary compatibility problems, though, as the compiler previously
2631 didn't emit anything for affected unions.
2632 * cp-tree.def (ALIAS_DECL): New tree code.
2633 * decl2.c (build_anon_union_vars): Build ALIAS_DECLs. Return the
2634 first field, not the largest.
2635 (finish_anon_union): Don't mess with RTL. Do set DECL_ASSEMBLER_NAME,
2636 push the decl, and write it out at namespace scope.
2637 * decl.c (lookup_name_real): See through an ALIAS_DECL.
2638 (pushdecl): Add namespace bindings for ALIAS_DECLs.
2639 * rtti.c (unemitted_tinfo_decl_p): Don't try to look at the name
2640 of a decl which doesn't have one.
2641 * typeck.c (build_class_member_access_expr): Don't recurse if
2642 we already have the type we want.
2643
da9701a6
KL
26442002-12-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
2645
2646 PR c++/8099
2647 * friend.c (make_friend_class): Allow partial specialization
2648 when declaration is not a template friend.
2649
cab7a9a3
KL
26502002-12-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
2651
2652 PR c++/3663
2653 * pt.c (lookup_template_class): Copy TREE_PRIVATE and
2654 TREE_PROTECTED to created decl nodes.
2655
50cb9059
MM
26562002-12-18 Mark Mitchell <mark@codesourcery.com>
2657
2658 * class.c (build_base_field): Do not set DECL_PACKED on the
2659 FIELD_DECL.
2660
e220f0a4
GDR
26612002-12-18 Gabriel Dos Reis <gdr@integrable-solutions.net>
2662
2663 * cp-tree.h (struct tree_srcloc): Use location_t.
2664 (SOURCE_LOCUS): New.
2665 (SRCLOC_FILE, SRCLOC_LINE): Adjust.
2666
efc7052d
JM
26672002-12-17 Jason Merrill <jason@redhat.com>
2668
2669 * decl.c (finish_function): Also complain about no return in
2670 templates.
43c6a96a 2671 * semantics.c (finish_return_stmt): Also call check_return_expr in
efc7052d
JM
2672 templates.
2673 * typeck.c (check_return_expr): In a template, just remember that we
2674 saw a return.
2675
9f175208
JM
26762002-12-16 Jason Merrill <jason@redhat.com>
2677
89ea02fb
JM
2678 * semantics.c (simplify_aggr_init_exprs_r): Don't change the type
2679 of the CALL_EXPR.
2680
9f175208
JM
2681 * semantics.c (do_pushlevel): Call pushlevel after adding the
2682 SCOPE_STMT.
2683 (do_poplevel): Call poplevel before adding the SCOPE_STMT.
2684 * parse.y (function_body): Go back to using compstmt.
2685 * decl.c (pushdecl): Skip another level to get to the parms level.
2686
2687 * call.c (build_new_method_call): Use is_dummy_object to determine
2688 whether or not to evaluate the object parameter to a static member
2689 function.
2690
4977bab6
ZW
26912002-12-14 Jason Merrill <jason@redhat.com>
2692
2693 * semantics.c (simplify_aggr_init_exprs_r): Also prepend the
2694 return slot for normal functions. Set CALL_EXPR_HAS_RETURN_SLOT_ADDR.
2695 * tree.c (build_cplus_new): If the type isn't TREE_ADDRESSABLE,
2696 don't bother with an AGGR_INIT_EXPR.
2697 (cp_copy_res_decl_for_inlining): If the type isn't TREE_ADDRESSABLE,
2698 just generate a new decl normally. Take return slot parm.
2699 * cp-tree.h: Adjust prototype.
2700
75c525d7
GDR
27012002-12-13 Gabriel Dos Reis <gdr@integrable-solutions.net>
2702
2703 PR C++/8031
43c6a96a 2704 * cvt.c (convert_to_pointer_force): Don't try comparing against
75c525d7
GDR
2705 erronous type.
2706
8c6ae51f
GK
27072002-12-13 Geoffrey Keating <geoffk@apple.com>
2708
2709 * cp-tree.h: Have the multiple-include guards around
2710 the entire file.
2711
4977bab6
ZW
27122002-12-10 David Edelsohn <edelsohn@gnu.org>
2713
2714 * cp/spew.c (feed_input): Change limit to last_pos and pos to cur_pos
2715 for SPEW_DEBUG.
2716 (snarf_method): Same.
2717 (snarf_defarg): Same.
2718
d23faea1
MM
27192002-12-10 Mark Mitchell <mark@codesourcery.com>
2720
2721 PR c++/8372
2722 * pt.c (tsubst_copy): Handle destructor names more correctly.
2723
3932057c 27242002-12-10 Matt Austern <austern@apple.com>
d23faea1 2725
3932057c 2726 * cp-tree.h: get rid of needs_virtual_reinit bit.
43c6a96a 2727
dcba9b0f
MM
27282002-12-09 Mark Mitchell <mark@codesourcery.com>
2729
43c6a96a 2730 * NEWS: Document removal of in-class initialization extension for
dcba9b0f
MM
2731 static data members of non-arithmetic, non-enumeration type.
2732 * decl.c (check_static_variable_definition): Do not allow that
2733 extension.
2734 * decl2.c (grokfield): Do not call digest_init when processing
2735 templates.
2736
42b99e03
KG
27372002-12-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2738
2739 * error.c (dump_expr): Fix format specifier warning.
2740
6c73ad72
GK
27412002-12-04 Geoffrey Keating <geoffk@apple.com>
2742
2743 * class.c (finish_struct_1): Correct comment.
2744 * cp-tree.c (DECL_SORTED_FIELDS): Likewise.
2745
8c048a52
GDR
27462002-12-04 Gabriel Dos Reis <gdr@integrable-solutions.net>
2747
2748 PR C++/8799
2749 * error.c (dump_expr): Don't ever try to dump a non-existent
43c6a96a 2750 expression.
8c048a52 2751
4977bab6
ZW
27522002-12-03 Nathan Sidwell <nathan@codesourcery.com>
2753
2754 Implement covariant returns.
2755 * cp-tree.h (IS_AGGR_TYPE_2): Remove.
2756 (struct lang_decl_flags): Add this_thunk_p flag.
2757 Rename vcall_offset to virtual_offset.
2758 (struct lang_decl): Rename delta to fixed_offset.
2759 (DECL_THIS_THUNK_P, DECL_RESULT_THUNK_P): New #defines.
2760 (SET_DECL_THUNK_P): Add THIS_ADJUSTING arg.
2761 (THUNK_DELTA, THUNK_VCALL_OFFSET): Rename to ...
2762 (THUNK_FIXED_OFFSET, THUNK_VIRTUAL_OFFSET): ... here.
2763 (make_thunk): Add this_adjusting arg.
2764 (finish_thunk): Declare.
2765 (mangle_thunk): Add this_adjusting arg.
2766 * class.c (get_vcall_index): Use base function for lookup.
2767 (update_vtable_entry_for_fn): Generate covariant thunk.
2768 (finish_struct_1): Set DECL_VINDEX to NULL for thunks.
2769 (build_vtbl_initializer): Use base function for lookup.
2770 Finish covariant thunk here. Adjust thunk generation.
2771 * dump.c (cp_dump_tree): Simplify DECL_GLOBAL_[CD]TOR_P handling.
2772 Adjust thunk dumping.
2773 * mangle.c (mangle_call_offset): New function.
2774 (mangle_thunk): Adjust for covariant thunks.
2775 * method.c (make_thunk): Adjust. Do not set name here.
2776 (finish_thunk): New function. Set name here.
2777 (use_thunk): Generate covariant thunks too.
2778 (thunk_adjust): New function.
2779 * search.c (covariant_return_p): Remove. Fold into ...
2780 (check_final_overrider): ... here. Simplify.
2781 * semantics.c (emit_associated_thunks): Walk covariant thunk lists.
2782
c203334d
JM
27832002-12-03 Jason Merrill <jason@redhat.com>
2784
c246c65d
JM
2785 PR c++/8674
2786 * call.c (build_over_call): Check specifically for TARGET_EXPR
2787 when eliding.
2788
2789 PR c++/8461, c++/8625
2790 * call.c (convert_for_arg_passing): Don't mess with error_mark_node.
2791 (cp_convert_parm_for_inlining): Remove.
43c6a96a 2792 * cp-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
c246c65d
JM
2793 Remove.
2794 * cp-tree.h (ADDR_IS_INVISIREF): Remove.
2795 * except.c (stabilize_throw_expr): Remove ADDR_IS_INVISIREF code.
2796
c203334d
JM
2797 * call.c (build_user_type_conversion_1): Don't set ICS_BAD_FLAG on
2798 an ambiguous conversion.
2799
ee7ecb29
MM
28002002-12-03 Mark Mitchell <mark@codesourcery.com>
2801
2802 PR c++/8688
2803 * decl.c (reshape_init): Handle erroneous initializers.
2804
5089de93
MM
28052002-12-02 Mark Mitchell <mark@codesourcery.com>
2806
2807 PR c++/8720
2808 * spew.c (remove_last_token): Make sure that last_chunk is set
2809 correctly.
2810
2811 PR c++/8615
2812 * error.c (dump_expr): Handle character constants with
2813 TREE_OVERFLOW set.
43c6a96a 2814
218e0eb6
KL
28152002-12-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
2816
2817 DR 180
2818 * decl.c (grokdeclarator): Require class-key for all friend class.
2819 Output the correct type and context in the error message.
2820
a82d6da5
MM
28212002-12-01 Mark Mitchell <mark@codesourcery.com>
2822
94fc547c
MM
2823 PR c++/5919
2824 * pt.c (unify): Use variably_modified_type_p to test validity of
2825 template argument types.
43c6a96a 2826
a82d6da5
MM
2827 PR c++/8727
2828 * cp-tree.h (lang_type_class): Add typeinfo_var.
2829 (CLASSTYPE_TYPEINFO_VAR): New macro.
2830 * rtti.c (get_tinfo_decl): Use it.
2831
2832 PR c++/8663
2833 * init.c (expand_member_init): Always get the main variant of a
2834 base class.
2835
c9f8536c
MM
28362002-12-01 Mark Mitchell <mark@codesourcery.com>
2837
2838 PR c++/8332
2839 PR c++/8493
2840 * decl.c (cxx_init_decl_processing): Use size_type_node, not
2841 c_size_type_node.
2842 * decl2.c (coerce_new_type): Likewise.
2843 * except.c (do_allocate_exception): Likewise.
2844
4977bab6
ZW
28452002-11-30 Zack Weinberg <zack@codesourcery.com>
2846
2847 * call.c, class.c, cp-lang.c, cvt.c, cxxfilt.c, decl.c, decl2.c,
2848 dump.c, error.c, except.c, expr.c, friend.c, g++spec.c, init.c,
2849 lex.c, mangle.c, method.c, optimize.c, parse.y, pt.c, ptree.c,
2850 repo.c, rtti.c, search.c, semantics.c, spew.c, tree.c, typeck.c,
2851 typeck2.c: Include coretypes.h and tm.h.
2852 * Make-lang.in: Update dependencies.
2853
c17707f1
MM
28542002-11-30 Mark Mitchell <mark@codesourcery.com>
2855
328de7c2
MM
2856 PR c++/8227
2857 * decl.c (layout_var_decl): Deal gracefully with erroneous types.
2858 (check_initializer): Validate the type of the initialized
2859 variable, even if the initializer is absent.
2860 * typeck.c (cp_type_quals): Deal gracefully with erroneous types.
43c6a96a 2861
c17707f1
MM
2862 PR c++/8214
2863 * typeck.c (convert_for_assignment): Do not use
2864 decl_constant_value on the operand.
2865
65f8b0fb
MM
2866 PR c++/8511
2867 * pt.c (instantiate_decl): Handle template friends defined outside
2868 of the class correctly.
2869
f6a83eb0
JB
28702002-11-29 Joe Buck <jbuck@synopsys.com>
2871
2872 * parse.y (class_head_defn): Set CLASSTYPE_DECLARED_CLASS for
2873 anonymous structs.
43c6a96a 2874
ff944b49
MM
28752002-11-29 Mark Mitchell <mark@codesourcery.com>
2876
2877 * class.c (walk_subobject_offsets): Recur on binfos as well as on
2878 types.
2879 (layout_nonempty_base_or_field): Pass it a binfo when processing a
2880 base class.
2881 (layout_empty_base): Likewise.
2882 (build_base_field): Likewise.
43c6a96a 2883
21b3d0ba
MM
28842002-11-27 Mark Mitchell <mark@codesourcery.com>
2885
2886 * class.c (build_base_field): Make sure we get the canonical base
2887 when descending through primary bases.
2888
a16f2357
GK
28892002-11-26 Geoffrey Keating <geoffk@apple.com>
2890
2891 * decl.c (check_initializer): Don't error on initialisation of
2892 a scalar with a brace-enclosed expression.
2893
688f6688
NS
28942002-11-26 Nathan Sidwell <nathan@codesourcery.com>
2895
2896 * cp-tree.h (DECL_LANG_FLAG_4): Document more uses.
2897 (template_parms_equal): Remove prototype.
2898 * typeck.c (buuld_indirect_ref): Reformat.
2899
4977bab6
ZW
29002002-11-25 Jason Merrill <jason@redhat.com>
2901
2902 * init.c (build_vec_init): Use a FOR_STMT instead of an IF_STMT
2903 and a DO_STMT.
2904
b82ddab4
MM
29052002-11-25 Mark Mitchell <mark@codesourcery.com>
2906
2003cd37
MM
2907 * tree.c (cp_build_qualified_type_real): Correct handling of
2908 array types.
2909 * class.c (walk_subobject_offsets): Fix thinko.
2910 (build_base_field): Record offsets of empty bases in primary
2911 virtual bases.
2912 (layout_class_type): Record offsets of empty bases in fields.
43c6a96a 2913
b82ddab4
MM
2914 * search.c (is_subobject_of_p_1): Fix thinko.
2915 (lookup_field_queue_p): Likewise.
2916
8a874cb4
MM
29172002-11-24 Mark Mitchell <mark@codesourcery.com>
2918
2919 * class.c (layout_class_type): Reuse tail padding when laying out
2920 virtual bases.
2921
05abed76
MM
29222002-11-22 Mark Mitchell <mark@codesourcery.com>
2923
2924 * rtti.c (qualifier_flags): Fix thinko.
2925
4977bab6
ZW
29262002-11-21 Gabriel Dos Reis <gdr@integrable-solutions.net>
2927
2928 Remove traditional C constructs 1/n.
2929 * cp-tree.h (init_method, set_mangled_name_for_decl,
2930 build_opfncall, hack_identifier, make_thunk, use_thunk,
2931 synthesize_method, implicitly_declare_fn,
2932 skip_artificial_parms_for, optimize_function, calls_setjmp_p,
2933 maybe_clone_body): Remove use of PARAMS.
2934
2935 * method.c (do_build_assign_ref, do_build_copy_constructor,
2936 synthesize_exception_spec, locate_dtor, locate_ctor, locate_copy):
2937 Likewise.
2938 (synthesize_method): Use 'bool' type and constants instead of
2939 'int'.
2940 (locate_copy): Likewise.
2941 (implicitly_declare_fn): Likewise.
2942
2943 * optimize.c (calls_setjmp_r, update_cloned_parm, dump_function):
2944 Remove old-style declaration.
2945 (maybe_clone_body): Use 'bool' type and constants.
2946
1c83ea9f
GN
29472002-11-21 Glen Nakamura <glen@imodulo.com>
2948
2949 PR c++/8342
2950 * typeck.c (get_member_function_from_ptrfunc): Make sure that a
2951 SAVE_EXPR for instance_ptr doesn't get evaluated first inside one
2952 of the branches of a COND_EXPR.
2953
ad2ae3b2
MM
29542002-11-19 Mark Mitchell <mark@codesourcery.com>
2955
2956 * pt.c (for_each_template_parm): Free allocated memory.
2957 * search.c (is_subobject_of_p_1): New function.
2958 (is_subobject_of_p): Avoid walking virtual bases multiple times.
2959
f3226a90
JT
29602002-11-19 Jason Thorpe <thorpej@wasabisystems.com>
2961
2962 * g++spec.c (lang_specific_spec_functions): New.
2963
90024bdc
KH
29642002-11-15 Kazu Hirata <kazu@cs.umass.edu>
2965
2966 * ChangeLog: Follow spelling conventions.
2967 * class.c: Likewise.
2968 * decl2.c: Likewise.
2969
fa7b533b
ZW
29702002-11-14 Zack Weinberg <zack@codesourcery.com>
2971
2972 * search.c (dfs_push_decls): Do not try to reorder elements
2973 3..n of method_vec if method_vec has only two elements.
2974 Reverse order of two tests to avoid accessing unallocated
2975 memory.
2976
95675950
MM
29772002-11-14 Mark Mitchell <mark@codesourcery.com>
2978
2979 * class.c (dfs_find_final_overrider): Adjust so that the most
2980 derived object is a binfo, rather than a class type.
2981 (find_final_overrider): Likewise.
2982 (add_vcall_offset_vtbl_entries_1): Simplify accordingly.
2983 (add_vcall_offset): Likewise.
2984
5c74d5b0
KL
29852002-11-09 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
2986
2987 PR c++/8389
2988 * pt.c (instantiate_template): Push class scope for member
2989 functions.
2990 (get_mostly_instantiated_function_type): Likewise. Don't call
2991 tsubst on context. Remove CONTEXTP and TPARMSP parameters.
2992 * cp-tree.h (get_mostly_instantiated_function_type): Adjust.
2993 * mangle.c (write_encoding, write_unqualified_name): Adjust.
2994
4f2c9d7e
MM
29952002-11-07 Mark Mitchell <mark@codesourcery.com>
2996
e6a66567
MM
2997 * class.c (add_vcall_offset_vtbl_entries_1): Correct ordering of
2998 vcall offfsets. Split out ...
2999 (add_vcall_offset): ... new function.
3000
4f2c9d7e
MM
3001 PR c++/8338
3002 * pt.c (for_each_template_parm): Add htab parameter.
3003 (process_partial_specialization): Adjust call.
3004 (push_template_decl_real): Likewise.
3005 (pair_fn_data): Add visited.
3006 (for_each_template_parm_r): Avoid walking duplicates more than
3007 once.
3008 (uses_template_parms): Adjust call to for_each_template_parm.
3009
f72ab53b
MM
30102002-11-07 Mark Mitchell <mark@codesourcery.com>
3011
3012 * class.c (add_implicitly_declared_members): Put implicitly
3013 declared functions at the end of TYPE_METHODs when -fabi-version
3014 is at least 2.
3015
0a288b9a
GK
30162002-11-05 Geoffrey Keating <geoffk@apple.com>
3017
3018 * decl2.c (finish_file): Correct spelling.
3019
548502d3
MM
30202002-11-03 Mark Mitchell <mark@codesourcery.com>
3021
3022 * call.c (build_special_member_call): Do not try to lookup VTTs by
3023 name.
3024 * class.c (vtbl_init_data): Add generate_vcall_entries.
3025 (get_vtable_decl): Do not look up virtual tables by name.
3026 (copy_virtuals): Do not use BV_USE_VCALL_INDEX_P.
3027 (set_primary_base): Do not set CLASSTYPE_RTTI.
3028 (determine_primary_base): Likewise.
3029 (get_matching_virtual): Remove.
3030 (get_vcall_index): New function.
3031 (update_vtable_entry_for_fn): Do not try to use virtual thunks
3032 when they are not required. Assign vcall indices at this point.
3033 (finish_struct_1): Do not set CLASSTYPE_NEEDS_VIRTUAL_REINIT.
3034 Do update dynamic_classes.
3035 (build_vtt): Do not add VTTs to the symbol table.
3036 (build_ctor_vtbl_group): Likewise.
3037 (build_vtbl_initializer): Simplify handling of vcall indices.
3038 (build_vcall_offset_vtbl_entries): Pretend to build vcall offsets
3039 for the most derived class.
3040 (add_vcall_offset_vtbl_entries_1): But do not actually add them to
3041 the vtable.
3042 * cp-tree.h (dynamic_classes): New macro.
3043 (lang_type_class): Remove rtti. Add vtables. Add vcall_indices.
3044 (CLASSTYPE_RTTI): Remove.
3045 (CLASSTYPE_NEEDS_VIRTUAL_REINIT): Remove.
3046 (CLASSTYPE_VCALL_INDICES): New macro.
3047 (CLASSTYPE_VTABLES): Likewise.
3048 (BV_USE_VCALL_INDEX_P): Remove.
3049 (build_vtable_path): Remove.
3050 * decl2.c (finish_vtable_vardecl): Remove.
3051 (key_method): Remove #if 0'd code.
3052 (finish_vtable_vardecl): Rename to ...
3053 (maybe_emit_vtables): ... this.
3054 (finish_file): Use it.
3055 * search.c (look_for_overrides_here): Update comment.
3056
04d57dd5
ZW
30572002-11-01 Zack Weinberg <zack@codesourcery.com>
3058
3059 PR c/7353 redux
3060 * decl2.c (grokfield): Reject TYPE_DECLs with initializers.
3061
bab076f7
JM
30622002-10-30 Jason Merrill <jason@redhat.com>
3063
3064 PR c++/8186
3065 * cp-tree.h (ADDR_IS_INVISIREF): New macro.
3066 * call.c (convert_for_arg_passing): Set it.
3067 * except.c (stabilize_throw_expr): Recurse for such an arg.
3068
14b4829d
MM
30692002-10-31 Mark Mitchell <mark@codesourcery.com>
3070
3071 * cp-tree.h (lang_decl_flags): Remove init_priority.
3072 (lang_decl): Add delta.
3073 (GLOBAL_INIT_PRIORITY): Remove.
3074 (THUNK_DELTA): Revise definition.
3075 * decl2.c (start_objects): Don't set GLOBAL_INIT_PRIORITY.
3076 * dump.c (cp_dump_tree): Don't dump it.
3077
8c081e84
MM
30782002-10-30 Mark Mitchell <mark@codesourcery.com>
3079
3080 PR c++/8160
3081 * typeck2.c (process_init_constructor): Call complete_array_type.
3082
3083 PR c++/8149
3084 * decl.c (make_typename_type): Issue errors about invalid results.
04d57dd5 3085
7088fca9
KL
30862002-10-30 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
3087
3088 Core issue 287, PR c++/7639
3089 * cp-tree.h (lang_type_class): Add decl_list field.
3090 (CLASSTYPE_DECL_LIST): New macro.
3091 (maybe_add_class_template_decl_list): Add declaration.
3092 * class.c (duplicate_tag_error): Initialize CLASSTYPE_DECL_LIST.
3093 (unreverse_member_declarations): Reverse CLASSTYPE_DECL_LIST.
3094 (maybe_add_class_template_decl_list): New function.
3095 (add_implicitly_declared_members): Use it.
3096 * decl.c (maybe_process_template_type_declaration): Likewise.
3097 (pushtag): Likewise.
3098 * friend.c (add_friend): Likewise.
3099 (make_friend_class): Likewise.
3100 * semantics.c (finish_member_declaration): Likewise.
3101 (begin_class_definition): Initialize CLASSTYPE_DECL_LIST.
3102 * pt.c (instantiate_class_template): Use CLASSTYPE_DECL_LIST
3103 to process members and friends in the order of declaration.
3104
5633b37c
MM
31052002-10-29 Mark Mitchell <mark@codesourcery.com>
3106
3107 PR c++/8287
3108 * decl.c (finish_destructor_body): Create the label to jump to
3109 when returning from a destructor here.
3110 (finish_function_body): Rather than here.
3111
f65e1183
ZW
31122002-10-25 Zack Weinberg <zack@codesourcery.com>
3113
3114 PR c++/7266
3115 * decl.c (grokdeclarator): Check that TREE_OPERAND 0 of a
3116 SCOPE_REF is not null before dereferencing it.
3117
bb5e8a7f
MM
31182002-10-25 Mark Mitchell <mark@codesourcery.com>
3119
e93ee644
MM
3120 * call.c (build_over_call): Use DECL_CONTEXT, not
3121 DECL_VIRTUAL_CONTEXT.
3122 * class.c (modify_vtable_entry): Don't mess with
3123 DECL_VIRTUAL_CONTEXT.
3124 (set_vindex): Remove.
3125 (set_primary_base): Remove vfuns_p parameter.
3126 (determine_primary_base): Likewise.
3127 (modify_all_vtables): Likewise.
3128 (layout_class_type): Likewise. Adjust calls to other functions
3129 accordingly.
3130 (finish_struct_1): Adjust calls to modified functions. Set
3131 DECL_VINDEX here.
3132 * cp-tree.h (lang_type_class): Remove vsize.
3133 (CLASSTYPE_VSIZE): Remove.
3134 (lang_decl): Remove thunks.
3135 (DECL_THUNKS): Adjust.
3136 (DECL_VIRTUAL_CONTEXT): Remove.
3137 (duplicate_decls): Don't copy it.
3138 * pt.c (build_template_decl): Don't set it.
3139 (tsubst_decl): Likewise.
3140 * typeck.c (expand_ptrmemfunc_cst): Don't use it.
04d57dd5 3141
bb5e8a7f
MM
3142 * class.c (build_vtbl_initializer): Don't use build_vtable_entry.
3143 (build_vtable_entry): Remove.
3144 * cp-tree.h (BINFO_VIRTUALS): Expand documentation.
3145 (lang_decl): Add thunks.
3146 (DECL_THUNKS): New macro.
3147 * decl.c (duplicate_decls): Copy it.
3148 * method.c (make_thunk): Simplify, and add thunks to DECL_THUNKS.
3149 * semantics.c (emit_associated_thunks): Simplify.
f65e1183 3150
6eb35968
DE
31512002-10-24 David Edelsohn <edelsohn@gnu.org>
3152
3153 PR c++/7228
3154 * cp-tree.h (CLASSTYPE_READONLY_FIELDS_NEED_INIT): Check that
3155 lang_type structure exists before accessing field.
3156 (SET_CLASSTYPE_READONLY_FIELDS_NEED_INIT): New macro.
3157 (CLASSTYPE_REF_FIELDS_NEED_INIT): Similar.
3158 (SET_CLASSTYPE_REF_FIELDS_NEED_INIT): New macro.
3159 * class.c (check_field_decls): Use new macros.
3160 * typeck2.c (process_init_constructor): Remove redundant check for
3161 existence of lang_type structure.
3162
0cee073d
MM
31632002-10-24 Mark Mitchell <mark@codesourcery.com>
3164
ba9a991f
MM
3165 * class.c (end_of_base): New method.
3166 (end_of_class): Use it. Check indirect virtual bases.
3167
0cee073d
MM
3168 * class.c (check_field_decls): Fix typo.
3169
e6f052b7
MM
31702002-10-23 Mark Mitchell <mark@codesourcery.com>
3171
6b607ffd
MM
3172 PR c++/8067
3173 * decl.c (maybe_inject_for_scope_var): Ignore __FUNCTION__ and
3174 related variables.
3175
e6f052b7
MM
3176 PR c++/7679
3177 * spew.c (next_token): Do not return an endless stream of
3178 END_OF_SAVED_INPUT tokens.
3179 (snarf_method): Add three END_OF_SAVED_INPUT tokens to the end of
3180 the cached token stream.
3181 (snarf_defarg): Likewise.
3182
8bcefb43
ZW
31832002-10-23 Zack Weinberg <zack@codesourcery.com>
3184
3185 * cp-lang.c (cp_var_mod_type_p): New: C++ hook for
3186 variably_modified_type_p.
3187 * cp-tree.h: Remove prototype of variably_modified_type_p.
3188 * tree.c (variably_modified_type_p): Remove; now implemented
3189 in language-independent code.
3190
ad4f9910
MM
31912002-10-22 Mark Mitchell <mark@codesourcery.com>
3192
3193 PR c++/6579
3194 * spew.c (snarf_parenthesized_expression): New function.
3195 (snarf_block): Use it.
3196
3961e8fe
RH
31972002-10-22 Richard Henderson <rth@redhat.com>
3198
3199 * method.c (use_thunk): Always compute vcall_value; assert that
3200 it is not zero. Use can_output_mi_thunk; use output_mi_thunk
3201 for vcall thunks as well.
3202
5ec1192e
MM
32032002-10-21 Mark Mitchell <mark@codesourcery.com>
3204
7ba539c6
MM
3205 * class.c (empty_base_at_nonzero_offset_p): New function.
3206 (layout_nonempty_base_or_field): Do not check for conflicts when
3207 laying out a virtual base using the GCC 3.2 ABI.
3208 (build_base_field): Correct checking for presence of empty classes
90024bdc 3209 at nonzero offsets when clearing CLASSTYPE_NEARLY_EMPTY_P.
7ba539c6 3210
e3ccdd50
MM
3211 * class.c (include_empty_classes): Use normalize_rli.
3212 (layout_class_type): Likewise.
3213
42328048
MM
3214 * decl.c (reshape_init): Tweak handling of character arrays.
3215
5ec1192e
MM
3216 PR c++/8218
3217 * cp-tree.h (lang_type_class): Add contains_empty_class_p.
3218 (CLASSTYPE_CONTAINS_EMPTY_CLASS_P): New macro.
3219 * class.c (check_bases): Update CLASSTYPE_CONTAINS_EMPTY_CLASS_P.
3220 (check_field_decls): Likewise.
3221 (layout_class_type): Likewise.
3222 (finish_struct_1): Initialize it.
3223 (walk_subobject_offsets): Use it to prune searches.
3224
eb0424da
MM
32252002-10-20 Mark Mitchell <mark@codesourcery.com>
3226
3227 * method.c (use_thunk): Compute the vcall index as a HOST_WIDE_INT.
3228 * optimize.c (optimize_function): Replace ASM_OUTPUT_MI_THUNK with
3229 TARGET_ASM_OUTPUT_MI_THUNK in comments.
8bcefb43 3230
4a7510cb
ZW
32312002-10-18 Zack Weinberg <zack@codesourcery.com>
3232
3233 * decl.c (start_decl): Point users of the old initialized-
3234 typedef extension at __typeof__.
3235
483ab821
MM
32362002-10-18 Mark Mitchell <mark@codesourcery.com>
3237
3238 * Make-lang.in (method.o): Depend on TARGET_H.
3239 * method.c (target.h): Include it.
3240 (use_thunk): Use target hooks. Use vcall thunks, if available.
3241
e4f4feba
MM
32422002-10-18 Mark Mitchell <mark@codesourcery.com>
3243
3244 * class.c (base_derived_from): Make sure return value is a bool.
3245
9368208b
MM
32462002-10-18 Mark Mitchell <mark@codesourcery.com>
3247
3248 * class.c (find_final_overrider_data_s): Remove overriding_fn and
3249 overriding_base.
3250 (dfs_base_derived_from): New function.
3251 (base_derived_from): Likewise.
3252 (dfs_find_final_overrider): Use base_derived_from.
3253 (find_final_overrider): Adjust.
3254
5275f2bf
JM
32552002-10-18 Jason Merrill <jason@redhat.com>
3256
3257 PR c++/8080
3258 * semantics.c (finish_for_cond, finish_while_cond): Don't mess
3259 with condition decls in a template.
3260
8a188e24
NS
32612002-10-17 Nathan Sidwell <nathan@codesourcery.com>
3262
3263 * class.c (add_method): Compare template parms too.
3264
b216f69b
MM
32652002-10-17 Mark Mitchell <mark@codesourcery.com>
3266
982216be
MM
3267 PR c++/7584
3268 * class.c (handle_using_decl): Allow the declaration used to be
3269 from an ambiguous base.
3270
d768a589
MM
3271 * pt.c (convert_template_argument): Revert this change:
3272 2002-10-16 Mark Mitchell <mark@codesourcery.com>
3273 * pt.c (convert_template_argument): Do not fold non-type
3274 template rguments when inside a template.
3275
b216f69b
MM
3276 * init.c (expand_default_init): Handle brace-enclosed initializers
3277 correctly.
3278
2303a079
MM
32792002-10-16 Mark Mitchell <mark@codesourcery.com>
3280
d3133e68
MM
3281 * mangle.c (write_expression): Correct handling of enumeration
3282 constants.
3283 (write_template_arg): Likewise.
3284 * pt.c (convert_template_argument): Do not fold non-type template
3285 arguments when inside a template.
3286
2303a079
MM
3287 PR c++/7478
3288 * cvt.c (convert_to_reference): Allow references as the incoming
3289 type.
3290
451c0899
MM
32912002-10-16 Mark Mitchell <mark@codesourcery.com>
3292
3293 PR c++/7524
3294 * method.c (do_build_assign_ref): Use cp_build_qualified_type, not
3295 build_qualified_type.
3296
da6eec72
RH
32972002-10-15 Richard Henderson <rth@redhat.com>
3298
3299 * error.c (dump_expr): Use real_to_decimal directly, and with
3300 the new arguments.
3301
3fa3c4bd
MM
33022002-10-15 Mark Mitchell <mark@codesourcery.com>
3303
3304 * decl.c (reshape_init): Fix typo.
3305
3306 * cp-tree.h (operator_name_info_t): Add arity.
3307 * lex.c (init_operators): Initialize it.
3308 * mangle.c (write_conversion_operator_name): New function.
3309 (write_unqualified_name): Use it.
3310 (write_template_args): Accept template arguments as a TREE_LIST.
3311 (write_expression): Adjust handling of qualified names to match
3312 specification.
3313
1a55127d
JM
33142002-10-15 Jason Merrill <jason@redhat.com>
3315
3316 * call.c (call_builtin_trap): New fn.
3317 (convert_arg_to_ellipsis): Use it. Downgrade error to warning.
3318 (build_call): Don't set current_function_returns_abnormally outside
3319 a function.
3320
58731fd1
MM
33212002-10-14 Mark Mitchell <mark@codesourcery.com>
3322
3323 * class.c (check_field_decls): Remove empty_p parameter. Instead,
3324 clear CLASSTYPE_EMPTY_P.
3325 (build_base_field): Likewise.
3326 (build_base_fields): Likewise.
3327 (check_bases_and_members): Likewise.
3328 (create_vtbl_ptr): Likewise.
3329 (layout_class_type): Likewise. Ensure that empty classes have
3330 size zero when used as base classes in the 3.2 ABI.
3331 (finish_struct_1): Initialize CLASSTYPE_EMPTY_P and
3332 CLASSTYPE_NEARLY_EMPTY_P. Adjust calls to avoid passing empty_p
3333 parameter.
3334 (is_empty_class): Correct definition when using post-3.2 ABI.
3335 * cp-tree.h (lang_type_class): Add empty_p.
3336 (CLASSTYPE_EMPTY_P): New macro.
3337
6742d92b
NS
33382002-10-12 Nathan Sidwell <nathan@codesourcery.com>
3339
3340 * init.c (build_delete): Do not apply save_expr for arrays.
3341 (build_vec_delete): Likewise.
3342
77631fa7
MM
33432002-10-14 Mark Mitchell <mark@codesourcery.com>
3344
4a7510cb 3345 * decl.c (layout_var_decl): Call layout_decl even for variables
7de85f7e
MM
3346 whose type is an array with unspecified bounds.
3347
77631fa7
MM
3348 PR c++/7176
3349 * lex.c (do_identifier): Add another option for the parsing
3350 parameter.
3351 * parse.y (do_id): Use it.
3352
2ee366b5
GDR
33532002-10-11 Gabriel Dos Reis <gdr@integrable-solutions.net>
3354
3355 PRs C++/6803, C++/7721 and C++/7803
3356 * decl.c (grokdeclarator): Gracefully handle template-name as
3357 decl-specifier.
3358
01c3fb15
JM
33592002-10-11 Jason Molenda <jmolenda@apple.com>
3360
3361 * init.c (build_field_list): Provide uses_unions_p with a default
3362 value.
3363
8e3df2de
MM
33642002-10-11 Mark Mitchell <mark@codesourcery.com>
3365
dac45b5c
MM
3366 PR c++/5661
3367 * cp-tree.h (variably_modified_type_p): New function.
3368 (grokdeclarator) Tighten check for variably modified types as
3369 fields.
3370 * pt.c (convert_template_argument): Do not allow variably modified
3371 types as template arguments.
4a7510cb 3372 * tree.c (variably_modified_type_p): New function.
dac45b5c 3373
8e3df2de
MM
3374 * NEWS: Document removal of "new X = ..." extension.
3375 * class.c (initialize_array): Set TREE_HAS_CONSTRUCTOR on
3376 brace-enclosed initializers.
3377 * cp-tree.h (CP_AGGREGATE_TYPE_P): New macro.
3378 (initialize_local_var): Remove declaration.
3379 (expand_static_init): Likewise.
3380 * decl.c (next_initializable_field): New function.
3381 (reshape_init): Likewise.
3382 (check_initializer): Use them. Build dynamic initializer for
3383 aggregates here too.
3384 (initialize_local_var): Simplify, and incorporate cleanup
3385 insertion code as well.
3386 (destroy_local_var): Remove.
3387 (cp_finish_decl): Tidy.
3388 (expand_static_init): Fold checks for whether or not a variable
3389 needs initialization into this function. Simplify.
3390 * decl2.c (do_static_initialization): Simplify.
3391 * init.c (build_init): Do not set TREE_SIDE_EFFECTS when it will
3392 be done for us automatically.
3393 (expand_default_init): Handle brace-enclosed initializers
3394 correctly.
3395 (expand_aggr_init_1): Remove RTL-generation code.
3396 (build_vec_init): Remove "new X = ..." support.
3397 * parse.y (new_initializer): Likewise.
3398 * rtti.c (get_pseudo_ti_init): Set TREE_HAS_CONSTRUCTOR on
3399 brace-enclosed initializer.
3400 (create_pseudo_type_info): Likewise.
3401 * typeck2.c (store_init_value): Don't try to handle digest_init
3402 being called more than once.
3403 (digest_init): Tidy handling of brace-enclosed initializers.
01c3fb15 3404
7bdfd72e
KG
34052002-10-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3406
3407 * decl.c (typename_hash): Use htab_hash_pointer.
3408
e89fe41c
JW
34092002-10-10 Jim Wilson <wilson@redhat.com>
3410
3411 * decl.c (duplicate_decls): Don't call decl_attributes.
3412
95f79357
ZW
34132002-10-09 Zack Weinberg <zack@codesourcery.com>
3414
85cd7be8 3415 PR c/7353
95f79357
ZW
3416 * decl.c (start_decl): Unconditionally issue error for
3417 'typedef foo = bar'.
3418 (cp_finish_decl): Remove special case for TYPE_DECL with initializer.
3419 (grokdeclarator): Remove redundant error for 'typedef foo = bar'.
3420
10a38dba
KG
34212002-10-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3422
3423 * decl2.c (prune_vtable_vardecl): Delete unused function.
3424
edebf865
MM
34252002-10-03 Mark Mitchell <mark@codesourcery.com>
3426
3427 PR c++/7754
3428 * decl2.c (finish_anon_union): Do not expand anonymous unions when
3429 procesing template functions.
3430 * pt.c (tsubst_decl, case VAR_DECL): Try to complete the variable
3431 type. Call layout_decl.
3432 (tsubst_expr, case DECL_STMT): Handle anonymous unions.
3433
01f4137f
RH
34342002-10-07 Richard Henderson <rth@redhat.com>
3435
3436 * decl2.c, pt.c: Revert c++/7754 fix.
3437
eb55ce4b
KL
34382002-10-05 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
3439
3440 PR c++/7804
3441 * error.c (dump_expr) [REAL_CST]: Output in decimal format.
3442
bd9bb3d2
MM
34432002-10-03 Mark Mitchell <mark@codesourcery.com>
3444
43c6a96a 3445 PR c++/7931
bd9bb3d2
MM
3446 * pt.c (for_each_template_parm_r): Handle BASELINKs.
3447
3448 PR c++/7754
3449 * decl2.c (finish_anon_union): Do not expand anonymous unions when
3450 procesing template functions.
3451 * pt.c (tsubst_decl, case VAR_DECL): Try to complete the variable
3452 type. Call layout_decl.
3453 (tsubst_expr, case DECL_STMT): Handle anonymous unions.
3454
6397d80b
MM
34552002-10-03 Mark Mitchell <mark@codesourcery.com>
3456
3457 PR c++/8006
3458 * mangle.c (CLASSTYPE_TEMPLATE_ID_P): Handle instances of template
3459 template parameters.
3460 (globals): Add entity and need_abi_warning.
3461 (decl_is_template_id): Use TYPE_TEMPLATE_INFO, not
3462 CLASSTYPE_TEMPLATE_INFO.
3463 (is_std_substitution): Use CLASSTYPE_TI_TEMPLATE, not
3464 TYPE_TI_TEMPLATE.
3465 (write_prefix): Handle typename types correctly.
3466 (write_template_prefix): Handle template template parameters
3467 correctly.
3468 (start_mangling): Add entity parameter.
3469 (finish_mangling): Warn about names whose mangling will change.
3470 (mangle_decl_string): Adjust.
3471 (mangle_type_string): Likewise.
3472 (mangle_special_for_type): Likewise.
3473 (mangle_ctor_vtbl_for_type): Likewise.
3474 (mangle_thunk): Likewise.
3475 (mangle_guard_variable): Likewise.
3476 (mangle_ref_init_variable): Likewise.
3477
2282d28d
MM
34782002-10-02 Mark Mitchell <mark@codesourcery.com>
3479
3480 PR c++/7188.
3481 * cp-tree.def (CTOR_INITIALIZER): Use one slot, not two.
3482 * cp-tree.h (emit_base_init): Rename to ....
3483 (emit_mem_initializers): ... this.
3484 (expand_member_init): Change prototype.
3485 * init.c (perform_member_init): Compute explicit, rather than
3486 requiring it as a parameter.
3487 (sort_member_init): Rename to ...
3488 (sort_mem_initializers): ... this. Process bases and data members
3489 together.
3490 (sort_base_init): Remove.
3491 (emit_base_init): Rename to ...
3492 (emit_mem_initializers): ... this.
3493 (expand_aggr_vbase_init_1): Remove.
3494 (construct_virtual_bases): Rename to ...
3495 (construct_virtual_base): ... this.
3496 (expand_member_init): Rework handling of base initializers.
3497 * method.c (do_build_copy_constructor): Use
3498 finish_mem_initializers.
3499 * parse.y (member_init): Adjust calls to expand_member_init.
3500 * pt.c (tsubst_expr): Simplify CTOR_INITIALIZER case.
3501 (tsubst_initializer_list): Use expand_member_init.
3502 * semantics.c (finish_mem_intiailizers): Simplify.
69788039
MA
3503
35042002-10-02 Matt Austern <austern@apple.com>
3505 * decl.c (walk_vtables_r): Fixed typo that caused result to
3506 never get a nonzero value.
95f79357 3507
f963b5d9
RS
35082002-10-02 Roger Sayle <roger@eyesopen.com>
3509
3510 PR optimization/6627
3511 * cp-tree.h (enum ptrmemfunc_vbit_where_t): Delete definition
3512 from here, and move it to tree.h.
3513 * decl.c (cxx_init_decl_processing): If storing the vbit
3514 in function pointers, ensure that force_align_functions_log
3515 is atleast one.
3516
69788039
MA
35172002-10-02 Matt Austern <austern@apple.com>
3518
3519 * class.c (check_field_decls): Changed warning about const member
3520 variables so that it doesn't get issued for a class aggregate.
95f79357 3521
d881ff25
MM
35222002-10-01 Mark Mitchell <mark@codesourcery.com>
3523
3524 * decl.c (cp_finish_decl): Make sure array types are laid out,
3525 even if the array bounds are unknown.
3526
2e88ae22
SE
35272002-10-01 Steve Ellcey <sje@cup.hp.com>
3528
d881ff25 3529 * class.c (build_vtbl_initializer): Change build_c_cast
2e88ae22
SE
3530 to build1.
3531
b4c20e52
MM
35322002-10-01 Mark Mitchell <mark@codesourcery.com>
3533
d881ff25
MM
3534 * decl.c (cp_finish_decl): Make sure array types are laid out,
3535 even if the array bounds are unknown.
3536
b4c20e52
MM
3537 * decl.c (cp_finish_decl): Correct check for dynamic
3538 initialization of thread-local storage.
3539
5a9a1961
NS
35402002-09-30 Nathan Sidwell <nathan@codesourcery.com>
3541
3542 * tree.c (really_overloaded_fn): TEMPLATE_ID_EXPRs are also
3543 overloaded.
3544
7befdb9f
SE
35452002-09-30 Steve Ellcey <sje@cup.hp.com>
3546
3547 * class.c (build_vtbl_initializer): Add cast.
3548 (add_vcall_offset_vtbl_entries_1):
3549 Use TARGET_VTABLE_DATA_ENTRY_DISTANCE for offset.
3550
17bbb839
MM
35512002-09-30 Mark Mitchell <mark@codesourcery.com>
3552
3553 * class.c (walk_subobject_offsets): Correct the calculation of
3554 offsets for virtual bases. Correct the counting of array
3555 elements.
3556 (layout_nonempty_base_or_field): Simplify. Correct the
3557 calculation of offsets to be propagated through the binfo
3558 hierarchy.
3559 (build_base_field): Avoid creating a FIELD_DECL for empty bases.
3560 Add the FIELD_DECL to TYPE_FIELDS.
3561 (build_base_fields): Adjust accordingly.
3562 (layout_virtual_bases): Use build_base_field.
3563 (end_of_class): Return a tree, not an integer.
3564 (warn_about_ambiguous_direct_bases): Rename to ...
3565 (warn_about_ambiguous_bases): ... this.
3566 (include_empty_classes): New function.
3567 (layout_class_type): Create an alternative version of the type to
3568 be used when as a base class type. Do not call
3569 finish_record_layout until we are done laying out the class.
3570 * cp-tree.h (lang_type_class): Remove size, size_unit. Add
3571 as_base.
3572 (CLASSTYPE_SIZE): Reimplement.
3573 (CLASSTYPE_SIZE_UNIT): Likewise.
3574 (CLASSTYPE_ALIGN): Likweise.
3575 (CLASSTYPE_USER_ALIGN): Likewise.
3576 (CLASSTYPE_AS_BASE): New macro.
3577 (DECL_INITIALIZED_P): Likewise.
3578 (extract_init): Remove prototype.
3579 (build_forced_zero_init): Rename to ...
3580 (build_zero_init): ... this.
3581 (force_store_init_value): Remove.
3582 * decl.c (obscure_complex_init): Remove.
3583 (duplicate_decls): Copy DECL_INITIALIZED_P.
3584 (check_initializer): Do not leave junk in DECL_INITIAL.
3585 (cp_finish_decl): Handle zero-initialization of entities with
3586 static storage duration.
3587 * expr.c (extract_init): Remove.
3588 * init.c (build_forced_zero_init): Remove.
3589 (build_zero_init): New function.
3590 (build_default_init): Use it.
3591 (build_field_list): Skip FIELD_DECLs for base subobjects.
3592 (push_base_cleanups): Likewise.
3593 * method.c (do_build_assign_ref): Likewise.
3594 (synthesize_exception_spec): Likewise.
3595 * pt.c (tsubst_decl): Clear DECL_INITIALIZED_P.
3596 (regenerate_decl_from_template): To not set DECL_INITIAL for a
3597 static data member whose initialization took place in its class.
3598 (instantiate_decl): Do not pass an initializer to cp_finish_decl
3599 in that situation.
3600 * search.c (dfs_push_decls): Skip FIELD_DECLs for base subobjects.
3601 (dfs_unuse_fields): Likewise.
3602 * tree.c (pod_type_p): Handle error_mark_node.
3603 (zero_init_p): Likewise.
95f79357 3604 * typeck.c (lookup_anon_field): Skip FIELD_DECLs for base
17bbb839
MM
3605 subobjects.
3606 * typeck2.c (store_init_value): Remove #if 0'd code.
3607 (force_store_init_value): Remove.
3608 (process_init_constructor): Use build_zero_init.
95f79357 3609
03357c23
NS
36102002-09-29 Nathan Sidwell <nathan@codesourcery.com>
3611
3612 PR c++/7788
3613 * rtti.c (unemitted_tinfo_decl_p): Check it has a field.
3614
27631dae
KH
36152002-09-29 Kazu Hirata <kazu@cs.umass.edu>
3616
3617 * cp-tree.h: Fix comment typos.
3618 * decl.c: Likewise.
3619 * pt.c: Likewise.
3620
956d9305
MM
36212002-09-25 Mark Mitchell <mark@codesourcery.com>
3622
3623 * cp/class.c (contains_empty_class_p): New method.
3624 (walk_subobject_offsets): Correct computation of field offset.
3625 (layout_empty_base): Correct placement of emtpy base classes.
3626 (layout_class_type): Warn about ABI changes.
3627
2d3e278d
MM
36282002-09-23 Mark Mitchell <mark@codesourcery.com>
3629
3630 * cp/class.c (layout_virtual_bases): Do not round the size of the
3631 type to a multiple of the alignment before laying out virtual bases.
3632 (layout_class_type): Correct handling of bit-fields that are wider
3633 than their type inside unions. Round the size of the type to a
3634 even number of bytes when computing the size without virtual
3635 bases.
3636 * cp/cp-tree.h (abi_version_at_least): New macro.
95f79357 3637
838dfd8a
KH
36382002-09-21 Kazu Hirata <kazu@cs.umass.edu>
3639
3640 * ChangeLog: Follow spelling conventions.
3641 * ChangeLog.2: Likewise.
3642 * call.c: Likewise.
3643 * class.c: Likewise.
3644 * cp-tree.h: Likewise.
3645 * cvt.c: Likewise.
3646 * decl.c: Likewise.
3647 * decl2.c: Likewise.
3648 * except.c: Likewise.
3649 * friend.c: Likewise.
3650 * g++spec.c: Likewise.
3651 * init.c: Likewise.
3652 * lex.c: Likewise.
3653 * mangle.c: Likewise.
3654 * method.c: Likewise.
3655 * operators.def: Likewise.
3656 * optimize.c: Likewise.
3657 * pt.c: Likewise.
3658 * rtti.c: Likewise.
3659 * search.c: Likewise.
3660 * semantics.c: Likewise.
3661 * spew.c: Likewise.
3662 * tree.c: Likewise.
3663 * typeck.c: Likewise.
3664
9ced0328
DP
36652002-09-18 Devang Patel <dpatel@apple.com>
3666
3667 * cp/cp-tree.h: New prototype for walk_vtabls().
3668 * cp/decl.c (walk_vtables_r): New function.
3669 (struct cp_binding_level): Add new members, namespaces,
3670 names_size and vtables.
3671 (add_decl_to_level): Add decl in namespaces or vtables
3672 chain, if conditions match.
3673 (walk_vtables): New function.
3674 (walk_namespaces_r): Travers separate namespace chain
3675 for namespace decls.
3676 (wrapup_globals_for_namespace): Use names_size instead
3677 of list_length().
3678 * cp/decl2.c (finish_file): Use walk_vtables() instead of
3679 walk_globals() to walk vtable decls.
3680
dd29188b
NS
36812002-09-18 Nathan Sidwell <nathan@codesourcery.com>
3682
3683 * decl.c (grokdeclarator): Use assert, not internal_error. Don't
3684 ICE with invalid pointers & references.
3685
f989ed67
ZW
36862002-09-17 Zack Weinberg <zack@codesourcery.com>
3687
3688 * Make-lang.in: Remove all references to the demangler.
3689 * cxxfilt.c: Moved to binutils.
3690
171d2f50
NS
36912002-09-16 Nathan Sidwell <nathan@codesourcery.com>
3692
3ec83083
NS
3693 PR c++/7718
3694 * pt.c (tsubst_decl): Remove assert.
3695
171d2f50
NS
3696 Remove DR 295 implementation.
3697 * pt.c (check_cv_quals_for_unify): Disable function & method cases.
3698 * tree.c (cp_build_qualified_type_real): Likewise. Don't warn
3699 about ignoring volatile qualifiers.
3700
3701 * search.c (lookup_member): Correct documentation.
3702
36a5eadd
GK
37032002-09-16 Geoffrey Keating <geoffk@apple.com>
3704
3705 * cp-tree.h (union lang_tree_node): Add chain_next option.
3706
28c56d25
NS
37072002-09-16 Nathan Sidwell <nathan@codesourcery.com>
3708
7979434d
NS
3709 * parse.y (parse_finish_call_expr): Check lookup_member result.
3710
28c56d25
NS
3711 PR c++/7015
3712 * semantic.c (finish_asm_stmt): Fix operand/output_operands
3713 thinko.
3714 * typeck.c (c_expand_asm_operands): Protect from error_mark_node.
3715
3baab484
NS
37162002-09-15 Nathan Sidwell <nathan@codesourcery.com>
3717
3718 PR c++/7919
3719 * call.c (build_over_call): Convert this pointer for fns found by
3720 using decls.
3721
d30d6e7a
KH
37222002-09-15 Kazu Hirata <kazu@cs.umass.edu>
3723
3724 * ChangeLog: Follow spelling conventions.
3725 * ChangeLog.1: Likewise.
3726
c8460010
NS
37272002-09-14 Nathan Sidwell <nathan@codesourcery.com>
3728
3729 PR c++/7768
3730 * pt.c (build_template_decl): Copy DECL_DESTRUCTOR_P.
3731
c6002625
KH
37322002-09-14 Kazu Hirata <kazu@cs.umass.edu>
3733
3734 * error.c: Fix comment formatting.
3735 * except.c: Likewise.
3736 * expr.c: Likewise.
3737 * friend.c: Likewise.
3738 * g++spec.c: Likewise.
3739 * init.c: Likewise.
3740 * lex.c: Likewise.
3741 * mangle.c: Likewise.
3742 * method.c: Likewise.
3743 * optimize.c: Likewise.
3744 * pt.c: Likewise.
3745 * rtti.c: Likewise.
3746 * search.c: Likewise.
3747 * semantics.c: Likewise.
3748 * spew.c: Likewise.
3749 * tree.c: Likewise.
3750 * typeck.c: Likewise.
3751 * typeck2.c: Likewise.
3752
46dd3884
GDR
37532002-09-13 Matt Austern <austern@apple.com>
3754
4a7510cb 3755 PR C++/7828
46dd3884
GDR
3756 * cp/cp-tree.h, cp/tree.c: New function non_cast_lvalue_p.
3757 * cp/call.c: Change call-by-const-reference mechanism to use
3758 non_cast_lvalue_p when deciding whether the create a temporary.
3759 We need a temporary when passing, e.g. (long) x by const ref.
3760
712467a4
NS
37612002-09-13 Nathan Sidwell <nathan@codesourcery.com>
3762
3763 * pt.c (unify, ARRAY_TYPE): Element type can be more qualified.
3764
a1c65f9f
KH
37652002-09-13 Kazu Hirata <kazu@cs.umass.edu>
3766
3767 * decl.c: Fix comment formatting.
3768 * decl2.c: Likewise.
3769
00a17e31
KH
37702002-09-12 Kazu Hirata <kazu@cs.umass.edu>
3771
3772 * call.c: Fix comment formatting.
3773 * class.c: Likewise.
3774 * cp-lang.c: Likewise.
3775 * cp-tree.h: Likewise.
3776 * cvt.c: Likewise.
3777
3fd9d606
ZW
37782002-09-11 Zack Weinberg <zack@codesourcery.com>
3779
3780 * Make-lang.in: Build cp/cxxfilt.o from $(srcdir)/cp/cxxfilt.c,
3781 and c++filt from cxxfilt.o + version.o + $(LIBDEPS).
3782 * cxxfilt.c: New file: split from libiberty/cplus-dem.c, with
3783 minor adjustments (use version_string, eliminate yet another
3784 duplicate of xmalloc)
3785
2515a7ea
KG
37862002-09-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3787
3788 * cp-tree.h (require_complete_eh_spec_types): Add prototype.
3789
5aa3396c
JM
37902002-09-05 Jason Merrill <jason@redhat.com>
3791
3792 * typeck2.c (add_exception_specifier): Only pedwarn for an
3793 incomplete type.
3794 (require_complete_eh_spec_types): New fn.
3795 (cxx_incomplete_type_diagnostic): Also support pedwarning.
3796 * typeck.c (complete_type_or_diagnostic): Likewise.
3797 * call.c (build_call): Call require_complete_eh_spec_types.
3798 * rtti.c (get_pseudo_ti_desc): Give an error rather than aborting
3799 on an incomplete type.
3800
23ccd1f3
JJ
38012002-09-04 Jakub Jelinek <jakub@redhat.com>
3802
3803 * decl.c (start_cleanup_fn): Clear interface_only before
3804 start_function, restore it afterwards.
3805
4977bab6
ZW
38062002-09-02 Nathan Sidwell <nathan@codesourcery.com>
3807
3808 * cp-tree.h (finish_builtin_type): Remove.
3809 * decl2.c (finish_builtin_type): Move to common code.
3810 * decl.c (build_ptrmemfunc_type): Adjust.
3811 * rtti.c (create_pseudo_type_info): Adjust.
3812 (create_tinfo_types): Adjust.
3813
d99f015c
JM
38142002-08-31 Jason Merrill <jason@redhat.com>
3815
3816 * cp-lang.c (cp_expr_size): Allow initialization from a
3817 CONSTRUCTOR.
3818
8a3c9180
RH
38192002-08-30 Richard Henderson <rth@redhat.com>
3820
c9989d09 3821 PR opt/7515
8a3c9180
RH
3822 * tree.c: Include target.h.
3823 (cp_cannot_inline_tree_fn): Don't auto-inline functions that
3824 don't bind locally.
3825 * Makefile.in (tree.o): Update.
3826
eca7f13c
MM
38272002-08-27 Mark Mitchell <mark@codesourcery.com>
3828
3829 * class.c (layout_virtual_bases): Warn about bugs in G++ that
3830 result in incorrect object layouts.
3831 (layout_class_type): Likewise.
f989ed67 3832
13d3f0b6
MA
38332002-08-24 Matt Austern <austern@apple.com>
3834
3835 * tree.c (lvalue_p_1): Add argument for whether casts of lvalues
3836 are allowable.
3837 (real_lvalue_p): Update caller.
3838 (lvalue_p): Ditto.
3839 (non_cast_lvalue_or_else): New.
3840 * tree.h: Declare it.
f989ed67 3841 * typeck.c (build_unary_op): Use non_cast_lvalue_or_else.
13d3f0b6 3842
5b770a96
MM
38432002-08-22 Mark Mitchell <mark@codesourcery.com>
3844
3845 * typeck.c (build_class_member_access_expr): Handle COMPOUND_EXPR
3846 and COND_EXPR specially; fix error message output.
3847
d65b1d77
JM
38482002-08-22 Jason Merrill <jason@redhat.com>
3849
3850 * pt.c (tsubst_expr): RETURN_EXPR is now RETURN_STMT_EXPR.
3851 * semantics.c (nullify_returns_r): Likewise.
3852
8a5f4379
GDR
38532002-08-17 Gabriel Dos Reis <gdr@integrable-solutions.net>
3854
3855 Fix PR/7621
3856 * typeck.c (finish_class_member_access_expr): Diagnose cases where
3857 name lookup finds nothing.
3858
5d764395
JM
38592002-08-15 Jason Merrill <jason@redhat.com>
3860
3861 * semantics.c (finish_then_clause): Remove redundant assignment.
3862 (finish_if_stmt, begin_switch_stmt, finish_switch_stmt): Move the
3863 extra binding level outside the if/switch statement.
3864 (finish_while_cond, finish_for_cond): Rewrite complex condition
3865 into the loop body.
3866
c01b9ec8
AO
38672002-08-15 Alexandre Oliva <aoliva@redhat.com>
3868
3869 * parse.y (sizeof, alignof, typeof): New non-terminals to
3870 increment skip_evaluation. Replace terminals with them and
3871 decrement skip_evaluation at the end of rules using them.
3872 * decl2.c (mark_used): Don't assemble_external if
3873 skipping evaluation.
3874
e8fe46d4
GDR
38752002-08-15 Gabriel Dos Reis <gdr@nerim.net>
3876
3877 Fix PR/7504
3878 * parse.y (parse_finish_call_expr): Handle incomplete
3879 type used to name a scope.
3880
eac5ce6c
NS
38812002-08-15 Nathan Sidwell <nathan@codesourcery.com>
3882
3883 PR c++/7598
3884 * typeck.c (build_unary_op): Fold offsetof idiom. Fixes
3885 regression caused by my 2002-08-08 patch.
3886
22eadedb
MM
38872002-08-13 Mark Mitchell <mark@codesourcery.com>
3888
3889 * decl.c (pushdecl_class_level): Honor requests to bind names to
3890 OVERLOADs.
3891
e65e6212
KG
38922002-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3893
3894 * decl2.c (build_call_from_tree): Fix uninitialized variable.
3895 * parse.y (parse_finish_call_expr): Likewise.
3896 * repo.c (old_args, old_dir, old_main): Const-ify.
3897
3e72ec9a
GDR
38982002-08-11 Gabriel Dos Reis <gdr@nerim.net>
3899
3900 * decl.c (duplicate_decls): Replace DECL_SOURCE_FILE +
3901 DECL_SOURCE_LINE with DECL_SOURCE_LOCATION.
3902 * optimize.c (maybe_clone_body): Likewise.
3903 * pt.c (tsubst_enum): Likewise.
3904 (lookup_template_class): Likewise.
3905 * tree.c (cp_copy_res_decl_for_inlining): Likewise.
3906
f749a36b
NB
39072002-08-10 Neil Booth <neil@daikokuya.co.uk>
3908
3909 * lang-specs.h: Remove -ansi.
3910
3ebf5204
NS
39112002-08-10 Nathan Sidwell <nathan@codesourcery.com>
3912
3913 * tree.c (maybe_dummy_object): Replace // with /* */
3914
9e259dd1
MM
39152002-08-09 Mark Mitchell <mark@codesourcery.com>
3916
3917 * call.c (standard_conversion): Use build_ptrmem_type.
3918 * cp-tree.h (build_ptrmem_type): New function.
3919 (adjust_result_of_qualified_name_lookup): Likewise.
3920 * decl.c (grokvardecl): Do not look for OFFSET_TYPEs to indicate
3921 static data members.
3922 (build_ptrmem_type): New function.
3923 (grokdeclarator): Do not use build_offset_type when encountering a
3924 qualified name.
3925 * parse.y (parse_finish_call_expr): Use
3926 adjust_result_of_qualified_name_lookup.
3927 * search.c (adjust_result_of_qualified_name_lookup): New function.
3928 * typeck.c (qualify_type_recursive): Use TYPE_PTRMEM_* rather than
3929 accessing OFFSET_TYPEs directly.
f989ed67 3930
0e339752
MS
39312002-08-08 Mike Stump <mrs@apple.com>
3932
3933 * call.c (add_builtin_candidate): legal -> valid, illegal -> invalid.
3934 (type_decays_to): Likewise.
3935 * class.c (find_final_overrider): Likewise.
3936 (maybe_note_name_used_in_class): Likewise.
3937 * decl.c (current_tmpl_spec_kind): Likewise.
3938 (add_binding): Likewise.
3939 (push_class_binding): Likewise.
3940 (duplicate_decls): Likewise.
3941 (layout_var_decl): Likewise.
3942 (grokfndecl): Likewise.
3943 (grokdeclarator): Likewise.
3944 (check_default_argument): Likewise.
3945 * decl2.c (handle_class_head): Likewise.
3946 * error.c (dump_template_decl): Likewise.
3947 * init.c (build_offset_ref): Likewise.
3948 * pt.c (check_specialization_scope): Likewise.
3949 (determine_specialization): Likewise.
3950 (check_explicit_specialization): Likewise.
3951 (maybe_check_template_type): Likewise.
3952 (process_partial_specialization): Likewise.
3953 (check_default_tmpl_args): Likewise.
3954 (push_template_decl_real): Likewise.
3955 (convert_template_argument): Likewise.
3956 (try_class_unification): Likewise.
3957 (get_bindings_real): Likewise.
3958 (do_decl_instantiation): Likewise.
3959 * semantics.c (begin_function_definition): Likewise.
3960 (finish_member_declaration): Likewise.
3961 (check_multiple_declarators): Likewise.
3962 * typeck.c (comp_array_types): Likewise.
3963 (comptypes): Likewise.
3964 (expr_sizeof): Likewise.
3965 (build_binary_op): Likewise.
3966 (dubious_conversion_warnings): Likewise.
3967 (check_return_expr): Likewise.
b6ce26ac 3968
a6f5b2d3
MM
39692002-08-08 Mark Mitchell <mark@codesourcery.com>
3970
3971 * typeck.c (build_class_member_access_expr): Do not return
3972 error_mark_node when no error has occurred.
b6ce26ac 3973
c93a26f5
NS
39742002-08-08 Nathan Sidwell <nathan@codesourcery.com>
3975
3976 * typeck.c (build_component_addr): Remove.
3977 (build_unary_op): Just check it's not a bitfield, and then build
3978 an ADDR_EXPR.
3979
5bfc90de
NS
39802002-08-08 Nathan Sidwell <nathan@codesourcery.com>
3981
3982 * class.c (convert_to_base): Correct check for error_mark_node.
3983 (create_vtable_ptr): Remove unused VFUNS_P parm.
3984
22aa533e
NS
39852002-08-08 Nathan Sidwell <nathan@codesourcery.com>
3986
3987 * cp/Make-lang.in (c++.mostlyclean): Remove coverage files.
3988
50ad9642
MM
39892002-08-07 Mark Mitchell <mark@codesourcery.com>
3990
3991 Rework build_component_ref.
3992 * call.c (build_vfield_ref): Do not go through build_component_ref.
3993 (build_field_call): Use build_class_member_access_expr.
3994 (build_user_type_conversion_1): Use BASELINK_FUNCTIONS.
3995 (build_object_call): Likewise.
3996 * class.c (convert_to_base): New function.
3997 (type_requires_array_cookie): Use BASELINK_FUNCTIONS.
3998 (instantiate_type): Handle BASELINKs.
3999 * cp-tree.def (BASELINK): New tree code.
4000 * cp-tree.h (BASELINK_P): Reimplement.
4001 (SET_BASELINK_P): Remove.
4002 (BASELINK_BINFO): Reimplement.
4003 (BASELINK_FUNCTIONS): Likewise.
4004 (BASELINK_ACCESS_BINFO): Likewise.
4005 (BASELINK_OPTYPE): Likewise.
4006 (convert_to_base): New function.
4007 (name_p): Likewise.
4008 (build_object_ref): Remove.
4009 (build_component_ref_1): Likewise.
4010 (build_component_ref): Likewise.
4011 (build_x_component_ref): Likewise.
4012 (build_class_member_access_expr): New function.
4013 (finish_class_member_access_expr): Likewise.
4014 (build_ptrmemfunc_access_expr): Likewise.
4015 * decl.c (grokdeclarator): Handle BASELINKs.
4016 * decl2. (build_expr_from_tree): Handle COMPONENT_REFs by using
4017 finish_class_member_access_expr.
4018 (arg_assoc): Handle BASELINKs.
4019 (do_class_using_decl): Likewise.
4020 * error.c (dump_decl): Likewise.
4021 (dump_expr): Use build_ptrmemfunc_access_expr.
4022 * except.c (dtor_nothrow): Use CLASSTYPE_DESTRUCTORS to find
4023 destructors.
4024 (build_throw): Use BASELINK_FUNCTIONS.
4025 * init.c (perform_member_init): Use
4026 build_class_member_access_expr.
4027 (build_offset_ref): Handle BASELINKs. Use
4028 build_class_member_access_expr.
4029 * method.c (hack_identifier): Likewise.
4030 * parse.y (do_id): Use BASELINK, not TREE_LIST.
4031 (primary): Remove uses of build_object_ref.
4032 * pt.c (lookup_template_function): Handle BASELINKs.
4033 (resolve_overloaded_unification): Likewise.
4034 * search.c (build_baselink): Build a BASELINK, not a TREE_LIST.
4035 (lookup_field): Use BASELINK, not TREE_LIST.
4036 (lookup_fnfiels): Likewise.
4037 (setup_class_bindings): Likewise.
4038 * semantics.c (finish_object_call_expr): Do not use
4039 build_method_call when we already know what function is being
4040 called.
4041 * spew.c (identifier_type): Use BASELINK, not TREE_LIST.
4042 * tree.c (really_overloaded_fn): Use OVL_CHAIN for OVERLOADs, not
4043 TREE_CHAIN.
4044 (name_p): New function.
4045 * typeck.c (build_object_ref): Remove.
4046 (build_component_ref_1): Likewise.
4047 (build_x_component_ref): Likewise.
4048 (build_class_member_access_expr): New function.
4049 (finish_class_member_access_expr): Likewise.
4050 (build_ptrmemfunc_access_expr): Likewise.
4051 (get_member_function_from_ptrfunc): Use
4052 build_ptrmemfunc_access_expr.
4053 (build_binary_op): Likewise.
4054 (build_unary_op): Likewise.
4055 (build_ptrmemfunc): Likewise.
4056 (pfn_from_ptrmemfunc): Likewise.
4057 * typeck2.c (build_m_component_ref): Adjust comment.
b6ce26ac 4058
0b6f2917
NB
40592002-08-07 Neil Booth <neil@daikokuya.co.uk>
4060
4061 * Make-lang.in (CXX_C_OBJS): Update.
4062 * cp-lang.c (LANG_HOOKS_DECODE_OPTION): Use c_common_decode_option.
4063 * cp-tree.h (cxx_decode_option): Remove.
4064 * decl2.c (compare_options, lang_f_options, unsupported_options,
4065 cxx_decode_option): Remove.
4066
1e14c7f0
GDR
40672002-08-06 Gabriel Dos Reis <gdr@nerim.net>
4068
4069 * typeck.c (build_x_unary_op): Handle pointer-to-member.
4070
b3426eb9
GK
40712002-08-05 Geoffrey Keating <geoffk@redhat.com>
4072
4073 * class.c: Don't include obstack.h.
b6ce26ac 4074 (popclass):
b3426eb9
GK
4075 * decl2.c: Delete bogus comment.
4076 * error.c: Don't include obstack.h.
4077 * except.c: Likewise.
4078 (dump_type): Correct comment.
4079 * method.c: Don't include obstack.h.
4080 * tree.c: Likewise.
4081
201fbb7f
GDR
40822002-08-04 Gabriel Dos Reis <gdr@nerim.net>
4083
4084 Fix PR/2213
4085 * cvt.c (cp_convert_to_pointer): Reject conversions from integral
4086 expressions to pointer-to-data-member of pointer-to-member-functions.
4087
6d9f628e
GK
40882002-08-04 Geoffrey Keating <geoffk@redhat.com>
4089
4090 * cvt.c (ocp_convert): Delete obsolete code.
4091 * parse.y (permanent_obstack): Delete declaration.
4092 * pt.c (permanent_obstack): Delete declaration.
4093 * repo.c (permanent_obstack): Delete declaration.
4094 (open_repo_file): Use xmalloc instead of permanent_obstack.
4095 (init_repo): Use xstrdup instead of permanent_obstack.
4096
dd98e14f
NS
40972002-08-04 Nathan Sidwell <nathan@codesourcery.com>
4098
4099 * cp-tree.h (VF_DERIVED_VALUE): Remove.
4100 * class.c (finish_struct_1): Use VF_BINFO_VALUE not VF_DERIVED_VALUE.
4101
e6858a84
NS
41022002-08-03 Nathan Sidwell <nathan@codesourcery.com>
4103
4104 PR 7470.
4105 C++ ABI change - vfunc ordering.
4106 * class.c (add_virtual_function): Remove.
4107 (dfs_modify_all_vtables): Take list of all declared
4108 virtuals. Assign all that are not in primary base.
4109 (check_for_override): Adjust comments.
4110 (create_vtable_ptr): Take single list of virtuals. Build chain
4111 of declared virtuals here.
4112 (layout_class_type): Take single list of virtuals. Adjust.
4113 (finish_struct_1): Keep virtuals on single list. Adjust.
4114
55765de4
MM
41152002-08-02 Mark Mitchell <mark@codesourcery.com>
4116
4117 * init.c (build_member_call): Use build_new_method_call, not
4118 build_method_call.
4119
d0067571
KW
41202002-08-02 Krister Walfridsson <cato@df.lth.se>
4121
4122 * Make-lang.in (spew.o, lex.o, pt.o): Add path to parse.h dependencies.
4123
4a34e0e8
MM
41242002-08-02 Mark Mitchell <mark@codesourcery.com>
4125
4126 * call.c (build_method_call): Issue a more helpful error message
4127 about ambiguous method names.
4128
41ab2ae2
NS
41292002-08-02 Nathan Sidwell <nathan@codesourcery.com>
4130
4131 * tree.c (build_shared_int_cst): Make cache file scope, and
4132 GTY it.
4133
367aa585
JM
41342002-08-02 Jason Merrill <jason@redhat.com>
4135
a77a9a18
JM
4136 * cp-lang.c (LANG_HOOKS_EXPR_SIZE): Define.
4137 (cp_expr_size): New fn.
4138 * call.c (build_over_call): Lose empty class hackery.
4139 (convert_arg_to_ellipsis): Promote non-POD warning to error.
4140 * typeck.c (build_modify_expr): Don't use save_expr on an lvalue.
4141
367aa585
JM
4142 * semantics.c (expand_body): Do tree optimization in the function
4143 context, too.
4144
4078b403
NB
41452002-08-01 Neil Booth <neil@daikokuya.co.uk>
4146
4147 * cp-tree.h: Move all warning and flag declarations to c-common.h.
4148 * decl.c: Move all warning and flag variables to c-common.c.
4149 * decl2.c: Move all warning and flag variables to c-common.c.
4150 * lex.c (flag_digraphs): Remove.
4151 (warn_traditional): Now in c-common.c.
4152
4ba126e4
MM
41532002-07-31 Mark Mitchell <mark@codesourcery.com>
4154
4155 * call.c (build_field_call): Do not look up the field by name.
4156 (build_method_call): Simplify.
4157 (struct z_candidate): Add access_path and conversion_path. Remove
4158 basetype_path.
4159 (convert_class_to_reference): Adjust use of
4160 add_function_candidate.
4161 (add_candidate): Add conversion_path argument.
4162 (add_function_candidate): Use it.
4163 (add_conv_dndidate): Likewise.
4164 (build_builtin_candidate): Likewise.
4165 (add_template_candidate_real): Add conversion_path argument.
4166 (add_template_conv_candidate): Likewise.
4167 (add_template_candidate): Likewise.
4168 (build_user_type_conversion_1): Use it.
4169 (build_new_function_call): Remove name lookup code. Adjust use of
4170 add_template_candidate and add_function_candidate.
4171 (build_new_op): Likewise.
4172 (convert_like_real): Use build_special_member_call.
4173 (build_over_call): Use cand->conversion_path.
4174 (build_special_member_call): New method.
4175 (build_new_method_call): Remove name lookup code.
4176 * cp-tree.def (OFFSET_REF): Update documentation.
4177 (TEMPLATE_ID_EXPR): Likewise.
4178 * cp-tree.h (BASELINK_ACCESS_BINFO): New macro.
4179 (BASELINK_OPTYPE): Likewise.
4180 (build_new_method_call): Adjust prototype.
4181 (build_special_member_call): New method.
4182 (build_baselink): New method.
4183 (build_offset_ref_call_from_tree): Likewise.
4184 (build_call_from_tree): Likewise.
4185 (finish_qualified_call_expr): Remove.
4186 (finish_call_expr): Adjust prototype.
4187 (build_x_function_call): Remove.
4188 * cvt.c (ocp_convert): Use build_special_member_call.
4189 * decl2.c (reparse_absdcl_as_expr): Use finish_call_expr.
4190 (build_expr_from_tree): Adjust handling for TEMPLATE_ID_EXPR and
4191 CALL_EXPR.
4192 (build_offset_ref_call_from_tree): New function.
4193 (build_call_from_tree): Likewise.
4194 * init.c (expand_cleanup): Use build_special_member_call.
4195 (expand_default_init): Likewise.
4196 (build_member_call): Use finish_call_expr.
4197 (build_new_1): Use build_special_member_call.
4198 (push_base_cleanups): Likewise.
4199 * method.c (do_build_assign_ref): Likewise.
4200 * parse.y (template_id): Do not pass a COMPONENT_REF to
4201 lookup_template_function.
4202 (primary): Use parse_finish_call_epxr, not finish_call_expr.
4203 (parse_finish_call_expr): New function.
4204 * pt.c (lookup_template_function): Add assertions.
4205 * search.c (lookup_base): Allow T to be a binfo.
4206 (build_baselink): New function.
4207 (lookup_member): Use it.
4208 * semantics.c (finish_call_expr): Do not do name lookup.
4209 (finish_object_call_expr): Remove #if 0'd code.
4210 (finish_qualified_call_expr): Remove.
4211 * typeck.c (build_x_function_call): Remove.
4212 (build_static_case): Use build_special_member_call.
4213 * typeck2.c (build_functional_cast): Likewise.
b6ce26ac 4214
60b8aa94
FS
42152002-07-30 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
4216
4217 * lang-specs.h: Remove __GXX_ABI_VERSION, moved to gcc.c.
4218
8a4a7242
GDR
42192002-07-30 Gabriel Dos Reis <gdr@nerim.net>
4220
4221 * cp-tree.h (VF_DERIVED_VALUE): Restore from previous deletion.
4222
03fc215c
NS
42232002-07-30 Nathan Sidwell <nathan@codesourcery.com>
4224
4225 * cp-tree.h (CLASSTYPE_VFIELDS, VF_*, BV_*): Add more
4226 documentation.
4227
3f16a8f3
AM
42282002-07-29 Alan Modra <amodra@bigpond.net.au>
4229
4230 * cp-tree.h: Comment typo fix.
4231
c03d566f
RE
42322002-07-29 Richard Earnshaw <rearnsha@arm.com>
4233
4234 * spew.c (space_for_token): Allocate zeroed memory for a new token
4235 chunk.
4236
c2ef6d34
RS
42372002-07-27 Roger Sayle <roger@eyesopen.com>
4238
4239 * decl.c (builtin_function_1): No need to explicitly mark
4240 BUILT_IN_RETURN and BUILT_IN_EH_RETURN as noreturn.
4241
a3926fe1
RS
42422002-07-27 Roger Sayle <roger@eyesopen.com>
4243
4244 * decl2.c (cxx_decode_option): Support -fno-builtin-foo.
4245
8e51619a
JM
42462002-07-26 Jason Merrill <jason@redhat.com>
4247
4248 * call.c (build_over_call): Likewise.
4249 (cp_convert_parm_for_inlining): New fn.
f989ed67
ZW
4250 (convert_for_arg_passing): New fn.
4251 (convert_default_arg, build_over_call): Use it.
8e51619a
JM
4252 (type_passed_as): New fn.
4253 * pt.c (tsubst_decl): Use it.
4254 * decl2.c (cp_build_parm_decl): New fn.
4255 (build_artificial_parm): Use it.
4256 (start_static_storage_duration_function): Likewise.
4257 * decl.c (start_cleanup_fn, grokdeclarater): Likewise.
4258 (grokparms): Don't mess with DECL_ARG_TYPE.
4259 * typeck.c (convert_arguments): Use convert_for_arg_passing.
4260 * cp-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
4261 Define.
4262 * cp-tree.h: Declare new fns.
b6ce26ac 4263
c372b0fa
NB
42642002-07-26 Neil Booth <neil@daikokuya.co.uk>
4265
4266 * cp-tree.h (flag_operator_names): Remove.
4267 * decl2.c (flag_operator_names): Remove.
4268 (lang_f_options): Remove operator-names.
4269 * lex.c (D_OPNAME): Remove.
4270 (reswords): Remove operator names.
4271 (rid_to_yy): Remove operator names.
4272 (init_reswords): No need to handle D_OPNAME.
4273 * spew.c (read_process_identifier): There are no operator
4274 names.
4275
558ee214
JM
42762002-07-26 Jason Merrill <jason@redhat.com>
4277
4278 * dump.c (cp_dump_tree): Call c_dump_tree.
4279 * Make-lang.in (CXX_C_OBJS): Add c-dump.o.
4280
81a1552d
NB
42812002-07-25 Neil Booth <neil@daikokuya.co.uk>
4282
4283 * error.c (print_whitespace): Remove.
4284 * g++spec.c (LIBUNWIND): Move.
4285 * mangle.c (mangled_position, write_signed_number): Remove.
4286
cad2c6b6
NB
42872002-07-25 Neil Booth <neil@daikokuya.co.uk>
4288
4289 * decl2.c (cxx_decode_option): Similarly.
4290
ea793912
GDR
42912002-07-25 Gabriel Dos Reis <gdr@nerim.net>
4292
4293 * cp-tree.h (cxx_sizeof_nowarn): Now a macro.
4294 (cxx_sizeof_or_alignof_type): Take a third argument.
4295 (cxx_sizeof): Adjust definition.
4296 (cxx_alignof): Likewise.
4297 * init.c (build_delete): Use cxx_sizeof_nowarn to reflect reality.
4298 * typeck.c (cxx_sizeof_or_alignof_type): Take a third argument for
4299 complaining.
4300 (c_sizeof_nowarn): Remove definition.
4301 (build_unary_op): Use cxx_sizeof_nowarn.
4302
3cfab7ec
GK
43032002-07-24 Geoffrey Keating <geoffk@redhat.com>
4304
4305 * tree.c (cp_build_qualified_type_real): When copying
4306 pointer-to-method types, unshare the record that holds
4307 the cached pointer-to-member-function type.
4308
c0667597
NB
43092002-07-23 Neil Booth <neil@daikokuya.co.uk>
4310
4311 * cp-tree.h (FILE_FUNCTION_PREFIX_LEN): Remove.
4312
fa72b064
GDR
43132002-07-23 Gabriel Dos Reis <gdr@nerim.net>
4314
4315 Fix PR/7363:
4316 * typeck.c (cxx_sizeof_or_alignof_type): New function.
4317 (c_sizeof): Remove definition.
4318 (expr_sizeof): Use cxx_sizeof.
4319 * decl2.c (build_expr_from_tree): Use cxx_sizeof_or_alignof_type.
4320 * decl.c (finish_destructor_body): Use cxx_sizeof.
4321 * semantics.c (finish_alignof): Likewise.
4322 (finish_alignof): Use cxx_alignof.
4323 * cp-tree.h (cxx_sizeof, cxx_alignof): New macros.
4324 (cxx_sizeof_or_alignof_type): Declare.
4325 (my_friendly_assert): Move to ../c-common.h.
4326
4fa31c2a
NB
43272002-07-23 Neil Booth <neil@daikokuya.co.uk>
4328
4329 * class.c, method.c, pt.c, search.c: Don't define obstack macros.
4330
0e902d98
KL
43312002-07-22 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
4332
4333 PR c++/7347, c++/7348
4334 * cp-tree.h (tsubst_flags_t): Add tf_parsing.
4335 * decl.c (make_typename_type): Use it.
4336 (make_unbound_class_template): Likewise.
4337 (lookup_name_real): Don't call type_access_control if scope is
4338 template parameter dependent.
4339 * parse.y (template_arg): Call make_unbound_class_template with
4340 tf_parsing set.
4341 (nest_name_specifier): Call make_typename_type with tf_parsing set.
4342 (typename_sub0): Likewise.
4343 (typename_sub1): Likewise.
4344 (instantiate_decl): Push class scope.
4345 * pt.c (regenerate_decl_from_template): Call pushclass and popclass
4346 for both static variable and member function template.
4347 (instantiate_decl) Call pushclass and popclass when tsubst'ing type
4348 and arguments.
4349 * search.c (type_access_control): Do type access for TEMPLATE_DECL
4350 too.
4351
b886c620
RS
43522002-07-20 Roger Sayle <roger@eyesopen.com>
4353
4354 * decl2.c (cxx_decode_option): Simplify -fhandle-exceptions
4355 test by using positive_option. Make whitespace consistent.
4356
7a561142
GDR
43572002-07-20 Gabriel Dos Reis <gdr@nerim.net>
4358
fa72b064 4359 * spew.c (struct unparsed_test): Replace 'filename' and 'lineno'
7a561142
GDR
4360 members with 'locus'. Adjust use throughout.
4361 (struct feed): Likewise.
4362 (alloc_unparsed_test): Change prototype, take a 'const location_t *'.
4363 Adjust use.
4364 (snarf_defarg): Use error(), not error_with_file_and_line().
4365
059ba716
CD
43662002-07-19 Chris Demetriou <cgd@broadcom.com>
4367
4368 * lang-specs.h (@c++): Include "%2" (cc1plus_spec) wherever
4369 cpp_options is included.
4370
d955f6ea
KL
43712002-07-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
4372
4373 PR c++/2862, c++/2863
4374 * pt.c (determine_specialization): Compare the length of
4375 TYPE_ARG_TYPES. Tidy.
4376
d03d18e8
KL
43772002-07-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
4378
4379 PR c++/3797
4380 * decl.c (duplicate_decls): Don't propagate inlining parameters from
b6ce26ac 4381 olddecl to newdecl when newdecl is a specialization of the
d03d18e8
KL
4382 instantiation olddecl.
4383
ba59df78
KL
43842002-07-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
4385
4386 PR c++/4802, c++/5387
4387 * decl.c (make_typename_type): Use enforce_access.
4388
58f05188
SS
43892002-07-17 Scott Snyder <snyder@fnal.gov>
4390
4391 PR c++/7320
4392 * rtti.c (get_tinfo_decl): Set DECL_COMDAT.
4393
04ec0065
MM
43942002-07-12 Mark Mitchell <mark@codesourcery.com>
4395
4396 * class.c (add_method): Correct handling of conversion operators.
4397
f0ab6bf2
MM
43982002-07-11 Mark Mitchell <mark@codesourcery.com>
4399
4400 PR c++/7224
4401 * class.c (add_method): Simplify.
4402
34902e16
JM
44032002-07-11 Jason Merrill <jason@redhat.com>
4404
4405 PR c++/7279
4406 * tree.c (cp_copy_res_decl_for_inlining): Also copy
4407 TREE_ADDRESSABLE.
4408
6e04241f
GS
44092002-07-10 Graham Stott <graham.stott@btinternet.com>
4410
4411 * pt.c (template_parm_this_level_p, push_template_decl_real):
b6ce26ac 4412 Pass depth as int pointer.
6e04241f 4413
8ac9d31f
TJ
44142002-07-11 Tim Josling <tej@melbpc.org.au>
4415
b6ce26ac 4416 Remove front end hard coding from gengtype.c.
8ac9d31f
TJ
4417
4418 * config-lang.in (gtfiles): Add files needed for this front end.
4419
15c7fb9c
MM
44202002-07-10 Mark Mitchell <mark@codesourcery.com>
4421
4422 * cp-tree.h (unqualified_name_lookup_error): Declare it.
4423 (begin_function_definition): Adjust prototype.
4424 * lex.c (unqualified_name_lookup_error): New function, split out
4425 from ...
4426 (do_identifier): ... here.
4427 * parse.y (parse_begin_function_definition): New function.
4428 (fn.def1): Use it.
4429 * semantics.c (begin_function_definition): Accept decl-specifiers
4430 and attributes as separate parameters.
4431
abf92e26
JM
44322002-07-10 Jason Merrill <jason@redhat.com>
4433
4434 PR c++/6255
4435 * decl.c (lookup_name_real): Build a new TYPENAME_TYPE rather than
4436 modifying the old one.
4437
8ba658ee
MM
44382002-07-09 Mark Mitchell <mark@codesourcery.com>
4439
4440 * cp-tree.h (constructor_name_p): Declare it.
4441 (check_template_template_default_arg): Likewise.
4442 * class.c (handle_using_decl): Use constructor_name_p.
4443 * decl.c (grokdeclarator): Likewise.
4444 * decl2.c (constructor_name_p): Define it.
4445 * init.c (build_member_call): Use constructor_name_p.
4446 * parse.y (template_parm): Use check_template_template_default_arg.
4447 * pt.c (check_explicit_specialization): Use constructor_name_p.
4448 * semantics.c (check_template_template_default_arg): New function.
b6ce26ac 4449
d5372501
KL
44502002-07-08 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
4451
4452 * pt.c (can_complete_type_without_circularity): Add static to
4453 function definition.
4454
594bb0e7
MM
44552002-07-08 Mark Mitchell <mark@codesourcery.com>
4456
4457 * cp-tree.h (have_extern_spec): Declare it
4458 * decl.c (have_extern_spec): Define it.
4459 (start_decl): Eliminate use of used_extern_spec.
4460 (start_function): Likewise.
4461 * parse.y (have_extern_spec): Remove declaration.
4462 (used_extern_spec): Likewise.
4463 (frob_specs): Eliminate use of used_extern_spec.
4464 (.hush_warning): Likewise.
4465
eb8845be
MM
44662002-07-07 Mark Mitchell <mark@codesourcery.com>
4467
4468 * Make-lang.in (cp/parse.o): Depend on decl.h.
4469 * cp-tree.h (do_decl_instantiation): Change prototype.
4470 * parse.y: Include decl.h.
4471 (parse_decl_instantiation): New function.
4472 (explicit_instantiation): Use it.
4473 * pt.c (do_decl_instantiation): Accept a DECL, not a DECLARATOR
4474 and DECLSPECS.
b6ce26ac 4475
78abea27
RS
44762002-07-07 Roger Sayle <roger@eyesopen.com>
4477
4478 * error.c (dump_function_name): Use DECL_TEMPLATE_RESULT for
4479 constructor and destructor tests when passed a TEMPLATE_DECL.
4480
98c07d7b
JM
44812002-07-05 Jason Merrill <jason@redhat.com>
4482
212e17fd
JM
4483 * cvt.c (cp_convert_to_pointer): Call force_fit_type for null
4484 pointers.
4485
98c07d7b
JM
4486 PR optimization/7145
4487 * tree.c (cp_copy_res_decl_for_inlining): Also copy DECL_INITIAL.
4488
c6f553d1
NS
44892002-07-05 Nathan Sidwell <nathan@codesourcery.com>
4490
4491 Repair damage on weak-impared targets caused by my previous patch.
4492 * cp-tree.h (import_export_tinfo): Add parameter.
4493 * decl2.c (import_export_tinfo): Add parameter, post adjust
4494 DECL_COMDAT.
4495 * rtti.c (emit_tinfo_decl): DECL_COMDAT is (nearly) always setup by
4496 import_export_tinfo.
4497
b2153b98
KL
44982002-07-03 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
4499
4500 PR c++/6944
4501 * init.c (build_aggr_init): Remove qualifiers of init before calling
4502 build_vec_init.
4503 (build_vec_init): Flatten multi-dimensional array during cleanup.
4504 (build_vec_delete_1): Abort if the type of each element is array.
4505
492ff760
GS
45062002-07-03 Graham Stott <graham.stott@btinternet.com>
4507
4508 * pt.c (instantiate_class_template): Fix typo.
4509
04c4491d
KL
45102002-07-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
4511
06728f70
KL
4512 * typeck2.c (cxx_incomplete_type_diagnostic): Fix typo caused
4513 by CVS conflict in my last patch.
04c4491d 4514
17f29637
KL
45152002-07-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
4516
4517 PR c++/6716
4518 * pt.c (can_complete_type_without_circularity): New function.
4519 (instantiate_class_template): Use it.
06728f70
KL
4520 * typeck2.c (cxx_incomplete_type_diagnostic): Improve error
4521 message due to incomplete fields.
17f29637 4522
5d69ba1f
MM
45232002-07-01 Mark Mitchell <mark@codesourcery.com>
4524
4525 PR c++/7112
4526 * mangle.c (write_expression): Add mangling for sizeof when
4527 applied to a type.
4528 * operators.def: Remove stale comment.
4529
d689a8f1
NS
45302002-06-30 Nathan Sidwell <nathan@codesourcery.com>
4531
4532 * cp-tree.h (CPTI_TINFO_DECL_TYPE): Replace with ...
4533 (CPTI_TYPE_INFO_PTR_TYPE): ... this.
4534 (tinfo_decl_type): Replace with ...
4535 (type_info_ptr_type): ... this.
4536 (import_export_tinfo): Declare.
4537 (tinfo_decl_p): Rename to ...
4538 (unemitted_tinfo_decl_p): ... this.
4539 * decl2.c (import_export_decl): Break out tinfo handling into ...
4540 (import_export_tinfo): ... here. New function.
4541 (finish_file): Adjust.
4542 * rtti.c (TINFO_REAL_NAME): New macro.
4543 (init_rtti_processing): Create the tinfo types.
4544 (get_tinfo_decl_dynamic): Use type_info_ptr_type, get_tinfo_ptr.
4545 (get_tinfo_decl): Adjust.
4546 (get_tinfo_ptr): New function.
4547 (get_type_id): Use it.
4548 (tinfo_base_init): Create vtable decl here, if it doesn't exist.
4549 (ptr_initializer): Use get_tinfo_ptr.
4550 (ptm_initializer): Likewise.
4551 (synthesize_tinfo_var): Break into ...
4552 (get_pseudo_ti_init): ... this. Just create the initializer.
4553 (get_pseudo_ti_desc): .. and this.
4554 (create_real_tinfo_var): Remove.
4555 (create_pseudo_type_info): Don't create the vtable decl here.
4556 (get_vmi_pseudo_type_info): Remove.
4557 (create_tinfo_types): Adjust.
4558 (tinfo_decl_p): Rename to ...
4559 (unemitted_tinfo_decl_p): ... here. Adjust.
4560 (emit_tinfo_decl): Adjust. Create the initializer.
4561
5ce49b4b
MM
45622002-06-27 Mark Mitchell <mark@codesourcery.com>
4563
4564 PR c++/6695
4565 * pt.c (tsubst_friend_class): Substitute into the context of the
4566 friend before using it.
4567
88e5899c
MM
45682002-06-26 Mark Mitchell <mark@codesourcery.com>
4569
4570 * cp-tree.h (xref_tag): Change prototype.
4571 (handle_class_head): Likewise.
4572 (build_x_component_ref): Likewise.
4573 * decl.c (cxx_init_decl_processing): Adjust call to xref_tag.
4574 (xref_tag): Take attributes as a separate parameter.
4575 (xref_tag_from_type): Adjust call to xref_tag.
4576 * decl2.c (build_expr_from_tree): Adjust call to
4577 build_x_component_ref.
4578 (handle_class_head): Take attributes as a separate parameter.
4579 * parse.y (parse_xref_tag): New function.
4580 (parse_handle_class_head): Likewise.
4581 (primary): Use parse_xref_tag.
4582 (class_head_decl): Use parse_handle_class_head.
4583 (class_head_defn): Likewise.
4584 * rtti.c (init_rtti_processing): Adjust call to xref_tag.
4585 (build_dynamic_cast_1): Likewise.
4586 (create_pseudo_type_info): Likewise.
4587 (emit_support_tinfos): Likewise.
4588 * typeck.c (build_object_ref): Adjust call to
4589 build_x_component_ref.
4590 (build_x_component_ref): Remove protect parameter.
b6ce26ac 4591
da15dae6
MM
45922002-06-25 Mark Mitchell <mark@codesourcery.com>
4593
4594 * call.c (build_op_delete_call): Use BASELINK_FUNCTIONS.
4595 * class.c (handle_using_decl): Likewise.
4596 (instantiate_type): Likewise.
4597 * cp-tree.h (BASELINK_FUNCTIONS): New macro.
4598 (xref_basetypes): Change prototype.
4599 (begin_mem_initializers): New function.
4600 (get_overloaded_fn): Likewise.
4601 * decl.c (xref_basetypes): Simplify.
4602 * error.c (dump_expr): Use BASELINK_FUNCTIONS.
4603 * init.c (build_offset_ref): Likewise.
4604 * parse.y (base_init): Use begin_mem_initializers().
4605 (structsp): Adjust call to xref_basetypes.
4606 * pt.c (determine_specialization): Use BASELINK_FUNCTIONS.
4607 (instantiate_class_template): Adjust call to xref_basetypes.
4608 * semantics.c (begin_mem_initializers): New function.
4609 * tree.c (is_overloaded_fn): Use BASELINK_FUNCTIONS.
4610 (really_overlaoded_fn): Likewise.
4611 (get_overloaded_fn): New function.'
4612 (get_first_fn): USe BASELINK_FUNCTIONS.
b6ce26ac 4613
5f261ba9
MM
46142002-06-24 Mark Mitchell <mark@codesourcery.com>
4615
4616 * cp-tree.h (SCALAR_TYPE_P): New macro.
4617 (check_for_out_of_scope_variable): New function.
4618 (at_class_scope_p): Likewise.
4619 (finish_fname): Likewise.
4620 * class.c (finish_struct): Use at_function_scope_p.
4621 * decl.c (check_for_out_of_scope_variable): New function, split
4622 out from do_identifier.
4623 (finish_enum): Use at_function_scope_p.
4624 * lex.c (do_identifier): Use check_for_out_of_scope_variable.
4625 * parse.y (VAR_FUNC_NAME): Give it <ttype>. Use finish_fname.
4626 (primary): Use at_function_scope_p.
4627 * search.c (at_class_scope_p): New function.
4628 * semantics.c (finish_fname): Likewise.
4629 (check_multiple_declarators): Use at_function_scope_p.
b6ce26ac 4630
80b1331c
MM
46312002-06-23 Mark Mitchell <mark@codesourcery.com>
4632
4633 * parse.y (parse_scoped_id): New function.
4634 (primary): Use it.
4635 * cp-tree.h (do_scoped_id): Adjust declaration.
4636 * lex.c (do_scoped_id): Remove call to yylex.
4637 * decl2.c (build_expr_from_tree): Adjust use of do_scoped_id.
4638 * typeck2.c (add_exception_specifier): Use tree_cons, rather than
4639 expanding it inline.
b6ce26ac 4640
08c7ae5a
MT
46412002-06-23 Matt Thomas <matt@3am-software.com>
4642
4643 * decl.c (finish_function): Change "#ifdef VMS_TARGET" to
4644 "#if VMS_TARGET".
4645
eb6b51b9
KG
46462002-06-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4647
4648 * mangle.c (integer_type_codes): Const-ify.
4649
aa8dea09
RH
46502002-06-20 Richard Henderson <rth@redhat.com>
4651
4652 PR c++/6747
f989ed67
ZW
4653 * typeck.c (mark_addressable): Don't test TREE_ADDRESSABLE early.
4654 Call put_var_into_stack.
aa8dea09 4655
62c71f4b
KG
46562002-06-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4657
4658 * spew.c (remove_last_token): Use ARRAY_SIZE in lieu of explicit
4659 array size calculation.
4660
aa16c0fa
KL
46612002-06-20 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
4662
4663 PR c++/6892
4664 * pt.c (tsubst_expr): Handle FILE_STMT.
4665
342cea95
KL
46662002-06-20 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
4667
4668 PR c++/6723
4669 * pt.c (lookup_template_class): Don't build complete argument of
4670 BOUND_TEMPLATE_TEMPLATE_PARM if appeared as a default template
4671 argument.
4672
84d901be
AD
46732002-06-19 Akim Demaille <akim@epita.fr>
4674
4675 * parse.y (TYPENAME): Rename as tTYPENAME to avoid the clash with
4676 decl.h's TYPENAME.
4677 * spew.c, lex.c: Adjust.
4678 * parse.y (explicit_instantiation): Add empty action to override
4679 the default $$ = $1 where it introduces a type clash.
4680
83b14b88
JM
46812002-06-14 Jason Merrill <jason@redhat.com>
4682
18ba380b
JM
4683 * semantics.c (begin_for_stmt): Push the 'for' scope before
4684 adding the FOR_STMT.
4685
83b14b88
JM
4686 C++ ABI changes.
4687 * class.c (build_base_field): Set DECL_PACKED.
4688 (layout_class_type): Don't use tail padding of PODs.
4689 * mangle.c (write_unqualified_name): Fix template conversion op
4690 mangling.
4691
fd852454
RH
46922002-06-16 Richard Henderson <rth@redhat.com>
4693
4694 PR opt/6793
4695 * tree.c (cp_cannot_inline_tree_fn): Don't short-circuit test
4696 after template instantiation.
4697
750491fc
RH
46982002-06-16 Richard Henderson <rth@redhat.com>
4699
4700 * cp-tree.h, decl2.c (flag_ms_extensions): Move to c-common.
4701
f7d3c5f0
GDR
47022002-06-15 Gabriel Dos Reis <gdr@codesourcery.com>
4703
4704 * cp-tree.h (compiler_error): Remove declaration.
4705 * lex.c (compiler_error): Remove definition.
4706
893a047c
SE
47072002-06-14 Steve Ellcey <sje@cup.hp.com>
4708
4709 * g++spec.c (LIBUNWIND): New.
4710 (lang_specific_driver): Add it if USE_UNWIND_EXCEPTIONS is set.
4711
a6f5e048
RH
47122002-06-13 Jessica Han <jessica@cup.hp.com>
4713
4714 * class.c (build_vtable): Use TARGET_VTABLE_ENTRY_ALIGN.
4715 (build_vtbl_initializer): Honor TARGET_VTABLE_DATA_ENTRY_DISTANCE.
4716 (build_vbase_offset_vtbl_entries): Likewise.
4717 * rtti.c (build_headof): Likewise.
4718 (get_tinfo_decl_dynamic): Likewise.
4719 (create_pseudo_type_info): Likewise.
4720
e4dadd2a
SS
47212002-06-12 Stan Shebs <shebs@apple.com>
4722
4723 * mpw-config.in: Remove file, no longer used.
4724 * mpw-make.sed: Ditto.
4725
09e77dee
ZW
47262002-06-07 Zack Weinberg <zack@codesourcery.com>
4727
4728 * decl2.c: Update call to cpp_handle_option.
4729
4bafaa6f
L
47302002-06-07 H.J. Lu (hjl@gnu.org)
4731
4732 * decl2.c (flag_use_cxa_atexit): Set to DEFAULT_USE_CXA_ATEXIT.
4733
3cb8660c
GDR
47342002-06-06 Gabriel Dos Reis <gdr@codesourcery.com>
4735
4736 * error.c (cp_error_at): Fix typo.
4737
47b69537
GDR
47382002-06-04 Gabriel Dos Reis <gdr@codesourcery.com>
4739
4740 * error.c (cp_diagnostic_starter): Adjust call.
4741 (maybe_print_instantiation_context): Change prototype to take a
4742 'diagnostic_info *'.
4743 (print_instantiation_full_context): Likewise.
4744 (print_instantiation_partial_context): Likewise.
4745 (cp_diagnostic_starter): Likewise.
4746 (cp_diagnostic_finalizer): Likewise.
4747 (cp_print_error_function): Likewise.
4748 (cp_printer): Take a secondary parameter as a 'text_info *'.
4749 Remove output_state savings. Adjust calls.
4750
e2500fed
GK
47512002-06-03 Geoffrey Keating <geoffk@redhat.com>
4752
4753 * pt.c (inline_parm_levels): Mark for GC.
4754
4755 * mangle.c (start_mangling): Allocate G.substitutions here...
4756 (init_mangle): ... rather than here.
4757 (finish_mangling): Clear the varray pointer when done with it.
84d901be
AD
4758 * spew.c (yylexstring): Don't use VARRAY_FREE.
4759 * search.c (bfs_walk): Don't use VARRAY_FREE.
e2500fed
GK
4760 * decl2.c (pending_statics): Use gengtype to mark.
4761 (deferred_fns): Likewise.
4762 (ssdf_decls): Likewise.
4763 (init_decl2): Delete.
4764 * decl.c (pop_from_top_level): Don't use VARRAY_FREE.
4765 (cxx_init_decl_processing): Don't call init_decl2.
4766 (cxx_pop_function_context): Don't use VARRAY_FREE.
4767 * cp-tree.h (struct saved_scope): No need for special marking
4768 of varrays.
4769 (struct language_function): Likewise.
4770 (local_classes): Use gengtype to mark.
4771 (init_decl2): Delete prototype.
4772 * class.c (init_class_processing): Don't use
4773 ggc_add_tree_varray_root.
4774 (build_vtbl_initializer): Don't use VARRAY_FREE.
4775
4776 * decl.c (typename_compare): Don't use same_type_p.
4777
4778 * decl.c: Include hashtab.h instead of hash.h.
4779 (typename_hash): Update to use htab_h.
4780 (typename_compare): Likewise.
4781 (typename_htab): Use gengtype to mark.
4782 (build_typename_type): Update to use htab_h.
4783 * Make-lang.in (cp/decl.o): Use HASHTAB_H instead of hash.h.
4784
4785 * Make-lang.in (gt-cp-tree.h): New rule.
4786 (cp/tree.o): Depend on gt-cp-tree.h.
4787 * config-lang.in (gtfiles): Add cp/tree.c.
4788 * tree.c: Include gt-cp-tree.h.
4789 (list_hash_table): Use gengtype to mark.
4790 (init_tree): Use gengtype to mark trees.
4791
4792 * Make-lang.in (cp/decl.o): Add debug.h dependency.
4793 * call.c (struct z_candidate): Use gengtype.
4794 (USER_CONV_CAND): Use WRAPPER_ZC.
4795 (convert_class_to_reference): Use build_zc_wrapper.
4796 (build_type_conversion_1): Likewise.
4797 (build_over_call): Use WRAPPER_ZC.
4798 (add_warning): Use build_zc_wrapper.
4799 * cp-lang.c (LANG_HOOKS_MARK_TREE): Delete.
4800 * cp-tree.h (struct lang_identifier): Use gengtype.
4801 (struct template_parm_index_s): Likewise.
4802 (struct ptrmem_cst): Likewise.
4803 (struct tree_binding): Likewise.
4804 (struct tree_overload): Likewise.
4805 (struct tree_srcloc): Likewise.
4806 (struct tree_wrapper): Likewise. Also modify to have a pointer
4807 to struct z_candidate rather than void.
4808 (enum cp_tree_node_structure_enum): New.
4809 (union lang_tree_node): New.
4810 (cxx_mark_tree): Delete prototype.
4811 (cp_tree_node_structure): New prototype.
4812 (build_ptr_wrapper): Delete prototype.
4813 (build_int_wrapper): Delete prototype.
4814 (build_zc_wrapper): New prototype.
4815 * decl.c: Include debug.h
4816 (cxx_mark_tree): Delete.
4817 (cp_tree_node_structure): New.
4818 * tree.c (build_ptr_wrapper): Delete.
4819 (build_int_wrapper): Delete.
4820 (build_zc_wrapper): New.
4821
4822 * cp-tree.h [! ENABLE_TREE_CHECKING] (LANG_TYPE_PTRMEM_CHECK):
4823 Correct typo. Patch from k_fukui@highway.ne.jp.
4824
4825 * semantics.c (current_stmt_tree): Update for change to
4826 struct language_function.
4827 (finish_mem_initializers): Likewise.
4828 * decl.c (cxx_init_decl_processing): Don't set mark_lang_status.
4829 * cp-tree.h (struct language_function): Rename from
4830 cp_language_function. Change all uses.
4831 (cp_function_chain): Don't need to cast.
4832
4833 * class.c (duplicate_tag_error): Reset discriminator.
4834 (check_bases_and_members): Update for data structure changes.
4835 * cp-tree.h (struct lang_id2): Use gengtype.
4836 (flagged_type_tree): Likewise.
4837 (SET_LANG_ID): Use GGC on struct lang_id2.
4838 (struct cp_language_function): Use gengtype. Remove field
4839 'x_vcalls_possible_p'.
4840 (current_vcalls_possible_p): Delete.
4841 (struct lang_type_header): New.
4842 (struct lang_type_class): Rename from struct lang_type. Include
4843 struct lang_type_header.
4844 (struct lang_type_ptrmem): New.
4845 (struct lang_type): New.
4846 (LANG_TYPE_CLASS_CHECK): New. Use it in all the appropriate macros.
4847 (LANG_TYPE_PTRMEM_CHECK): New. Use it in all the appropriate macros.
4848 (TYPE_SET_PTRMEMFUNC_TYPE): Set discriminator, update for changes.
4849 (struct lang_decl_flags): Use gengtype. Add discriminators.
4850 (struct lang_decl): Use gengtype. Add and use discriminators.
4851 Update the macros that reference moved fields.
4852 (LANG_DECL_U2_CHECK): New function. Use it when appropriate.
4853 (SET_DECL_THUNK_P): Set discriminator too.
4854 (clear_inline_text_obstack): Delete prototype.
4855 (finish_inline_definitions): Delete prototype.
4856 (mark_pending_inlines): Delete prototype.
4857 (lang_check_failed): New prototype.
4858 * decl.c (struct named_label_use_list): Use gengtype.
4859 (struct named_label_list): Likewise.
4860 (mark_binding_level): Delete.
4861 (mark_named_label_lists): Delete.
4862 (push_local_name): Set discriminator on DECL_LANG_SPECIFIC.
4863 (cxx_init_decl_processing): Use generated marker routine.
4864 (begin_destructor_body): Delete dead set to
4865 current_vcalls_possible_p.
4866 (mark_lang_function): Delete.
4867 (mark_cp_function_context): Delete.
4868 (lang_mark_tree): Use generated marker routines.
4869 * decl2.c (start_objects): Set discriminator when setting
4870 GLOBAL_INIT_PRIORITY.
4871 * lex.c (retrofit_lang_decl): Set discriminators.
4872 (copy_lang_type): Update for changes to lang_type structure.
4873 (cp_make_lang_type): Set discriminator.
4874 * parse.y: Use gengtype on YYLVAL. Don't use dots in identifiers.
4875 * search.c: Include ggc.h.
4876 * semantics.c (anon_aggr_type_p): Use the macro, don't hand-code it.
4877 (finish_inline_definitions): Delete.
4878 * spew.c (struct token): Use gengtype.
4879 (struct token_chunk): New.
4880 (struct unparsed_text): Use gengtype. Store tokens in chunks.
4881 (struct feed): Use gengtype.
4882 (feed_obstack): Delete.
4883 (feed): Mark as GC root.
4884 (pending_inlines): Mark as GC root.
4885 (pending_inlines_tail): Likewise.
4886 (processing_these_inlines): Likewise.
4887 (token_obstack): Make static.
4888 (first_token): Likewise.
d30d6e7a 4889 (init_spew): Don't initialize deleted things; use gengtype for roots.
e2500fed
GK
4890 (clear_inline_text_obstack): Delete.
4891 (feed_input): Use GC for struct feed. Update for changes to
4892 struct unparsed_text.
4893 (mark_pending_inlines): Delete.
4894 (next_token): Rename from add_token. Change all callers. Update
4895 for changes to struct unparsed_text.
4896 (space_for_token): New.
4897 (remove_last_token): New.
4898 (alloc_unparsed_text): New.
4899 (snarf_block): Take an unparsed_text. Update for changes to struct
4900 unparsed_text.
4901 (snarf_method): Update for changes to struct unparsed_text.
4902 (snarf_defarg): Update for changes to struct unparsed_text.
4903 * tree.c (lang_check_failed): New.
4904
4905 * Make-lang.in (gt-cp-call.h gt-cp-decl2.h gt-cp-parse.h
4906 gt-cp-pt.h gt-cp-repo.h gt-cp-spew.h): New rules.
4907 (cp/spew.o): Add dependency on gt-<filename>.h.
4908 (cp/decl2.o): Add dependency on gt-<filename>.h.
4909 (cp/call.o): Add dependency on gt-<filename>.h.
4910 (cp/pt.o): Add dependency on gt-<filename>.h.
4911 (cp/repo.o): Add dependency on gt-<filename>.h.
4912 (cp/parse.o): Add dependency on gt-<filename>.h.
4913 * call.c: Use gengtype for roots.
4914 * config-lang.in (gtfiles): Add cp-tree.h decl.h lex.h call.c
4915 decl2.c parse.y pt.c repo.c spew.c.
4916 * cp-tree.h: Use gengtype for roots.
4917 (struct saved_scope): Use GGC, gengtype.
4918 (cp_parse_init): Delete prototype.
4919 (init_pt): Delete prototype.
4920 * decl.c: Use gengtype for roots.
4921 (mark_saved_scope): Delete.
4922 (cxx_init_decl_processing): Don't call deleted initilisation
4923 routines.
4924 (signed_size_zero_node): Delete, unused.
4925 * decl.h: Use gengtype for roots.
4926 * decl2.c: Use gengtype for roots.
4927 * lex.h: Use gengtype for roots.
4928 * parse.y: Use gengtype for roots.
4929 (cp_parse_init): Delete.
4930 * pt.c: Use gengtype for roots.
4931 (init_pt): Delete.
4932 * repo.c: Use gengtype for roots.
4933 * spew.c: Use gengtype for roots.
4934
4935 * Make-lang.in: Allow for filename changes. Add gtype-cp.h.
4936 (cp/decl.o): Add dependency on gtype-cp.h.
4937 * decl.c: Remove use of add_deletable_root, use GTY marker instead.
4938 Include gtype-cp.h. Allow for filename changes.
4939
4940 * Make-lang.in (cp/gt-decl.h): Generate using gengtype.
4941 (cp/decl.o): Add cp/gt-decl.h dependency.
4942 * config-lang.in (gtfiles): New.
4943 * tree.h: Rename struct binding_level to struct cp_binding_level.
4944 * decl.c: Rename struct binding_level to struct cp_binding_level.
4945 Include cp/gt-decl.h.
4946 (struct cp_binding_level): Use gengtype.
4947 (make_binding_level): Use GGC on struct cp_binding_level.
4948 (mark_binding_level): Use gt_ggc_m_cp_binding_level.
4949 (cxx_init_decl_processing): Mark free_binding_level as
4950 deletable.
4951
4952 * decl.c (mark_cp_function_context): Update calling sequence.
4953
4954 * decl.c (start_function): Don't free 'struct
4955 cp_language_function'.
4956 (pop_cp_function_context): Likewise.
4957 (save_function_data): Allocate it using GC.
4958 * semantics.c (genrtl_start_function): Don't free 'struct
4959 cp_language_function'.
4960
8b968bd1
MW
49612002-05-31 Matthew Woodcraft <mattheww@chiark.greenend.org.uk>
4962
4963 * lang-specs.h: Use cpp_debug_options.
4964
11ad4784
ZW
49652002-05-28 Zack Weinberg <zack@codesourcery.com>
4966
4967 * mangle.c, tree.c: Include real.h.
4968 * Make-lang.in: Update dependency lists.
4969
81a75f0f
NB
49702002-05-25 Neil Booth <neil@daikokuya.demon.co.uk>
4971
4972 * lex.c: Don't include c-lex.h.
4973 * parse.y, spew.c: Don't include c-lex.h; include c-pragma.h.
4974
a97d1398
NB
49752002-05-23 Neil Booth <neil@daikokuya.demon.co.uk>
4976
4977 * spew.c (yyungetc, snarf_block): Remove indent_level handling.
4978
6f001fdf
RH
49792002-05-22 Richard Henderson <rth@redhat.com>
4980
4981 * decl.c (obscure_complex_init): Check for VAR_DECL
4982 before using DECL_THREAD_LOCAL.
4983
7a1f3f5f
RH
49842002-05-22 Richard Henderson <rth@redhat.com>
4985
4986 * decl.c (check_tag_decl): Handle RID_THREAD.
4987 (obscure_complex_init): Reject run-time init of tls.
4988 (grokvardecl, grokdeclarator): Handle RID_THREAD.
4989 * lex.c (reswords): Add __thread.
4990 (rid_to_yy): Map RID_THREAD to SCSPEC.
4991
e5f3b786
NB
49922002-05-22 Neil Booth <neil@daikokuya.demon.co.uk>
4993
4994 * cp-lang.c (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
4995 * cp-tree.h (cxx_post_options): Kill.
4996 * cp-lex.c (cxx_post_options): Kill.
4997
3d78f2e9
RH
49982002-05-21 Richard Henderson <rth@redhat.com>
4999
5000 * lex.c (rid_to_yy): Add RID_THREAD.
5001
c8a3d889
AO
50022002-05-21 Alexandre Oliva <aoliva@redhat.com>
5003
5004 * init.c (build_vec_init): Test for trivial copy-assignment when
5005 copy-assigning arrays.
5006
500abaa8
AJ
50072002-05-20 Andreas Jaeger <aj@suse.de>
5008
5009 * init.c (build_default_init): Remove unused variable.
5010
ecc42c14
AO
50112002-05-20 Alexandre Oliva <aoliva@redhat.com>
5012
5013 * call.c (any_strictly_viable): New.
5014 (build_new_op): Use it for COMPOUND_EXPR and ADDR_EXPRs.
5015
4e664ef1
KL
50162002-05-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
5017
5018 * error.c (dump_type) [TYPEOF_TYPE]: Fix parenthesis printing.
5019
07782718
KL
50202002-05-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
5021
5022 PR c++/186, DR 259
5023 * pt.c (do_decl_instantiation): Don't complain explicit
5024 instantiation after explicit specialization.
5025 (do_type_instantiation): Likewise.
5026
23b4deba
AO
50272002-05-19 Alexandre Oliva <aoliva@redhat.com>
5028
5029 * cp-tree.h (complete_type_or_diagnostic): Changed prototype,
5030 renamed from...
5031 (complete_type_or_else): ... this. Redefined as macro.
5032 (cxx_incomplete_type_diagnostic): Declare.
5033 (cxx_incomplete_type_error): Define as macro.
5034 * init.c (build_delete): Warn about incomplete types other than
5035 void, and use the built-in operator delete for them.
5036 * typeck.c (complete_type_or_diagnostic): Renamed from
5037 complete_type_or_else. Added warn_only argument, passed to...
5038 * typeck2.c (cxx_incomplete_type_diagnostic): ... this. Print
5039 warnings or errors depending on new warn_only argument. Renamed
5040 from...
5041 (cxx_incomplete_type_error): ... this. New implementation in
5042 terms of cxx_incomplete_type_diagnostic.
5043
b41d214e
JM
50442002-05-18 Jason Merrill <jason@redhat.com>
5045
98c07d7b 5046 PR c++/6611
b41d214e
JM
5047 * decl2.c (import_export_decl): If we clear
5048 DECL_NOT_REALLY_EXTERN, make sure DECL_EXTERNAL is set.
5049
e2005c8d
KL
50502002-05-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
5051
5052 PR c++/6620
5053 * pt.c (verify_class_unification): Don't check if PARM is template
5054 parameter dependent. Simplify.
5055 (unify) [TEMPLATE_PARM_INDEX]: Handle when ARG is a template
5056 parameter dependent expression.
5057
ff48be5c
JM
50582002-05-14 Jason Merrill <jason@redhat.com>
5059
5060 * rtti.c (get_tinfo_decl): Don't call comdat_linkage.
5061 Do set DECL_COMDAT.
5062 (synthesize_tinfo_var): Take the public decl.
5063 (create_real_tinfo_var): Likewise. Check DECL_COMDAT.
5064 (emit_tinfo_decl): Adjust. Call import_export_decl.
5065 * decl2.c (import_export_decl): Simplify tinfo decl handling.
5066
94e6e4c4
AO
50672002-05-14 Alexandre Oliva <aoliva@redhat.com>
5068
5069 * cp-tree.h (struct lang_type): Added non_zero_init.
0fe1cd70 5070 (CLASSTYPE_NON_ZERO_INIT_P): New macro.
94e6e4c4
AO
5071 (zero_init_p, force_store_init_value, build_forced_zero_init): Declare.
5072 * class.c (check_field_decls): Test non_zero_init.
5073 * cvt.c (convert_to_pointer_force): Use cp_convert_to_pointer for
5074 zero-to-NULL conversions.
5075 * decl.c (obscure_complex_init): Don't reset DECL_INITIAL of a
5076 type that needs zero-initialization without zeros.
5077 (check_initializer_decl): Compute zero-initializer for types
5078 that require a non-trivial one.
5079 * init.c (build_forced_zero_init): New function.
5080 (build_default_init): Use it.
5081 * tree.c (zero_init_p): New function.
5082 * typeck2.c (force_store_init_value): New function.
5083 (process_init_constructor): Create non-trivial zero-initializers
5084 for array members and class fields.
5085
e5f5feea
NB
50862002-05-14 Neil Booth <neil@daikokuya.demon.co.uk>
5087
5088 * lang-specs.h: Remove redundant -lang-c++.
5089
f63ab951
JM
50902002-05-13 Jason Merrill <jason@redhat.com>
5091
5092 * class.c (build_vtbl_ref_1): Use fixed_type_or_null.
5093 (fixed_type_or_null): See through reference vars.
5094 (build_base_path): Vtable contents are constant.
5095 * typeck.c (get_member_function_from_ptrfunc): Likewise.
5096
0d08ea48
JM
50972002-05-12 Jason Merrill <jason@redhat.com>
5098
5099 * cp-lang.c (ok_to_generate_alias_set_for_type): Backend-created
5100 structs are safe.
5101
3df89291
NB
51022002-05-09 Neil Booth <neil@daikokuya.demon.co.uk>
5103
5104 * cp-tree.h (flag_ansi): Remove.
5105 * decl2.c (flag_ansi): Remove.
5106 (cxx_decode_option): Set flag_iso and flag_undef.
5107
c87978aa
JM
51082002-05-09 Jason Merrill <jason@redhat.com>
5109
5110 * typeck.c (get_member_function_from_ptrfunc): Reorganize.
5111 Use subtraction rather than a bitmask to get the index.
5112 * cvt.c (cp_convert_to_pointer): Bail on an error_mark_node.
5113
5114 * pt.c (tsubst_expr) [ASM_STMT]: Copy ASM_INPUT_P.
5115
a5a49440
NB
51162002-05-07 Neil Booth <neil@daikokuya.demon.co.uk>
5117
5118 * Make-lang.in (decl2.o): Update.
5119 * cp-tree.h (warn_multichar): Remove.
5120 * decl2.c: Include c-common.h.
5121 (warn_multichar): Remove.
5122
609688f3
JM
51232002-05-03 Jason Merrill <jason@redhat.com>
5124
0abc082a
JM
5125 * tree.c (build_cplus_array_type): Only const and volatile get
5126 special handling.
5127
609688f3
JM
5128 * decl.c (BOOL_TYPE_SIZE): Move default to defaults.h.
5129
8b16faa2
MM
51302002-04-30 Mark Mitchell <mark@codesourcery.com>
5131
394ab947 5132 ABI change, returning simple classes from functions.
8b16faa2
MM
5133 * class.c (finish_struct_bits): Only mark TREE_ADDRESSABLE if
5134 TYPE_HAS_TRIVIAL_INIT_REF is false or
5135 TYPE_HAS_NONTRIVIAL_DESTRUCTOR is true.
5136
ac905924
JM
51372002-04-30 Jason Merrill <jason@redhat.com>
5138
2cb008af 5139 PR debug/6436
ac905924
JM
5140 * decl.c (grokdeclarator): Don't override TYPE_NAME of an
5141 anonymous class with a typedef if there are attributes.
5142
e6e81f1c 51432002-04-29 Paul Eggert <eggert@twinsun.com>
b819d9e0 5144
e6e81f1c 5145 * parse.y (nomods_initdcl0): Replace $<ttype>3 with $<ttype>$.
b819d9e0 5146
3a73bffb
JJ
51472002-04-29 Jakub Jelinek <jakub@redhat.com>
5148
5149 PR c++/6477
5150 * decl.c (follow_tag_typedef): Check if TYPE_NAME (original) is
5151 non-NULL first.
5152
33dd07ee
MM
51532002-04-29 Mark Mitchell <mark@codesourcery.com>
5154
5155 PR c++/6492
5156 * pt.c (tsubst_friend_class): If the friend has an explicit scope,
5157 enter that scope before name lookup.
5158
5159 PR c++/6486
5160 * method.c (do_build_copy_constructor): Avoid building
5161 cv-qualified reference types.
500abaa8 5162
4bd7c270
NS
51632002-04-29 Nathan Sidwell <nathan@codesourcery.com>
5164
5165 PR c++/5719
500abaa8 5166 * decl.c (grok_op_properties): Assignment ops don't have to return
4bd7c270
NS
5167 by value. operator% should.
5168
45806a3f
FS
51692002-04-28 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
5170
5171 PR c/6343
5172 * decl.c (duplicate_decls): Call merge_weak.
5173
94a50397
RH
51742002-04-26 Richard Henderson <rth@redhat.com>
5175
5176 * parse.y (malloced_yyss, malloced_yyvs): New.
5177 (yyoverflow): Re-add. Set them.
5178 (free_parser_stacks): New.
5179
7d793e9b
MM
51802002-04-26 Mark Mitchell <mark@codesourcery.com>
5181
5182 PR c++/6497
5183 * method.c (do_build_assign_ref): Pass a derivation to
5184 build_method_call when calling base class assignment operators.
5185
bde3c0c0
RH
51862002-04-26 Richard Henderson <rth@redhat.com>
5187
5188 * parse.y (yyoverflow): Revert.
5189
b84a3874
RH
51902002-04-26 Richard Henderson <rth@redhat.com>
5191
5192 PR c/3581
5193 * parse.y (string): Remove. Update all uses to use STRING
5194 instead, and not call combine_strings.
5195 * rtti.c (tinfo_name): Use fix_string_type.
5196 * semantics.c (finish_asm_stmt): Don't call combine_strings.
5197 * spew.c (yylexstring): New.
5198 (read_token): Use it.
5199
6052bef0
RH
52002002-04-25 Richard Henderson <rth@redhat.com>
5201
5202 PR c/2161
5203 * parse.y (yyoverflow): New.
5204
8d1f0f67
JM
52052002-04-25 Jason Merrill <jason@redhat.com>
5206
5207 PR c++/5607
5208 * search.c (check_final_overrider): No longer static.
5209 * class.c (update_vtable_entry_for_fn): Call it.
5210 * cp-tree.h: Adjust.
5211
ff45c01e
NB
52122002-04-25 Neil Booth <neil@daikokuya.demon.co.uk>
5213
5214 * cp-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
5215 * cp-tree.h (cxx_set_yydebug): Die.
5216 * lex.c (YYDEBUG): Get from c-lex.h.
5217 (cxx_set_yydebug): Remove.
5218 * parse.y: Include c-lex.h.
5219 (YYDEBUG): Get from c-lex.h.
5220
a62d375f
MM
52212002-04-24 Mark Mitchell <mark@codesourcery.com>
5222
5223 PR c++/6438.
5224 * cvt.c (convert_to_void): Don't unconditionally make COND_EXPRs
5225 void.
5226
349ae713
NB
52272002-04-24 Neil Booth <neil@daikokuya.demon.co.uk>
5228
5229 * cp-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
5230 LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE, LANG_HOOKS_ATTRIBUTE_TABLE):
5231 Redefine.
5232 * cp-tree.h (cp_attribute_table): Rename.
5233 * decl.c (lang_attribute_table): Remove declaration.
5234 (cxx_init_decl_processing): Don't set it.
5235 * tree.c (cp_attribute_table): Rename.
5236
b602511f
JM
52372002-04-24 Jason Merrill <jason@redhat.com>
5238
985723ce
JM
5239 PR c++/6331
5240 * method.c (do_build_copy_constructor): Use cp_build_qualified_type.
5241 * typeck.c (build_modify_expr): Allow arrays to differ in cv-quals.
a49cfba8
JM
5242 The pedwarn for array assignment is now unconditional.
5243 * tree.c (build_cplus_array_type_1): Still process simple array types
5244 normally in templates.
985723ce 5245
b602511f
JM
5246 PR c++/6395
5247 * decl.c (make_rtl_for_nonlocal_decl): Don't mess with #pragma i/i
5248 stuff for comdats.
5249
29cece2e
JJ
52502002-04-23 Jakub Jelinek <jakub@redhat.com>
5251
5252 * parse.y (check_class_key): Allow KEY to be union/enum/struct/class
5253 node with attributes.
5254
515387dc
DB
52552002-2-23 David O'Brien <obrien@FreeBSD.org>
5256
5257 * g++spec.c (MATH_LIBRARY_PROFILE, LIBSTDCXX_PROFILE): Add.
5258 Use MATH_LIBRARY_PROFILE and LIBSTDCXX_PROFILE if profile flag given.
5259
77adef84
MM
52602002-04-23 Mark Mitchell <mark@codesourcery.com>
5261
5262 PR c++/6256:
5263 * pt.c (tsubst_friend_class): Handle templates with explicit
5264 nested names.
5265
5266 PR c++/6331:
5267 * typeck.c (merge_types): Remember the cv-qualification of pointer
5268 types when merging them.
5269
b03e38e1
NB
52702002-04-20 Neil Booth <neil@daikokuya.demon.co.uk>
5271
5272 * cp-lang.c (LANG_HOOKS_FUNCTION_INIT,
5273 LANG_HOOKS_FUNCTION_FREE, LANG_HOOKS_FUNCTION_MARK): Redefine.
5274 * cp-tree.h (cxx_push_function_context, cxx_pop_function_context,
5275 cxx_mark_function_context): New.
5276 * decl.c (push_cp_function_context, pop_cp_function_context,
5277 mark_cp_function_context): Rename for consistency.
5278 (cxx_init_decl_processing): Don't set old hooks.
5279
ab393bf1
NB
52802002-04-19 Neil Booth <neil@daikokuya.demon.co.uk>
5281
5282 * call.c (convert_type_from_ellipsis): Rename, update.
5283 * cp-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine.
5284 * cp-tree.h (convert_type_from_ellipsis): Rename.
5285 * decl.c (cxx_init_decl_processing): Don't set hook.
5286
7a228918
NB
52872002-04-18 Neil Booth <neil@daikokuya.demon.co.uk>
5288
5289 * call.c (build_new_method_call): Update.
5290 * cp-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
5291 * cp-tree.h (cxx_incomplete_type_error): New.
5292 * decl.c (grokdeclarator, grokparms): Update.
5293 * decl2.c (check_classfn): Update.
5294 * pt.c (tsubst): Update.
5295 * typeck.c (complete_type_or_else, expr_sizeof,
5296 decay_conversion): Update.
5297 * typeck2.c (incomplete_type_error): Rename.
5298 (add_exception_specifier): Update.
5299
8152c320
JM
53002002-04-18 Jason Merrill <jason@redhat.com>
5301
5302 PR c++/5658
5303 * search.c (setup_class_bindings): A class template qualifies as a
5304 type binding.
5305
32121b96
JJ
53062002-04-17 Jakub Jelinek <jakub@redhat.com>
5307
5308 PR c++/6316
5309 * decl2.c (finish_file): Clear DECL_EXTERNAL in a separate loop
5310 before expanding.
5311
b2123dc0
MM
53122002-04-16 Mark Mitchell <mark@codesourcery.com>
5313
5314 * init.c (begin_init_stmts): Remove commented out code.
5315 (finish_init_stmts): Set STMT_EXPR_NO_SCOPE.
5316 * semantics.c (begin_gobal_stmt_expr): Adjust call to
5317 expand_start_stmt_expr.
500abaa8 5318
0f268005
MM
53192002-04-15 Mark Mitchell <mark@codesourcery.com>
5320
5321 * decl.c (register_dtor_fn): Pass the address of dso_handle, not
5322 dso_handle itself, to __cxa_atexit.
5323
bd6bec6b
GDR
53242002-04-15 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
5325
5326 * error.c (cxx_print_error_function): Adjust call to macros.
5327
0f490a2b
JJ
53282002-04-14 Jakub Jelinek <jakub@redhat.com>
5329
5330 * class.c (layout_virtual_bases): Do all dsize computation on trees.
5331
85b7def6
JM
53322002-04-14 Jason Merrill <jason@redhat.com>
5333
5334 * typeck.c (get_member_function_from_ptrfunc): Don't do
5335 gratuitious division and multiplication on
5336 ptrmemfunc_vbit_in_delta targets.
5337
0481bc21
MM
53382002-04-12 Mark Mitchell <mark@codesourcery.com>
5339
5340 PR c++/5373.
5341 * semantics.c (finish_expr_stmt): Remember the type of the
5342 expression before any conversions are performed.
5343
9928a3d5
MM
53442002-04-12 Mark Mitchell <mark@codesourcery.com>
5345
5346 PR c++/5189.
5347 * call.c (add_template_candidate_real): Do not treat member
5348 templates as copy constructors.
5349
c740732f
MM
53502002-04-12 Mark Mitchell <mark@codesourcery.com>
5351
5352 * decl.c (duplicate_decls): Do not copy the RTL for a variable
5353 declaration if the old variable had an incomplete type and the new
5354 variable does not.
5355 (complete_vars): Do not call layout_decl for completed variables.
5356
4782bd5b
RS
53572002-04-12 Richard Sandiford <rsandifo@redhat.com>
5358
5359 * decl.c (duplicate_decls): Don't try to unify an implicit typedef
5360 with an explicit one.
5361 (follow_tag_typedef): New.
5362 (lookup_tag): Use it to extract the tag of an explicit typedef.
5363 (xref_tag): Likewise.
5364
2f4d058f
AH
53652002-04-11 Andrew Haley <aph@redhat.com>
5366
5367 * typeck.c (type_after_usual_arithmetic_conversions):
5368 If two types have the same variant, return immediately.
500abaa8 5369 When two floating-point operands are the same precision:
2f4d058f
AH
5370 convert to float if one of the operands is float;
5371 if neither operand is one of the standard types, return the type
5372 of the first operand.
500abaa8 5373
ba3307c0
NS
53742002-04-10 Nathan Sidwell <nathan@codesourcery.com>
5375
5376 PR c++/5507
5377 * decl.c (make_typename_type): Remove implicit typenameness.
5378
cd6af0c1
JM
53792002-04-09 Jason Merrill <jason@redhat.com>
5380
edf5cd1d
JM
5381 PR optimization/6189
5382 * semantics.c (genrtl_start_function): Don't free
5383 DECL_SAVED_FUNCTION_DATA for inline functions.
5384
cd6af0c1
JM
5385 * init.c (build_member_call): For now, don't convert to
5386 intermediate base if it would cause an error.
5387
224e6091
PC
53882002-04-08 Paolo Carlini <pcarlini@unitus.it>
5389
5390 * parse.y (namespace_qualifier, maybe_identifier,
5391 begin_explicit_instantiation, end_explicit_instantiation,
5392 apparent_template_type, .finish_template_type,
5393 do_id, maybe_init, defarg_again, component_decl_1):
5394 Add ending ';', in accordance with POSIX.
5395
0154eaa8
MM
53962002-04-06 Mark Mitchell <mark@codesourcery.com>
5397
5398 PR c++/5571
5399 * class.c (layout_class_type): Remember incomplete static
5400 variables.
5401 (finish_struct_1): Call complete_vars, not
5402 hack_incomplete_structures.
5403 * cp-tree.h (hack_incomplete_structures): Rename to ...
5404 (complete_vars): ... this.
5405 (struct saved_scope): Remove incomplete.
5406 (namespace_scope_incomplete): Remove.
5407 * decl.c (struct binding_level): Remove incomplete.
5408 (incomplete_vars): New variable.
5409 (mark_binding_level): Don't mark incomplete.
5410 (print_binding_level): Don't print it.
5411 (mark_saved_scope): Don't mark incomplete.
5412 (pushdecl): Use maybe_register_incopmlete_var.
5413 (cxx_init_decl_processing): Register incomplete_vars for GC.
5414 (start_decl_1): Clarify error message.
5415 (hack_incomplete_vars): Remove.
5416 (maybe_register_incomplete_var): New function.
5417 (complete_vars): Likewise.
5418
f62ea157
JM
54192002-04-06 Jason Merrill <jason@redhat.com>
5420
03da5286
JM
5421 PR c++/4934
5422 * error.c (dump_expr) [CONVERT_EXPR]: Make sure TREE_TYPE (t) is
5423 set before checking it.
5424
a29e1034
JM
5425 PR c++/525
5426 * init.c (build_member_call): Use build_scoped_ref.
5427 (resolve_offset_ref): Likewise.
5428 * call.c (build_scoped_method_call): Likewise.
500abaa8 5429 * tree.c (maybe_dummy_object): Kludge around current_class_type being
a29e1034
JM
5430 wrong.
5431 * typeck2.c (build_scoped_ref): Return the binfo via binfo_p parm.
5432 * cp-tree.h: Adjust.
500abaa8 5433
a29e1034
JM
5434 * init.c (push_base_cleanups): Just use build_scoped_method_call.
5435
f62ea157 5436 PR c++/6179
500abaa8 5437 * method.c (implicitly_declare_fn): Pass unqualified type to
f62ea157
JM
5438 synthesize_exception_spec.
5439
78ef5b89
NB
54402002-04-04 Neil Booth <neil@daikokuya.demon.co.uk>
5441
5442 * cp-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
5443 * cvt.c: Update comment.
5444 * init.c (expand_cleanup_for_base): Update.
5445 * semantics.c (finish_parenthesized_expr): Update.
5446 * typeck.c (cp_truthvalue_conversion): Update.
5447
dffa4176
JM
54482002-04-04 Jason Merrill <jason@redhat.com>
5449
659e5a7a
JM
5450 * semantics.c (finish_eh_cleanup): New fn.
5451 * cp-tree.h: Add prototype.
500abaa8 5452 * init.c (perform_member_init, expand_cleanup_for_base): Use
659e5a7a
JM
5453 finish_eh_cleanup.
5454 * cp-tree.def (SUBOBJECT, CTOR_STMT): Remove.
5455 * cp-tree.h: Remove references.
5456 * decl.c (begin_constructor_body, end_constructor_body): Likewise.
5457 * dump.c (cp_dump_tree): Likewise.
5458 * pt.c (tsubst_expr): Likewise.
5459 * semantics.c (genrtl_ctor_stmt, genrtl_subobject): Remove.
5460 (cp_expand_stmt): Remove handling of CTOR_STMT and SUBOBJECT.
5461 * tree.c (cp_statement_code_p): Likewise.
5462
5463 * init.c (build_new_1): Set CLEANUP_EH_ONLY on deleting cleanup.
5464
5465 PR c++/5636
5466 * semantics.c (nullify_returns_r): Just set CLEANUP_EH_ONLY on
5467 cleanup for nrv.
5468
dffa4176
JM
5469 PR c++/5104
5470 * typeck.c (comptypes) [FUNCTION_TYPE]: Don't compare exception
5471 specifiers.
5472 [METHOD_TYPE]: Use same code as FUNCTION_TYPE.
5473
ef4f94ac
RH
54742002-04-03 Richard Henderson <rth@redhat.com>
5475
5476 * cp-lang.c (cxx_warn_unused_global_decl): New.
5477 (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
5478
599bba86
NB
54792002-04-03 Neil Booth <neil@daikokuya.demon.co.uk>
5480
5481 * cp-lang.c (LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): Redefine.
5482 * tree.c (init_tree): Don't set hook.
5483
cba2004a
RS
54842002-04-03 Roger Sayle <roger@eyesopen.com>
5485
5486 PR c++/5998:
5487 * decl.c (duplicate_decls): Don't mess with assembler names when
5488 redeclaring builtin functions as static.
5489
dffd7eb6
NB
54902002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
5491
5492 * call.c (build_addr_func): Update.
5493 * class.c (resolve_address_of_overloaded_function): Update.
5494 * cp-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
5495 * cp-tree.h (cxx_mark_addressable): New.
5496 * decl.c (register_dtor_fn, cxx_maybe_build_cleanup): Update.
5497 * decl2.c (build_cleanup): Update.
5498 * except.c (build_throw): Update.
5499 * init.c (resolve_offset_ref): Update.
5500 * pt.c (convert_nontype_argument): Update.
5501 * semantics.c (finish_asm_stmt, simplify_affr_init_exprs_r): Update.
5502 * typeck.c (decay_conversion, build_array_ref, build_unary_op,
5503 unary_complex_lvalue): Update.
5504 (mark_addressable): Rename.
5505
04a9d080
RS
55062002-04-01 Roger Sayle <roger@eyesopen.com>
5507
5508 PR c++/5998:
5509 * decl.c (duplicate_decls): Overwrite the RTL when (and only
5510 when) overwriting a built-in function. Don't use COPY_DECL_RTL,
5511 but follow the SET_DECL_RTL idiom used elsewhere in the function.
5512
ceef8ce4
NB
55132002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
5514
5515 * cp-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
5516 LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
5517 * decl.c (grokdeclarator): Update.
5518 * mangle.c (write_integer_cst): Update.
5519 * typeck.c (build_binary_op): Update.
5520
48a7a235
NB
55212002-03-31 Neil Booth <neil@daikokuya.demon.co.uk>
5522
5523 * cp-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
5524 * lex.c (cxx_init): Don't set hook.
5525
7cb32822
NB
55262002-03-31 Neil Booth <neil@daikokuya.demon.co.uk>
5527
5528 * Make-lang.in (error.o): Update.
5529 * cp-lang.c (LANG_HOOKS_PRINT_ERROR_FUNCTION): Redefine.
5530 * cp-tree.h (struct diagnostic_context): Predeclare.
5531 (cxx_print_error_function): New.
5532 * error.c: Include langhooks-def.h.
5533 (lang_print_error_function): Rename. Update.
5534 (init_error): Don't set hook.
5535
b0c48229
NB
55362002-03-29 Neil Booth <neil@daikokuya.demon.co.uk>
5537
5538 * cp-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE):
5539 Redefine.
5540 * cvt.c (cp_convert_to_pointer, type_promotes_to): Use new hooks.
5541 * decl.c (finish_enum): Similarly.
5542 * error.c (dump_type): Similarly.
5543 * lex.c (cxx_init): Similarly.
5544 * mangle.c (write_builtin_type): Similarly.
5545 * typeck.c (comptypes): Similarly.
5546
d52e4867
RS
55472002-03-28 Roger Sayle <roger@eyesopen.com>
5548
5549 PR c++/5998:
5550 * decl.c (cxx_init_decl_processing): Re-enable built-in functions
5551 in the g++ front-end.
5552 (duplicate_decl): Allow redefinition of anticipated built-ins.
5553 Fix inlining problem by over-writing the old DECL_RTL.
5554 (lookup_namespace_name): Fail to find an identifier in the
5555 specified namespace if its still anticipated.
5556 (builtin_function_1): New function split out from builtin_function
5557 to create a builtin in the current namespace with given context.
5558 (builtin_function): Call builtin_function_1 to define the
5559 appropriate builtins in both the std and global namespaces.
5560 (select_decl): Don't test for anticipated decls here.
5561 (unqualified_namespace_lookup): Instead ignore them whilst
5562 searching through scopes and namespaces.
5563 * decl2.c (do_nonmember_using_decl): If a using declaration
5564 specifies an anticipated built-in function, mark it as no longer
5565 anticipated in that scope.
5566 (ambiguous_decl): Avoid resolving to an anticipated decl.
5567 * lex.c (do_scoped_id): Fail to find an identifier in the global
5568 namespace if its still anticipated.
5569
f1e639b1
NB
55702002-03-29 Neil Booth <neil@daikokuya.demon.co.uk>
5571
5572 * cp-lang.c (LANG_HOOKS_MAKE_TYPE): Redefine.
5573 * cp-tree.h (cp_make_lang_type): Rename.
5574 * lex.c (cp_make_lang_type): Rename.
5575 (make_aggr_type): Update.
5576 * tree.c (init_tree): Don't set make_lang_type_fn.
5577
c7f4981a
JJ
55782002-03-29 Jakub Jelinek <jakub@redhat.com>
5579
5580 PR c++/6073
5581 * class.c (finish_struct_1): Update static field's DECL_MODE even
5582 if its type is a variant of t.
5583
7ffb4fd2
NB
55842002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
5585
5586 * cp-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine.
5587 * cp-tree.h (cxx_insert_default_attributes): New.
5588 * decl.c (insert_default_attributes): Rename.
5589
cd4e8331
MM
55902002-03-27 Mark Mitchell <mark@codesourcery.com>
5591
5592 PR c++/4884
5593 * call.c (build_op_delete_call): Allow for the fact the placement
5594 may be a COMPOUND_EXPR.
500abaa8 5595
c9d892a8
NB
55962002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
5597
5598 * cp-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
5599 * cp-tree.h (init_cplus_expand): Remove.
5600 (cxx_expand_expr): New.
5601 * expr.c (cplus_expand_expr): Rename cxx_expand_expr,
5602 fix prototype.
5603 (init_cplus_expand): Remove.
5604 * lex.c (cxx_init): Don't call init_cplus_expand.
5605
46ff5047
MM
56062002-03-26 Mark Mitchell <mark@codesourcery.com>
5607
5608 PR c++/4884.
5609 * init.c (build_new_1): Allow for the fact the result of
5610 build_function_call may be a COMPOUND_EXPR.
5611
6d4c57a0
NS
56122002-03-26 Nathan Sidwell <nathan@codesourcery.com>
5613
5614 PR c++/5682
5615 * cp-tree.h (BINFO_PRIMARY_P): Explain meaning better.
5616 (dfs_skip_nonprimary_vbases_unmarkedp): Remove.
5617 (dfs_skip_nonprimary_vbases_markedp): Remove.
5618 * search.c (get_shared_vbase_if_not_primary): Remove.
5619 (dfs_skip_nonprimary_vbases_unmarkedp): Remove.
5620 (dfs_skip_nonprimary_vbases_markedp): Remove.
5621 (dfs_unmarked_real_bases_queue_p): Just get the canonical binfo.
5622 (dfs_marked_real_bases_queue_p): Likewise.
5623
4f0ade92
NB
56242002-03-26 Neil Booth <neil@daikokuya.demon.co.uk>
5625
5626 * cp-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
5627 * cp-tree.h (cxx_mark_tree): New.
5628 * decl.c (lang_mark_tree): Rename cxx_mark_tree.
5629
c88770e9
NB
56302002-03-25 Neil Booth <neil@daikokuya.demon.co.uk>
5631
5632 * cp-tree.h (cxx_maybe_build_cleanup): New.
5633 * decl.c (destroy_local_var, hack_incomplete_structures): Update.
5634 (maybe_build_cleanup): Rename cxx_maybe_build_cleanup.
5635 * tree.c (build_target_expr): Update.
7b3e5198 5636 * cp-lang.c (LANG_HOOKS_MAYBE_BUILD_CLEANUP): Redefine.
c88770e9 5637
aaf93206
NB
56382002-03-24 Neil Booth <neil@daikokuya.demon.co.uk>
5639
5640 * decl2.c (cxx_decode_option): Handle -E.
5641 * lang-specs.h (default_compilers): Preprocess with cc1plus.
5642 * lex.c (cxx_init): Exit quickly if c_common_init returns NULL.
5643
e756a7da
JJ
56442002-03-23 Jakub Jelinek <jakub@redhat.com>
5645
5646 PR c++/6037
5647 * decl.c (start_enum): Don't set TREE_ADDRESSABLE on TREE_LIST node.
5648
ea9264e9
GDR
56492002-03-23 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
5650
5651 * error.c (dump_type): Be careful about implicit typenames.
5652
acb044ee
GDR
56532002-03-21 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
5654
5655 PR C++/3656
5656 * semantics.c (finish_base_specifier): Handle erronous base
500abaa8 5657 classes.
acb044ee 5658
b216cd4a
ZW
56592002-03-22 Zack Weinberg <zack@codesourcery.com>
5660
5661 * error.c: Always use REAL_VALUE_TO_DECIMAL; don't test
5662 REAL_IS_NOT_DOUBLE.
5663
9181f8db
JK
56642002-03-22 Jeff Knaggs <jknaggs@redhat.com>
5665
cd6af0c1
JM
5666 * typeck.c (get_member_function_from_ptrfunc): Scale idx down to
5667 an index into the vtable_entry array regardless of
9181f8db
JK
5668 TARGET_PTRMEMFUNC_VBIT_LOCATION.
5669
e019cf95
AH
56702002-03-21 Aldy Hernandez <aldyh@redhat.com>
5671
84d901be 5672 * tree.c (cp_cannot_inline_tree_fn): Same.
e019cf95 5673
43577e6b
NB
56742002-03-21 Neil Booth <neil@daikokuya.demon.co.uk>
5675
5676 * cp-tree.h (pushdecl, pushlevel, poplevel, set_block,
5677 insert_block, getdecls, global_bindings_p): New.
5678
8c152bad
NS
56792002-03-20 Nathan Sidwell <nathan@codesourcery.com>
5680
5681 PR c++/4361
5682 * mangle.c (struct globals) Add internal_mangling_p member.
5683 (write_template_param): Do internal mangling, if needed.
5684 (mangle_conv_op_name_for_type): Request internal mangling.
5685
e3fe84e5
JM
56862002-03-20 Jason Merrill <jason@redhat.com>
5687
5688 PR c++/2136
5689 * init.c (build_delete): Check access for a member op delete here.
5690 * decl2.c (delete_sanity): Not here.
5691
ea122333
JM
56922002-03-19 Jason Merrill <jason@redhat.com>
5693
5694 PR c++/5118
5695 * class.c (get_vfield_name): Use the constructor_name.
5696
7afff7cf
NB
56972002-03-20 Neil Booth <neil@daikokuya.demon.co.uk>
5698
5699 * cp-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
5700 * cp-tree.h (lang_printable_name): Rename.
5701 * error.c (lang_decl_name): Use new hook.
5702 * lex.c (cxx_init): Remove old hook.
5703 * pt.c (tsubst_decl): Use new hook.
5704 * tree.c (lang_printable_name): Rename.
5705
ff77ac85
EB
57062002-03-18 Eric Botcazou <ebotcazou@multimania.com>
5707
5708 PR c++/3882
5709 * pt.c (tsubst_decl): Move __PRETTY_FUNCTION__ handling...
5710 (tsubst_expr) [DECL_STMT]: ...here. And substitute the initializer
5711 only after recording the declaration.
5712
ffd696af
JM
57132002-03-18 Jason Merrill <jason@redhat.com>
5714
097955f2
JM
5715 PR c++/2039
5716 * init.c (resolve_offset_ref): Hand off to build_component_ref.
5717
b663bcf3
JM
5718 PR c++/4222, c++/5995
5719 * call.c (build_over_call): Fix empty class logic.
5720
0f4237c2
JM
5721 PR c++/3870
5722 * cp-tree.h (struct saved_scope): Add last_parms field.
5723 * decl.c (maybe_push_to_top_level): Save last_function_parms.
5724 (pop_from_top_level): Restore it.
5725
001ad76c
JM
5726 PR c++/4377
5727 * mangle.c (write_expression): Strip NOP_EXPRs sooner. Also strip
5728 NON_LVALUE_EXPRs.
5729
5730 PR c++/4003
ed2fa432
JM
5731 * pt.c (tsubst_friend_function): Use decl_namespace_context.
5732
ffd696af
JM
5733 PR c++/3948 -- C++ ABI change, followup to 2001-12-18 patch.
5734 * class.c (finish_struct_bits): Also set TREE_ADDRESSABLE for a
5735 type with a nontrivial destructor.
5736
f2606a97
JM
57372002-03-17 Jason Merrill <jason@redhat.com>
5738
5739 PR c++/4460
5740 * class.c (build_base_path): Virtual base layout is fixed in
5741 in-charge [cd]tors.
5742
52dabb6c
NB
57432002-03-17 Neil Booth <neil@daikokuya.demon.co.uk>
5744
5745 * cp-lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
5746 * parse.y (yyparse): Remove macro.
5747
beb9c8a2
JM
57482002-03-17 Jason Merrill <jason@redhat.com>
5749
5750 PR c++/5757
5751 * init.c (build_new_1): Pass the right pointer to op delete.
5752
5dd236e2
NS
57532002-03-16 Nathan Sidwell <nathan@codesourcery.com>
5754
5755 PR c++/4361
5756 * cp-tree.h (CLASSTYPE_METHOD_VEC): Document where templated
5757 conversion operators go.
5758 (struct lang_decl_flags): Add template_conv_p and unused
5759 bitfields.
5760 (DECL_TEMPLATE_CONV_FN_P): New macro.
5761 * call.c (build_user_type_conversion_1): Don't check second type
5762 conversion of overload set first.
5763 * class.c (add_method): Make sure templated conversion operators
5764 all end up on slot 2.
5765 * lex.c (do_identifier): A conversion operator token might be
5766 satisfied by a templated conversion operator.
5dd236e2
NS
5767 * pt.c (check_explicit_specialization): Use
5768 CLASSTYPE_FIRST_CONVERSION_SLOT.
5769 (template_parm_this_level_p): New function.
5770 (push_template_decl_real): Determine DECL_TEMPLATE_CONV_FN_P.
8c152bad 5771 * search.c (lookup_fnfields_1): Template conversions will be on
5dd236e2
NS
5772 the first slot.
5773 * typeck.c (build_component_ref): Preserve the type of an
5774 conversion operator name on the overload type.
5775 (build_x_function_call): Retrieve the conversion operator name.
5776
0ba20759
RH
57772002-03-15 Richard Henderson <rth@redhat.com>
5778
5779 * init.c (build_new_1): Use size_binop instead of cp_build_binary_op.
5780
6e4ae815
MM
57812002-03-15 Mark Mitchell <mark@codesourcery.com>
5782
5783 * cp-tree.h (CLEANUP_DECL): Remove.
5784 (CLEANUP_EXPR): Likewise.
5785 * decl.c (destroy_local_var): Simplify.
5786 (maybe_build_cleanup): Tidy.
5787 * dump.c (cp_dump_tree): Remove handling of CLEANUP_STMT.
5788 * semantics.c (cp_expand_stmt): Likewise.
5789 * cp/tree.c (cp_statement_code_p): Likewise.
5790
5cc90635
JM
57912002-03-15 Jason Merrill <jason@redhat.com>
5792
6da794e8
JM
5793 PR c++/5857
5794 * decl.c (duplicate_decls): Use merge_types instead of common_type.
5795 * typeck.c (common_type): Just hand off to
5796 type_after_usual_arithmetic_conversions and
5797 composite_pointer_type.
5798 (merge_types): New fn.
5799 (commonparms): Use it instead of common_type.
5800 (type_after_usual_arithmetic_conversions): Also handle COMPLEX_TYPE.
5801 (composite_pointer_type): Also handle attributes.
5802 * cp-tree.h: Declare merge_types.
5803
5cc90635
JM
5804 * decl.c (make_rtl_for_nonlocal_decl): Also defer COMDAT
5805 variables.
5806 * decl2.c (maybe_make_one_only): Also mark the decl as needed.
5807
ecb0eece
RH
58082002-03-14 Richard Henderson <rth@redhat.com>
5809
5810 * decl.c: Include c-pragma.h.
5811 (start_decl, start_function): Invoke maybe_apply_pragma_weak.
5812 * Make-lang.in: Update dependencies.
5813
d3f129b3
JJ
58142002-03-14 Jakub Jelinek <jakub@redhat.com>
5815
f6562b37 5816 PR c++/5908
d3f129b3
JJ
5817 * call.c (build_over_call): Set TREE_NO_UNUSED_WARNING too.
5818 * cvt.c (convert_to_void): Preserve TREE_NO_UNUSED_WARNING.
5819
049e6879
RS
58202002-03-12 Richard Sandiford <rsandifo@redhat.com>
5821
5822 * mangle.c (write_builtin_type): Handle 128-bit integers even if
5823 they are not a standard integer type.
5824
872c9284
RS
58252002-03-12 Richard Sandiford <rsandifo@redhat.com>
5826
5827 * cp-tree.h (init_init_processing): Remove declaration.
5828 * init.c (BI_header_type, init_init_processing): Remove old ABI stuff.
5829 * decl.c (cxx_init_decl_processing): Don't call init_init_processing.
5830
2f9834e8
KG
58312002-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5832
5833 * cp-lang.c (tree_code_type, tree_code_length, tree_code_name):
5834 Define.
5835 * decl.c (duplicate_decls): Use TREE_CODE_LENGTH, not
5836 tree_code_length.
5837 * lex.c (cplus_tree_code_type, cplus_tree_code_length,
5838 cplus_tree_code_name): Delete.
5839 (cxx_init): Don't call add_c_tree_codes, instead set
5840 lang_unsafe_for_reeval. Don't try to copy into the various
5841 tree_code arrays.
5842
df867456
NS
58432002-03-12 Nathan Sidwell <nathan@codesourcery.com>
5844
5845 PR c++/5659
5846 * decl.c (xref_tag): Don't set CLASSTYPE_DECLARED_CLASS here.
5847 * decl2.c (handle_class_head): Set CLASSTYPE_DECLARED_CLASS for
5848 definitions.
5849
ab04e34b
NS
58502002-03-11 Nathan Sidwell <nathan@codesourcery.com>
5851
5852 Revert 2001-03-26 Nathan Sidwell <nathan@codesourcery.com>,
5853 DR209 is now not a defect.
5854 * cp-tree.h (skip_type_access_control): Remove.
5855 * decl.c (grokdeclarator): Do type access control for friend
5856 declarations.
5857 * semantics.c (decl_type_access_control): Don't reset
5858 current_type_lookups.
5859 (save_type_access_control): Always save the lookups.
5860 (skip_type_access_control): Remove.
5861 (finish_class_definition): Don't change type_lookups.
5862
999cc24c
NS
58632002-03-11 Nathan Sidwell <nathan@codesourcery.com>
5864
5865 Revert 2000-12-01 Nathan Sidwell <nathan@codesourcery.com>,
5866 It is incorrect.
5867 * typeck.c (build_static_cast): Compare non-qualified types
5868 with pointer to member conversions.
5869
61eece67
DN
58702002-03-11 Dan Nicolaescu <dann@ics.uci.edu>
5871 Daniel Berlin <dan@dberlin.org>
5872
5873 * cp-lang.c (ok_to_generate_alias_set_for_type): New function.
5874 (cxx_get_alias_set): Use it.
5875
644d28d4
KG
58762002-03-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5877
5878 * cp-tree.h (stabilize_expr): Prototype.
5879
7e326356
CR
58802002-03-08 Craig Rodrigues <rodrigc@gcc.gnu.org>
5881
5882 * cp-tree.h (CLEAR_BINFO_MARKED): Make both parts of
5883 conditional return void.
5884
24965e7a
NB
58852002-03-08 Neil Booth <neil@daikokuya.demon.co.uk>
5886
5887 * cp-lang.c (LANG_HOOKS_UNSAVE): Redefine.
5888 * cp-tree.h (cxx_unsave): New.
5889 * tree.c (cp_unsave): Rename cxx_unsave, update prototype.
5890 (init_tree): Update.
5891
ca7558fc
KG
58922002-03-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5893
5894 * decl.c (cxx_init_decl_processing): Use ARRAY_SIZE in lieu of
5895 explicit sizeof/sizeof.
5896 * decl2.c (cxx_decode_option): Likewise.
5897 * lex.c (init_reswords, REDUCE_LENGTH, TOKEN_LENGTH): Likewise.
5898
fd87b7a7
NS
58992002-03-02 Nathan Sidwell <nathan@codesourcery.com>
5900
5901 PR c++/775
5902 * decl.c (lookup_tag): Only reject enum/class mismatch, not
5903 class/union mismatch.
5904 * parse.y (check_class_key): New function.
5905 (structsp): Call it.
5906
bfba94bd
MM
59072002-03-01 Michael Matz <matz@suse.de>
5908
5909 * typeck.c (cp_pointer_int_sum): Complete inner type which is
5910 used later by size_in_bytes().
5911
fdc9bf29
PE
59122002-03-01 Phil Edwards <pme@gcc.gnu.org>
5913
5914 * cp-tree.h: Require __GNUC__ to be #defined.
5915 (build_init): Add missing prototype.
5916
6f30f1f1
JM
59172002-03-01 Jason Merrill <jason@redhat.com>
5918
5919 * except.c: Don't include decl.h or obstack.h. Do include
5920 tree-inline.h.
5921 (build_throw): Destroy temporaries from the thrown
500abaa8 5922 expression before calling __cxa_throw. Construct a thrown
6f30f1f1
JM
5923 temporary directly into the exception object.
5924 (stabilize_throw_expr): New function.
5925 (wrap_cleanups_r): New function.
5926 * tree.c (stabilize_expr): New function.
5927 * init.c (build_init): New function.
5928 * Make-lang.in (cp/except.o): Adjust .h deps.
5929
46cfb101
JM
59302002-02-28 Jason Merrill <jason@redhat.com>
5931
07f521fc
JM
5932 * search.c (lookup_base_r): Don't clear is_non_public just because
5933 we found a friendly scope.
5934
46cfb101
JM
5935 * decl.c (finish_function): Only warn about missing return
5936 statement with -Wreturn-type.
5937
63e1b1c4
NB
59382002-02-28 Neil Booth <neil@daikokuya.demon.co.uk>
5939
5940 * class.c (build_clone): Update.
5941 * cp-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
5942 * cp-tree.h (cxx_dup_lang_specific_decl): New.
5943 * lex.c (copy_lang_decl): Rename cxx_dup_lang_specific_decl.
5944 (copy_decl): Update.
5945 * method.c (make_thunk): Update.
5946
f458d1d5
ZW
59472002-02-27 Zack Weinberg <zack@codesourcery.com>
5948
5949 * decl2.c: Delete traditional-mode-related code copied from
5950 the C front end but not used, or used only to permit the
5951 compiler to link.
5952
500abaa8 59532002-02-24 Craig Rodrigues <rodrigc@gcc.gnu.org>
3387d36e
CR
5954
5955 PR c++/4093
5956 * cp-tree.h (SET_BINFO_MARKED): Cast false part of condition
5957 to void.
5958
25c8b645
JJ
59592002-02-22 Jakub Jelinek <jakub@redhat.com>
5960
5961 PR other/5746
5962 * semantics.c (finish_switch_cond): Don't call get_unwidened
5963 if error_mark_node.
5964
4f2b0fb2
NS
59652002-02-22 Nathan Sidwell <nathan@codesourcery.com>
5966
5967 PR c++/2645, DR 295
5968 * cp-tree.h (tsubst_flags_t): Add tf_ignore_bad_quals,
5969 tf_keep_type_decl.
5970 (make_typename_type): Use tsubst_flags_t.
5971 * decl.c (make_typename_type): Adjust. Return non-artificial
5972 TYPE_DECLs, if required.
5973 (grokdeclarator): Simplify CVR qualification handling. Allow bad
5974 qualifiers on typedef types.
5975 * decl2.c (handle_class_head): Adjust make_typename_type call.
5976 * parse.y (nested_name_specifier): Likewise.
5977 (typename_sub0): Likewise.
5978 (typename_sub1): Likewise.
5979 * pt.c (convert_template_argument): Adjust make_typename_type
5980 return value.
5981 (tsubst): Adjust cp_build_qualified_type_real calls.
1a55127d 5982 (check_cv_quals_for_unify): Cope with allowing bad qualifications
4f2b0fb2
NS
5983 on template type parms.
5984 (instantiate_decl): Recheck substitutions to give warnings on bad
5985 qualifications.
5986 * tree.c (cp_build_qualified_type_real): Use tf_allow_bad_quals.
5987
8fc2ba41
AH
59882002-02-21 Aldy Hernandez <aldyh@redhat.com>
5989
84d901be 5990 * cp/decl.c (duplicate_decls): Merge always_inline attribute.
8fc2ba41 5991
84d901be
AD
5992 * cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0
5993 unless DECL_ALWAYS_INLINE.
8fc2ba41 5994
7552da58
JJ
59952002-02-20 Jakub Jelinek <jakub@redhat.com>
5996
5997 * typeck.c (cp_pointer_int_sum): Renamed from
5998 pointer_int_sum, call pointer_int_sum.
5999
00fae85d
JJ
60002002-02-20 Jakub Jelinek <jakub@redhat.com>
6001
6002 * decl.c (duplicate_decls): Return 0 if issued error about
6003 redeclaration.
6004
6ea868b7
JM
60052002-02-19 Jason Merrill <jason@redhat.com>
6006
500abaa8 6007 ABI change: Mangle `void (A::*)() const' as
6ea868b7
JM
6008 M1AKFvvE, not MK1AFvvE.
6009 * mangle.c (write_function_type): Write cv-quals for member
6010 function type here.
6011 (write_pointer_to_member_type): Not here.
6012
c02f5e29
JM
60132002-02-18 Jason Merrill <jason@redhat.com>
6014
6015 * pt.c (do_type_instantiation): Don't pedwarn if in_system_header.
6016 (do_decl_instantiation): Likewise.
6017
624a5800
CR
60182002-02-17 Craig Rodrigues <rodrigc@gcc.gnu.org>
6019
6020 PR c++/5685
6021 * decl.c (duplicate_decls): Make warning unconditional
6022 if duplicate default argument declarations are present.
6023
f6f8ada3
JJ
60242002-02-17 Jakub Jelinek <jakub@redhat.com>
6025
6026 * typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit
6027 shortening.
6028
8d6e459d
NS
60292002-02-15 Nathan Sidwell <nathan@codesourcery.com>
6030
6031 * decl.c (grokdeclarator): Set typedef_decl for all TYPE_DECLs,
6032 remove incorrect comment. Move #if 0'd code to common path. Use
6033 IMPLICIT_TYPENAME_P. Simplify & reformat ARRAY_TYPE duplication.
6034
ca4feb54
JM
60352002-02-13 Jason Merrill <jason@redhat.com>
6036
57d5032b
JM
6037 * decl.c (builtin_function): Set TREE_THIS_VOLATILE on return fns.
6038 (finish_function): Don't warn if current_function_returns_null.
6039
bb26522d
JM
6040 * typeck2.c (digest_init): Do handle values of vector type.
6041
ca4feb54
JM
6042 * typeck2.c (digest_init, process_init_constructor): Treat vectors
6043 like arrays.
6044
e6b9638b
JM
60452002-02-11 Jason Merrill <jason@redhat.com>
6046
6047 * parse.y (reserved_declspecs): Don't handle attributes.
6048 (reserved_typespecquals): Handle them here.
6049 * Make-lang.in (parse.c): Adjust expected conflicts.
6050
1cf537c5
JJ
60512002-02-08 Jakub Jelinek <jakub@redhat.com>
6052
6053 * parse.y (primary, primary_no_id): Use compstmt_or_stmtexpr
6054 instead of compstmt.
6055 (compstmt_or_stmtexpr): Renamed from compstmt.
6056 (compstmt): In addition to compstmt_or_stmtexpr clear last_expr_type.
6057
c2ea3a40
NS
60582002-02-07 Nathan Sidwell <nathan@codesourcery.com>
6059
6060 Rename instantiate_type_flags to tsubst_flags_t & expand use.
6061 * cp-tree.h (instantiate_type_flags): Rename to ...
6062 (tsubst_flags_t): ... here. Rename itf_complain to tf_error,
6063 add tf_warning flag.
6064 (instantiate_type): Adjust prototype.
6065 (tsubst, tsubst_expr, tsubst_copy, lookup_template_class,
6066 do_type_instantiation, cp_build_qualified_type_real): Likewise.
6067 cp_build_qualified_type: Adjust.
6068 * class.c (instantiate_type): Adjust parameter. Rename itf_* to
6069 tf_*.
6070 * call.c (standard_conversion): Rename itf_* to tf_*.
6071 (reference_binding): Likewise.
6072 (convert_like_real): Likewise.
6073 * cvt.c (cp_convert_to_pointer): Likewise.
6074 (convert_to_reference): Likewise.
6075 * decl.c (lookup_namespace_name): Use tf_* flags.
6076 (make_typename_type): Likewise.
6077 (grokdeclarator): Likewise.
6078 * pt.c (convert_nontype_argument): Adjust COMPLAIN usage.
6079 (coerce_template_template_parms, convert_template_argument,
6080 coerce_template_parms, maybe_get_template_decl_from_type_decl,
6081 lookup_template_class, tsubst_friend_function, tsubst_friend_class,
500abaa8
AJ
6082 instantiate_class_template, tsubst_template_arg_vector,
6083 tsubst_template_parms, tsubst_aggr_type, tsubst_default_argument,
c2ea3a40 6084 tsubst_decl, tsubst_arg_types, tsubst_function_type,
500abaa8 6085 tsubst_call_declarator_parms, tsubst, tsubst_copy, tsubst_expr,
c2ea3a40 6086 instantiate_template, fn_type_unification,
500abaa8
AJ
6087 resolve_overloaded_unification, verify_class_unification,
6088 unify, get_bindings_real, do_type_instantiation,
6089 regenerate_decl_from_template, instantiate_decl,
c2ea3a40
NS
6090 tsubst_initializer_list, tsubst_enum,
6091 get_mostly_instantiated_function_type,
6092 invalid_nontype_parm_type_p): Likewise.
6093 * tree.c (cp_build_qualified_type_real): Likewise.
6094 * typeck.c (build_binary_op): Rename itf_* to tf_*.
6095 (build_ptrmemfunc): Likewise.
6096 (convert_for_assignment): Likewise.
6097
d5614afb
NS
60982002-02-07 Nathan Sidwell <nathan@codesourcery.com>
6099
6100 PR c++/109
6101 * decl.c (grokdeclarator): Allow friend declarations from
8d6e459d 6102 dependent types.
d5614afb
NS
6103 * decl2.c (handle_class_head): Don't push into template parm contexts.
6104 * pt.c (push_template_decl_real): Template parm contexts are never
6105 being defined.
6106
1af6141b
AO
61072002-02-05 Alexandre Oliva <aoliva@redhat.com>
6108
6109 * class.c: Include target.h.
6110 (check_bitfield_decl): Disregard EMPTY_FIELD_BOUNDARY,
6111 BITFIELDS_NBYTES_LIMITED and PCC_BITFIELD_TYPE_MATTERS for MS
6112 bit-field layout.
6113 * Make-lang.in: Adjust deps.
6114
d8a6f584
JM
61152002-02-05 Jason Merrill <jason@redhat.com>
6116
6117 * error.c (dump_type): Be more helpful about VECTOR_TYPE.
6118
6f9fdf4d
JJ
61192002-02-04 Jakub Jelinek <jakub@redhat.com>
6120
6121 * semantics.c (begin_switch_stmt): Clear SWITCH_TYPE.
6122 (finish_switch_cond): Set SWITCH_TYPE.
6123
14691f8d
RH
61242002-02-04 Richard Henderson <rth@redhat.com>
6125
6126 * method.c (use_thunk): Always initialize the block tree. Reindent.
6127 * semantics.c (expand_body): Emit thunks after function, not before.
6128
e89a6075
JM
61292002-02-04 Jason Merrill <jason@redhat.com>
6130
6131 * decl.c (start_function): Call cplus_decl_attributes immediately
6132 after grokdeclarator.
6133
6134 * decl.c (start_function): Combine DECL_RESULT handling code.
6135
9780c24f
JM
61362002-02-03 Jason Merrill <jason@redhat.com>
6137
6138 * xref.c: Remove.
6139 * Make-lang.in (CXX_OBJS): Remove cp/xref.o
6140 (cp/xref.o): Remove dependencies.
6141 * class.c (finish_struct_1, check_methods): Don't call xref fns.
6142 (finish_struct_1): Likewise.
6143 * friend.c (make_friend_class): Likewise.
6144 * lex.c (cxx_init, cxx_finish, extract_interface_info): Likewise.
6145 * spew.c (read_process_identifier): Likewise.
6146
65f36ac8
JM
61472002-02-01 Jason Merrill <jason@redhat.com>
6148
efe49da0 6149 PR c++/4872
500abaa8 6150 * decl.c (finish_function): Warn about a non-void function with
efe49da0
JM
6151 no return statement and no abnormal exit.
6152 * cp-tree.h (struct cp_language_function): Add returns_abnormally.
6153 (current_function_returns_abnormally): New macro.
6154 * call.c (build_call): Set it.
6155
f2d9afec
JM
6156 * typeck.c (build_component_ref): Always complain about offsetof
6157 constructs on non-PODs. Only make it an error for members of
6158 virtual bases.
6159
65f36ac8
JM
6160 * error.c (dump_scope): Don't add TFF_DECL_SPECIFIERS.
6161 (dump_function_decl): Always dump parms.
6162
6163 * decl2.c (finish_static_data_member_decl): Complain about a local
6164 class with a static data member.
6165
6166 PR c++/4286
6167 * search.c (lookup_field_1): Don't xref a static data member
6168 just because we looked it up.
6169
98884b26
JM
61702002-01-31 Jason Merrill <jason@redhat.com>
6171
b88c0704
JM
6172 * Make-lang.in (parse.c): Handle .output file.
6173
a588fe25
JM
6174 PR c++/3395
6175 * decl.c (xref_tag): Remember early attributes in TYPE_ATTRIBUTES,
6176 not TREE_TYPE.
6177 * semantics.c (finish_class_definition): Adjust.
6178
98884b26
JM
6179 Allow attributes in parms and casts.
6180 * parse.y (named_parm): Don't strip attrs.
6181 (declmods): Remove 'attributes' production.
6182 (nonempty_cv_qualifiers): Accept attributes.
6183 (ATTRIBUTE): Give precedence.
6184 * decl.c (groktypename): Handle attributes.
6185 (grokparms): Likewise.
6186
ffdeea47
JJ
61872002-01-29 Jakub Jelinek <jakub@redhat.com>
6188
6189 * decl2.c (cxx_decode_option): Pass 0 as last argument to
6190 cpp_handle_option.
6191 * lang-specs.h: Use cpp_unique_options instead of cpp_options
6192 when used together with cc1_options.
6193
b8b98c66
NS
61942002-01-29 Nathan Sidwell <nathan@codesourcery.com>
6195
6196 PR c++/5132
6197 * typeck2.c (digest_init): Make sure non-array core type is
6198 instantiated.
6199 * decl2.c (reparse_absdcl_as_casts): Just store the type in the
6200 constructor, rather than build a new one.
6201 (build_expr_from_tree, CONSTRUCTOR case): Be careful with the
6202 PURPOSE of constructor elts.
6203
7437519c
ZW
62042002-01-23 Zack Weinberg <zack@codesourcery.com>
6205
6206 * Make-lang.in (parse.c): Adjust expected number of
6207 shift-reduce conflicts.
6208 (decl.o): Depend on diagnostic.h.
6209 * decl.c: Include diagnostic.h.
6210 (grokdeclarator): Check for null pointer.
6211 (finish_function): Don't abort when
6212 current_binding_level->parm_flag != 1, if errors have
6213 occurred; throw away the statement tree and extra binding
6214 levels, and continue.
6215 * lex.c (note_list_got_semicolon): Check for null pointer.
6216 * method.c (hack_identifier): Just return error_mark_node if
6217 value is error_mark_node.
6218 * parse.y (primary: TYPEID(type_id)): No need to use
6219 TYPE_MAIN_VARIANT here.
6220 (handler_seq): Accept an empty list of catch clauses and
6221 generate a fake handler block to avoid later crashes.
6222 (ansi_raise_identifier): Accept the error token too.
6223 * semantics.c (begin_class_definition,
6224 finish_class_definition): Check for error_mark_node.
6225
c588e52b
ZW
62262002-01-23 Zack Weinberg <zack@codesourcery.com>
6227
6228 * typeck2.c (friendly_abort): Delete definition.
6229 * cp-tree.h (friendly_abort): Don't prototype.
6230 (my_friendly_assert): Use fancy_abort.
6231
d55ecaa4
CR
62322002-01-23 Craig Rodrigues <rodrigc@gcc.gnu.org>
6233
6234 * cp-tree.h (my_friendly_abort): Remove.
6235
0a01c261
JJ
62362002-01-23 Jakub Jelinek <jakub@redhat.com>
6237
6238 * spew.c (pending_inlines, pending_inlines_tail,
6239 processing_these_inlines): Make static.
6240 (mark_pending_inlines): Remove static.
6241 (begin_parsing_inclass_inline): If in function, save pi
6242 for GC to cp_function_chain->unparsed_inlines instead.
6243 (process_next_inline): Likewise.
6244 * cp-tree.h (struct cp_language_function): Add unparsed_inlines.
6245 (mark_pending_inlines): Add prototype.
6246 * decl.c (spew_debug): Remove unused extern.
6247 (mark_lang_function): Call mark_pending_inlines.
6248
a98facb0
CR
62492002-01-23 Craig Rodrigues <rodrigc@gcc.gnu.org>
6250
c588e52b
ZW
6251 * call.c, class.c, decl.c, decl2.c, error.c, expr.c, friend.c,
6252 init.c, lex.c, mangle.c, method.c, pt.c, repo.c, rtti.c, search.c,
6253 semantics.c, spew.c, tree.c, typeck.c, typeck2.c, xref.c:
a98facb0
CR
6254 Change my_fancy_abort() to abort().
6255
f893c16e
JM
62562002-01-23 Jason Merrill <jason@redhat.com>
6257
608afcc5
JM
6258 PR c++/5453
6259 * class.c (fixed_type_or_null): Fix thinko.
6260
f893c16e
JM
6261 PR c++/3331
6262 * init.c (resolve_offset_ref): Use build_indirect_ref.
6bc34b14 6263
b2115575
JM
6264 * decl2.c (grokclassfn): Don't set DECL_REGISTER on 'this'.
6265
f893c16e
JM
62662002-01-22 Jason Merrill <jason@redhat.com>
6267
b5856475
JM
6268 * parse.y (function_body): Suppress the block for the outermost
6269 curly braces.
6270 * decl.c (pushdecl): Don't try to skip it.
6271 (begin_function_body): Keep the block we create, not the next one.
6272 * init.c (emit_base_init): Don't mess with keep_next_level.
6273
6bc34b14
JM
6274 * class.c (build_base_path): Tweak formatting.
6275
3807621a
NS
62762002-01-19 Nathan Sidwell <nathan@codesourcery.com>
6277
6278 Fix regression introduced with patch for c++/775
6279 * parse.y (class_head_defn): Check for template specializations
6280 with a different class-key.
6281
cdd2559c
JM
62822002-01-17 Jason Merrill <jason@redhat.com>
6283
6284 * decl.c (begin_constructor_body, begin_destructor_body): New fns.
6285 (begin_function_body): Call them and keep_next_level.
6286 * init.c (emit_base_init): Call keep_next_level.
6287 * semantics.c (setup_vtbl_ptr): Lose.
6288 * cp-tree.h (struct cp_language_function): Remove vtbls_set_up_p.
6289 (vtbls_set_up_p): Lose.
6290 * pt.c (tsubst_expr, CTOR_INITIALIZER): Call emit_base_init.
6291 * method.c (do_build_copy_constructor): Likewise.
6292 (synthesize_method): Call finish_mem_initializers.
6293 * parse.y (nodecls): Likewise.
ad6b1795
JM
6294
6295 * error.c (dump_type_suffix): Print the exception specs before
6296 recursing.
6297 (dump_function_decl): Here, too.
6298
6299 * cp-tree.h (TMPL_PARMS_DEPTH): Cast to signed HOST_WIDE_INT.
6300
195a5def
IR
63012002-01-10 Ira Ruben <ira@apple.com>
6302
6bc34b14 6303 PR c++/907
195a5def
IR
6304 * decl.c (start_method): Handle attrlist.
6305
f21ee879
JJ
63062002-01-10 Jakub Jelinek <jakub@redhat.com>
6307
6308 * decl2.c (max_tinst_depth): Increase default limit to 500.
6309
63102002-01-10 Graham Stott <grahams@redhat.com>
8fabd4e2
GS
6311
6312 * spew.c (YYCHAR): Uppercase macro parameter and add
6313 parenthesis.
6314 (YYCODE): Likewise.
6315 (NAME): Uppercase macro parameter.
6316
c3af729a
GS
63172002-01-09 Graham Stott <grahams@redhat.com>
6318
6bc34b14 6319 * decl.h (grokdeclarator): Wrap long line.
5d8b4235 6320
c3af729a
GS
6321 * semantics.c (FINISH_COND): Uppercase macro paramaters and
6322 add parenthesis.
6323
91800747
GS
63242002-01-08 Graham Stott <grahams@redhat.com>
6325
6326 * xref.c (FILE_NAME_ABSOLUTE_P): Add parenthesis.
6327 (PALLOC): Uppercase macro parameter and whitespace.
6328 (SALLOC): Uppercase macro parameter.
6329 (SFREE): Uppercase macros parameter, add parenthese and
6330 whitespace.
6331 (STREQL): Uppercase macro parameter and whitespace.
6332 (STRNEQ): Likewise.
6333 (STRLSS): Likewise.
6334 (STRLEQ): Likewise.
6335 (STRGTR): Likewise.
6336 (STRGEQ): Likewise.
6337
6338 * call.c (convert_like): Add parenthesis and wrap.
6339 (convert_like_with_context): Likewise.
6340 (ICS_RANK): Whitespace.
6341 (NEED_TEMPORARY_P): Remove parenthesis.
6342
6343 * class.c (VTT_TOP_LEVEL_P): Uppercase macro parameter and
6344 whitespace.
6345 (VTT_MARKED_BINFO_P): Likewise.
6346
6347 * decl.c (BINDING_LEVEL): Add parenthesis.
6348 (DEF_OPERATOR): Likewise.
6349
91800747
GS
6350 * mangle.c (MANGLE_TRACE): Add parenthesis.
6351 (MANGLE_TRACE_TREE): Likewise.
6352 (write_signed_number): Likewise.
6353 (write_unsigned_number): Likewise.
6354
6355 * pt.c (ccat): Uppercase macro parameter.
6356 (cat): Likewise
6357
6358 * search.c (SET_BINFO_ACCESS): Add parenthesis.
6359
15eb1e43
JM
63602002-01-07 Jason Merrill <jason@redhat.com>
6361
6362 * decl2.c (coerce_new_type): Downgrade error for size_t mismatch
6363 to pedwarn.
6364
6bc34b14 6365 PR c++/3536
15eb1e43
JM
6366 * method.c (make_thunk): If !flag_weak, give the thunk the
6367 function's linkage.
6368 (use_thunk): Here, too.
6369
b34c06e3
GS
63702002-01-07 Graham Stott <grahams@redhat.com>
6371
6bc34b14
JM
6372 * error.c: Update copyright date.
6373 (print_scope_operator): Add parenthesis.
6374 (print_left_paren): Likewise.
6375 (print_right_paren): Likewise.
6376 (print_left_bracket): Likewise.
6377 (print_right_bracket): Likewise.
6378 (print_template_argument_list_start): Likewise.
6379 (print_template_argument_list_end): Likewise.
6380 (print_non_consecutive_character): Likewise.
6381 (print_tree_identifier): Likewise.
6382 (print_identifier): Likewise.
6383 (NEXT_CODE): Uppercase macro parameter.
6384 (ident_fndecl): Delete unused.
6385 (GLOBAL_THING): Likewise.
b34c06e3 6386
98e40e83
GS
63872002-01-06 Graham Stott <grahams@redhat.com>
6388
6389 * cp-tree.h (VAR_OR_FUNCTION_DECL_CHECK): Add parenthesis.
6390 (VAR_FUNCTION_OR_PARM_DECL_CHECK): Likewise.
6391 (VAR_TEMPL_TYPE_OR_FUNCTION_DECL_CHECK) Likewise.
6392 (RECORD_OR_UNION_TYPE_CHECK): Likewise.
6393 (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Likewise.
6394 (C_IS_RESERVED_WORD): Uppercase macro parameter.
6395 (C_RID_YYCODE) Likewise.
6396 (ptrmem_cst): Use rtx.
6397 (LOCAL_BINDING_P): Add whitespace.
6398 (INHERITED_VALUE_BINDING_P): Likewise.
6399 (BINDING_SCOPE): Wrap long line.
6400 (BINDING_HAS_LEVEL_P): Remove parenthesis.
6401 (BINDING_VALUE): Wrap long line.
6402 (BINDING_TYPE): Whitespace.
6403 (IDENTIFIER_GLOBAL_VALUE): Add parenthesis.
6404 (SET_IDENTIFIER_GLOBAL_VALUE): Likewise.
c588e52b 6405 (IDENTIFIER_NAMESPACE_VALUE): Likewise.
98e40e83
GS
6406 (SET_IDENTIFIER_NAMESPACE_VALUE: Likewise.
6407 (same_type_p): Uppercase macro parameters.
6408 (same_type_ignoring_top_level_qualifiers_p): Likewise.
6409 (OVL_FUNCTION): Wrap long line.
6410 (OVL_CHAIN): Whitespace.
b34c06e3 6411 (OVL_CURRENT): Add parenthesis and whitespace.
98e40e83
GS
6412 (OVL_NEXT): Whitespace.
6413 (OVL_USED): Likewise.
6414 (IDENTIFIER_TYPE_VALUE): Likewise.
6415 (REAL_IDENTIFIER_TYPE_VALUE): Remove parenthesis.
6416 (SET_IDENTIFIER_TYPE_VALUE): Add parenthesis and whitespace.
6417 (LANG_ID_FIELD): Whitespace.
6418 (SET_LANG_ID(NODE,VALUE,NAME): Likewise.
6419 (IDENTIFIER_LABEL_VALUE): Whitespace and wrap.
6420 (SET_IDENTIFIER_LABEL_VALUE): Whitespace.
6421 (IDENTIFIER_IMPLICIT_DECL): Whitespace and wrap.
6422 (SET_IDENTIFIER_IMPLICIT_DECL); Whitespace.
6423 (IDENTIFIER_ERROR_LOCUS): Whitespace and wrap.
6424 (SET_IDENTIFIER_ERROR_LOCUS); Whitespace.
6425 (IDENTIFIER_VIRTUAL_P): Likewise.
6426 (IDENTIFIER_OPNAME_P): Likewise.
6427 (IDENTIFIER_TYPENAME_P): Remove parenthesis.
6428 (C_TYPE_FIELDS_READONLY): Uppercase macro parameters.
6429 (C_SET_EXP_ORIGINAL_CODE): Likewise.
6430 (TYPE_ASSEMBLER_NAME_STRING): Wrap long line.
6431 (TYPE_ASSEMBLER_NAME_LENGTH): Likewise.
6432 (IS_AGGR_TYPE): Uppercase macro parameter.
6433 (CLASS_TYPE_P): Likewise.
6434 (IS_AGGR_TYPE_CODE): Uppercase macro parameter and parenthesis.
6435 (IS_AGGR_TYPE_2): Whitespace.
6436 (TAGGED_TYPE_P): Uppercase macro parameter.
6437 (TYPE_BUILT_IN): Whitespace.
6438 (TYPE_FOR_JAVA): Likewise.
6439 (FUNCTION_ARG_CHAIN): Remove parenthesis.
6440 (FUNCTION_FIRST_USER_PARMTYPE): Add parenthesis.
6441 (FUNCTION_FIRST_USER_PARAM): Likewise.
6442 (PROMOTES_TO_AGGR_TYPE): Whitespace.
6443 (DERIVED_FROM_P): Add parenthesis and wrap.
6444 (UNIQUELY_DERIVED_FROM_P): Likewise.
6445 (ACCESSIBLY_UNIQUELY_DERIVED_P): Likewise.
6446 (PUBLICLY_UNIQUELY_DERIVED_P): Likewise.
6447 (CLASSTYPE_USE_TEMPLATE): Whitespace.
6448 (CLASSTYPE_INLINE_FRIENDS): Remove parenthesis.
6449 (TYPE_GETS_DELETE): Add parenthesis.
6450 (TYPE_HAS_CONVERSION): Add parenthesis and wrap.
6451 (TYPE_HAS_ASSIGN_REF): Likewise,
6452 (TYPE_HAS_CONST_ASSIGN_REF): Likewise.
6453 (TYPE_HAS_INIT_REF): Likewise.
6454 (TYPE_HAS_CONST_INIT_REF): Likewise.
6455 (TYPE_BEING_DEFINED): Likewise.
6456 (TYPE_LANG_SPECIFIC): Likewise.
6457 (CLASSTYPE_RTTI): Likewise.
6458 (TYPE_OVERLOADS_CALL_EXPR): Likewise.
6459 (TYPE_OVERLOADS_ARRAY_REF): Likewise.
6460 (TYPE_OVERLOADS_ARROW): Likewise.
6461 (TYPE_USES_MULTIPLE_INHERITANCE): Likewise.
6462 (TYPE_USES_VIRTUAL_BASECLASSES): Add parenthesis.
6463 (CLASSTYPE_METHOD_VEC): Likewise.
6464 (CLASSTYPE_MARKED_N): Likewise.
6465 (CLASSTYPE_MARKED): Likewise.
6466 (CLASSTYPE_MARKED2): Likewise.
6467 (CLASSTYPE_MARKED3): Likewise.
6468 (CLASSTYPE_MARKED4): Likewise.
6469 (CLASSTYPE_MARKED5): Likewise.
6470 (CLASSTYPE_MARKED6): Likewise.
6471 (SET_CLASSTYPE_MARKED): Whitespace.
6472 (CLEAR_CLASSTYPE_MARKED): Likewise.
6473 (SET_CLASSTYPE_MARKED2): Likewise.
6474 (CLEAR_CLASSTYPE_MARKED2): Likewise.
6475 (SET_CLASSTYPE_MARKED3): Likewise.
6476 (CLEAR_CLASSTYPE_MARKED3): Likewise.
6477 (SET_CLASSTYPE_MARKED4): Likewise.
6478 (CLEAR_CLASSTYPE_MARKED4): Likewise.
6479 (SET_CLASSTYPE_MARKED5): Likewise.
6480 (CLEAR_CLASSTYPE_MARKED5): Likewise.
6481 (SET_CLASSTYPE_MARKED6): Likewise.
6482 (CLEAR_CLASSTYPE_MARKED6): Likewise.
6483 (CLASSTYPE_TAGS): Likewise.
6484 (CLASSTYPE_VSIZE): Likewise.
6485 (CLASSTYPE_VBASECLASSES): Likewise.
6486 (CANONICAL_BINFO): Add parenthesis.
6487 (CLASSTYPE_SIZE(NODE): Likewise.
6488 (CLASSTYPE_SIZE_UNIT): Likewise.
6489 (CLASSTYPE_ALIGN(NODE): Likewise.
6490 (CLASSTYPE_USER_ALIGN): Likewise.
6491 (TYPE_JAVA_INTERFACE): Likewise.
6492 (CLASSTYPE_PURE_VIRTUALS): Likewise.
6493 (CLASSTYPE_NEEDS_VIRTUAL_REINIT): Whitespace and wrap.
6494 (TYPE_HAS_DEFAULT_CONSTRUCTOR): Likewise.
6495 (CLASSTYPE_HAS_MUTABLE): Likewise.
6496 (CLASSTYPE_FRIEND_CLASSES): Likewise. Likewise.
6497 (CLASSTYPE_DECLARED_CLASS): Whitespace and wrap.
6498 (CLASSTYPE_READONLY_FIELDS_NEED_INIT): Likewise.
6499 (CLASSTYPE_REF_FIELDS_NEED_INIT): Likewise.
6500 (CLASSTYPE_INTERFACE_ONLY): Likewise.
6501 (CLASSTYPE_INTERFACE_KNOWN): Likewise.
6502 (CLASSTYPE_INTERFACE_UNKNOWN): Likewise.
6503 (SET_CLASSTYPE_INTERFACE_UNKNOWN_X): Likewise.
6504 (SET_CLASSTYPE_INTERFACE_UNKNOWN): Likewise.
6505 (SET_CLASSTYPE_INTERFACE_KNOWN): Likewise.
6506 (CLASSTYPE_DEBUG_REQUESTED): Whitespace and wrap.
6507 (BINFO_UNSHARED_MARKED): Whitespace.
6508 (BINFO_MARKED): Whitespace and wrap.
6509 (SET_BINFO_MARKED): Likewise.
6510 (CLEAR_BINFO_MARKED): Likewise.
6511 (BINFO_VTABLE_PATH_MARKED): Likewise.
6512 (SET_BINFO_VTABLE_PATH_MARKED): Likewise.
6513 (CLEAR_BINFO_VTABLE_PATH_MARKED): Likewise.
6514 (BINFO_SUBVTT_INDEX): Remove parenthesis.
6515 (BINFO_VPTR_INDEX): Likewise.
6516 (BINFO_PRIMARY_BASE_OF): Likewise,
6517 (CLASSTYPE_VFIELDS): Whitespace.
6518 (VF_DERIVED_VALUE): Wrap long line.
6519 (NAMESPACE_LEVEL): Whitespace.
6bc34b14
JM
6520 (CAN_HAVE_FULL_LANG_DECL_P): Remove parenthesis.
6521 (DEFARG_POINTER): Whitespace.
6522 (DECL_NEEDED_P): Remove parenthesis.
6523 (DECL_LANGUAGE): Whitespace.
6524 (SET_DECL_LANGUAGE): Add parenthesis.
6525 (DECL_CONSTRUCTOR_P): Whitespace and wrap.
6526 (DECL_OVERLOADED_OPERATOR_P): Remove parenthesis.
6527 (DECL_IN_AGGR_P): Whitespace.
6528 (DECL_FRIEND_P): Likewise.
6529 (DECL_BEFRIENDING_CLASSES): Likewise.
6530 (DECL_STATIC_FUNCTION_P): Whitespace and wrap.
6531 (DECL_NONCONVERTING_P): Whitespace.
6532 (DECL_PURE_VIRTUAL_P): Likewise.
6533 (DECL_NEEDS_FINAL_OVERRIDER_P): Likewise.
6534 (DECL_PENDING_INLINE_INFO): Whitespace.
6535 (DECL_SORTED_FIELDS): Likewise.
6536 (DECL_DEFERRED_FN): Likewise.
6537 (DECL_TEMPLATE_INFO): Likewise.
6538 (CLASSTYPE_TEMPLATE_INFO): Whitespace and wrap.
6539 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO); Likewise.
6540 (SET_TYPE_TEMPLATE_INFO): Add parenthesis.
6541 (TMPL_ARGS_LEVEL): Likewise.
6542 (SET_TMPL_ARGS_LEVEL): Likewise.
6543 (INNERMOST_TEMPLATE_PARMS): Whitespace.
6544 (C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter.
6545 (INTEGRAL_CODE_P(CODE): Add parenthesis.
6546 (CP_INTEGRAL_TYPE_P): Remove parenthesis.
6547 (TYPE_HAS_CONSTRUCTOR): Whitespace.
6548 (TREE_HAS_CONSTRUCTOR): Likewise.
6549 (TYPE_HAS_DESTRUCTOR): Likewise.
6550 (TYPE_HAS_REAL_ASSIGN_REF): Likewise.
6551 (TYPE_HAS_COMPLEX_ASSIGN_REF): Likewise.
6552 (TYPE_HAS_ABSTRACT_ASSIGN_REF): Likewise.
6553 (TYPE_HAS_COMPLEX_INIT_REF): Likewise.
6554 (TYPE_HAS_NONTRIVIAL_DESTRUCTOR): Likewise.
6555 (TYPE_PTRMEMFUNC_P): Likewise.
6556 (TYPE_PTRMEMFUNC_FLAG): Likewise.
6557 (TYPE_GET_PTRMEMFUNC_TYPE): Likewise.
6558 (TYPE_SET_PTRMEMFUNC_TYPE): Likewise.
6559 (TYPE_PTRMEM_CLASS_TYPE): Remove parenthesis.
6560 (TYPE_PTRMEM_POINTED_TO_TYPE): Likewise.
6561 (DECL_ACCESS): Whitespace.
6562 (DECL_GLOBAL_CTOR_P): Remove parenthesis.
6563 (DECL_GLOBAL_DTOR_P): Likewise.
6564 (GLOBAL_INIT_PRIORITY): Likewise.
98e40e83 6565 (DECL_TEMPLATE_PARMS): Likewise.
6bc34b14
JM
6566 (DECL_TEMPLATE_RESULT): Likewise.
6567 (DECL_TEMPLATE_INSTANTIATIONS): Likewise.
6568 (DECL_TEMPLATE_SPECIALIZATIONS): Likewise.
6569 (DECL_IMPLICIT_TYPEDEF_P): Remove parenthesis.
6570 (SET_DECL_IMPLICIT_TYPEDEF_P): Likewise.
6571 (PRIMARY_TEMPLATE_P): Add parenthesis.
6572 (DECL_USE_TEMPLATE): Whitespace.
6573 (CLASSTYPE_IMPLICIT_INSTANTIATION): Likewise.
6574 (SET_CLASSTYPE_IMPLICIT_INSTANTIATION): Likewise.
6575 (CLASSTYPE_EXPLICIT_INSTANTIATION): Likewise.
6576 (SET_CLASSTYPE_EXPLICIT_INSTANTIATION): Likewise.
6577 (CALL_DECLARATOR_PARMS): Remove parenthesis.
6578 (CALL_DECLARATOR_QUALS): Likewise.
6579 (CALL_DECLARATOR_EXCEPTION_SPEC): Likewise.
6580 (TEMP_NAME_P): Wrap.
6581 (VFIELD_NAME_P): Likewise.
6582 (B_SET): Uppercase macro parameters and add parenthesis.
6583 (B_CLR): Likewise.
6584 (B_TST): Likewise.
6585 (LOOKUP_NAMESPACES_ONLY): Uppercase macro parameters.
6586 (LOOKUP_TYPES_ONLY): Uppercase macro parameters.
6587 (LOOKUP_QUALIFIERS_ONLY): Uppercase macro parameters.
6588 (same_or_base_type_p): Likewise.
6589 (cp_deprecated): Likewise.
98e40e83 6590
c28abdf0
RH
65912002-01-05 Richard Henderson <rth@redhat.com>
6592
15eb1e43 6593 * semantics.c (expand_body): Revert last change.
c28abdf0 6594
f11ee281
JM
65952002-01-04 Jason Merrill <jason@redhat.com>
6596
195a5def 6597 PR c++/4122
f11ee281
JM
6598 * class.c (update_vtable_entry_for_fn): Set delta to zero for a
6599 lost primary.
6600
6601 * class.c (build_vtbl_initializer): Check for a lost primary
6602 before calculating the vtable entry to throw away.
6603
a4200657
JM
66042002-01-02 Jason Merrill <jason@redhat.com>
6605
6606 * semantics.c (expand_body): Call outlining_inline_function when
6607 emitting an inline function out of line.
6608
40e593d7
NS
66092002-01-02 Nathan Sidwell <nathan@codesourcery.com>
6610
6611 PR c++/5116, c++/764 reversion
6612 * call.c (build_new_op): Revert the instantiations. They are
6613 incorrect.
c588e52b 6614
323728aa
NS
66152002-01-02 Nathan Sidwell <nathan@codesourcery.com>
6616
6617 PR c++/5089
6618 * decl2.c (reparse_absdcl_as_casts): Don't warn about casts to void.
6619
46c895ac
NS
66202002-01-02 Nathan Sidwell <nathan@codesourcery.com>
6621
6622 PR c++/3716
6623 * pt.c (tsubst_aggr_type): Move pmf handling into tsubst.
6624 (tsubst, case POINTER_TYPE): Handle pmfs here.
6625 (tsubst, case OFFSET_TYPE): Check it is not an offset to
6626 reference. If it is offset to FUNCTION_TYPE, create a METHOD_TYPE.
6627
833aa4c4
NS
66282002-01-02 Nathan Sidwell <nathan@codesourcery.com>
6629
6630 PR c++/35
6631 * cp-tree.h (DECL_LANG_FLAG_0): Used for PARM_DECL too.
6632 (DECL_TEMPLATE_PARM_P): A PARM_DECL might be one too.
6633 * pt.c (process_template_parm): SET_DECL_TEMPLATE_PARM_P on the
6634 PARM_DECL.
6635 (tsubst_template_parms): Break up loop statements.
6636 (tsubst_decl, case PARM_DECL): Copy DECL_TEMPLATE_PARM_P. Template
6637 parm PARM_DECLs don't get promoted.
6638
18976b21
NS
66392002-01-02 Nathan Sidwell <nathan@codesourcery.com>
6640
6641 PR c++/5123
6642 * typeck.c (build_component_ref): Cope with a TEMPLATE_ID_EXPR.
6643 (build_x_function_call): Cope with a COMPONENT_REF containing a
6644 TEMPLATE_ID_EXPR.
6645
303d1c55
NS
66462002-01-02 Nathan Sidwell <nathan@codesourcery.com>
6647
6648 PR c++/5213
6649 * pt.c (convert_template_argument): Be more careful determining
6650 when RECORD_TYPE templates are or are not templates.
6651
d46a33b3
NS
66522002-01-02 Nathan Sidwell <nathan@codesourcery.com>
6653
6654 PR c++/775
6655 * cp-tree.h (handle_class_head): Adjust prototype.
6656 * decl2.c (handle_class_head): Add DEFN_P and NEW_TYPE_P
6657 parameters. Use for all class heads.
6658 * parse.y (named_class_head_sans_basetype, named_class_head,
6659 named_complex_class_head_sans_basetype,
6660 named_class_head_sans_basetype_defn,
6661 unnamed_class_head): Remove.
6662 (class_head, class_head_apparent_template): Recognize class heads
6663 (class_head_decl, class_head_defn): New reductions. Process class
6664 heads.
6665 (structsp): Adjust class definition and class declaration
6666 reductions.
6667 (maybe_base_class_list): Give diagnostic on empty list.
6668
4542128e
NS
66692002-01-02 Nathan Sidwell <nathan@codesourcery.com>
6670
6671 PR c++/4379
6672 * typeck.c (build_x_unary_op): Don't destroy the OFFSET_REF on a
6673 single non-static member.
6674 (unary_complex_lvalue): If it cannot be a pointer to member, don't
6675 make it so. Check it is not pointer to reference.
6676
903c6234
NS
66772002-01-02 Nathan Sidwell <nathan@codesourcery.com>
6678
6679 PR c++/5132
6680 * decl2.c (reparse_absdcl_as_casts): Don't digest_init if we
6681 are processing a template decl.
6682
477558bf
NS
66832002-01-02 Nathan Sidwell <nathan@codesourcery.com>
6684
6685 PR c++/5116, c++/764
6686 * call.c (build_new_op): Make sure template class operands are
6687 instantiated. Simplify arglist construction.
6688
41f5d4b1
NS
66892001-12-29 Nathan Sidwell <nathan@codesourcery.com>
6690
6691 * call.c (build_user_type_conversion_1): Use my_friendly_assert
6692 rather than if ... abort.
6693 * cvt.c (convert_to_reference): Likewise.
6694 * semantics.c (setup_vtbl_ptr): Likewise.
6695 * pt.c (lookup_template_class): Comment typo.
c588e52b 6696
f3368a90
NS
66972001-12-29 Nathan Sidwell <nathan@codesourcery.com>
6698
6699 PR c++/5125
6700 * pt.c (push_template_decl_real): Make sure DECL has
6701 DECL_LANG_SPECIFIC.
6702
03c9c274
NS
67032001-12-29 Nathan Sidwell <nathan@codesourcery.com>
6704
6705 PR c++/335
6706 * init.c (resolve_offset_ref): Copy cv qualifiers of this pointer
6707 for non-reference fields.
6708 * typeck.c (require_complete_type): Use resolve_offset_ref).
6709
7d8e8369
NS
67102001-12-26 Nathan Sidwell <nathan@codesourcery.com>
6711
6712 PR c++/196
03c9c274 6713 * parse.y (bad_parm): Better diagnostic when given a SCOPE_REF.
7d8e8369 6714
a56ca899
NS
67152001-12-24 Nathan Sidwell <nathan@codesourcery.com>
6716
6717 PR c++/160
6718 * typeck.c (build_modify_expr): Remove old unreachable code & tidy
6719 up. Don't stabilize_references when initializing a reference.
6720
0b5826ac
KG
67212001-12-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6722
6723 * decl2.c (lang_f_options): Const-ify.
6724
38be19f6
JM
67252001-12-20 Joseph S. Myers <jsm28@cam.ac.uk>
6726
6727 * config-lang.in (diff_excludes): Remove.
6728
2e4cf9dc
NS
67292001-12-19 Nathan Sidwell <nathan@codesourcery.com>
6730
6731 PR c++/90
6732 * typeck.c (build_function_call_real): Use original function
6733 expression for errors.
6734
00e4119c
JM
67352001-12-18 Jason Merrill <jason@redhat.com>
6736
195a5def 6737 PR c++/3242
00e4119c
JM
6738 * class.c (add_method): Do compare 'this' quals when trying to match a
6739 used function. Don't defer to another used function.
6740
3ad97789
NS
67412001-12-18 Nathan Sidwell <nathan@codesourcery.com>
6742
6743 * pt.c (instantiate_clone): Remove, fold into ...
6744 (instantiate_template): ... here. Simplify by removing mutual
6745 recursion.
6746 * typeck2.c (build_m_component_ref): Don't cv qualify the function
6747 pointed to by a pointer to function.
6748 * class.c (delete_duplicate_fields_1): Typo.
6749
f21add07
JM
67502001-12-18 Jason Merrill <jason@redhat.com>
6751
6752 C++ ABI change: destroy value arguments in caller.
6753 * semantics.c (genrtl_start_function, genrtl_finish_function): Don't
6754 create an extra binding level for the parameters.
6755 * decl.c (store_parm_decls): Don't do parameter cleanups.
6756
ea50ad82
NS
67572001-12-18 Nathan Sidwell <nathan@codesourcery.com>
6758
6759 * call.c (build_new_method_call): Use '%#V'.
6760 * error.c (cv_to_string): Use V parameter to determine padding.
6761
3855d0d1
JM
67622001-12-18 Joseph S. Myers <jsm28@cam.ac.uk>
6763
6764 * call.c, decl2.c, init.c: Use "built-in" and "bit-field"
6765 spellings in messages.
6766
33bd39a2
ZW
67672001-12-17 Zack Weinberg <zack@codesourcery.com>
6768
6769 * cp-tree.h: Delete #defines for cp_error, cp_warning,
6770 cp_pedwarn, and cp_compiler_error.
6771 * call.c, class.c, cp-tree.h, cvt.c, decl.c, decl2.c, error.c,
6772 except.c, friend.c, init.c, lex.c, method.c, parse.y, pt.c,
6773 rtti.c, search.c, semantics.c, spew.c, tree.c, typeck.c,
6774 typeck2.c: Change calls to the above macros to use their
6775 language-independent equivalents: error, warning, pedwarn, and
6776 internal_error respectively.
6777
317c26c3
NB
67782001-12-16 Neil Booth <neil@daikokuya.demon.co.uk>
6779
6780 * decl2.c (finish_file): Remove back_end_hook.
6781
aba649ba
JM
67822001-12-16 Joseph S. Myers <jsm28@cam.ac.uk>
6783
6784 * ChangeLog.1, ChangeLog.2, ChangeLog, NEWS, call.c, class.c,
6785 cp-tree.h, decl.c, decl2.c, except.c, operators.def, optimize.c,
6786 pt.c, rtti.c, semantics.c, typeck.c: Fix spelling errors.
6787
1737c953
JM
67882001-12-15 Joseph S. Myers <jsm28@cam.ac.uk>
6789
6790 * lang-options.h: Use American spelling in messages.
6791
4a90862e
JM
67922001-12-13 Jason Merrill <jason@redhat.com>
6793
ade3dc07
JM
6794 * Make-lang.in (parse.h): Separate rule, just depend on parse.c.
6795
6796 Use cleanups to run base and member destructors.
6797 * init.c (push_base_cleanups): New function, split out from...
6798 (build_delete): ...here. Lose !TYPE_HAS_DESTRUCTOR code.
6799 * decl.c (finish_destructor_body): Move vbase destruction code to
6800 push_base_cleanups.
6801 (begin_function_body, finish_function_body): New fns.
6802 (finish_function): Move [cd]tor handling and call_poplevel to
6803 finish_function_body.
6804 (pushdecl): Skip the new level.
6805 * semantics.c (genrtl_try_block): Don't call end_protect_partials.
6806 (setup_vtbl_ptr): Call push_base_cleanups.
6807 * method.c (synthesize_method): Call {begin,end}_function_body.
6808 * pt.c (tsubst_expr): Handle COMPOUND_STMT_BODY_BLOCK.
6809 * cp-tree.h: Declare new fns.
6810 * parse.y (function_body, .begin_function_body): New nonterminals.
6811 (fndef, pending_inline, function_try_block): Use function_body.
6812 (ctor_initializer_opt, function_try_block): No longer has a value.
6813 (base_init): Remove .set_base_init token.
6814 (.set_base_init, compstmt_or_error): Remove.
6815 * Make-lang.in (parse.c): Expect two fewer s/r conflicts.
6816
4a90862e
JM
6817 * optimize.c (maybe_clone_body): Fix parameter updating.
6818
a0de9d20
JM
68192001-12-12 Jason Merrill <jason@redhat.com>
6820
6821 * decl.c (store_parm_decls): Remove parms_have_cleanups cruft.
6822 * semantics.c (genrtl_start_function): Don't pass
6823 parms_have_cleanups or push an extra binding level.
6824 (genrtl_finish_function): Lose cleanup_label cruft.
6825
6826 * cp-tree.h (struct cp_language_function): Remove x_ctor_label.
6827 (ctor_label): Remove.
6828 * semantics.c (finish_return_stmt): Lose ctor_label support.
6829 * decl.c (finish_constructor_body, mark_lang_function): Likewise.
33bd39a2 6830 * typeck.c (check_return_expr): Check DECL_DESTRUCTOR_P, not
a0de9d20
JM
6831 dtor_label.
6832
6833 * call.c (build_new_method_call): Let resolves_to_fixed_type_p
6834 check for [cd]tors.
6835 * class.c (fixed_type_or_null, case INDIRECT_REF): Fix.
6836
6837 * decl.c (finish_function): Check VMS_TARGET, not VMS.
6838
6839 * decl.c (start_cleanup_fn): Remove redundant pushlevel.
6840 (end_cleanup_fn): And poplevel.
6841
6842 * semantics.c (setup_vtbl_ptr): Always build a CTOR_INITIALIZER
6843 if we're in a template.
6844
dc5c569a
JJ
68452001-12-12 Jakub Jelinek <jakub@redhat.com>
6846
6847 * cp-tree.h (DESTRUCTOR_DECL_PREFIX, DESTRUCTOR_NAME_P,
6848 ANON_PARMNAME_FORMAT, ANON_PARMNAME_P, DESTRUCTOR_NAME_FORMAT,
6849 THIS_NAME_P): Delete.
6850 * spew.c (read_process_identifier): Remove DESTRUCTOR_NAME_P,
6851 THIS_NAME_P and ANON_PARMNAME_P tests from warning about clash
6852 with internal naming scheme.
6853 * error.c (dump_decl): Remove DESTRUCTOR_NAME_P use.
6854
ad1a6d45
NS
68552001-12-12 Nathan Sidwell <nathan@codesourcery.com>
6856
6857 * decl.c (grokdeclarator): Deprecated implicit typename use.
6858
270d8c65
NS
68592001-12-11 Nathan Sidwell <nathan@codesourcery.com>
6860
6861 PR g++/51
6862 * parse.y (frob_specs): Indicate it is a language linkage which
6863 contained the extern.
6864 * decl.c (grokdeclarator): Allow extern language linkage with
6865 other specifiers.
6866
9aaceb4b
NS
68672001-12-10 Nathan Sidwell <nathan@codesourcery.com>
6868
6869 PR g++/72
6870 * decl.c (add_binding): Don't reject duplicate typedefs involving
6871 template parameters.
6872
a23c9413
NB
68732001-12-10 Neil Booth <neil@daikokuya.demon.co.uk>
6874
6875 * parse.y, semantics.c: Similarly.
6876
9aaceb4b 68772001-12-09 Nathan Sidwell <nathan@codesourcery.com>
271e6f02
NS
6878
6879 PR g++/87
6880 * cp-tree.h (DECL_COPY_CONSTRUCTOR_P): Use copy_fn_p.
6881 (copy_args_p): Rename to ...
6882 (copy_fn_p): ... here.
6883 (grok_special_member_properties): New function.
6884 (grok_op_properties): Lose VIRTUALP parameter.
6885 (copy_assignment_arg_p): Remove.
6886 * call.c (build_over_call): Use copy_fn_p.
6887 * decl.c (grokfndecl): Reformat. Adjust call to
6888 grok_op_properties.
6889 (copy_args_p): Rename to ...
6890 (copy_fn_p): ... here. Reject template functions. Check for pass
6891 by value.
6892 (grok_special_member_properties): Remember special functions.
6893 (grok_ctor_properties): Don't remember them here, just check.
6894 (grok_op_properties): Likewise.
6895 (start_method): Call grok_special_member_properties.
6896 * decl2.c (grokfield): Likewise.
6897 (copy_assignment_arg_p): Remove.
6898 (grok_function_init): Don't remember abstract assignment here.
6899 * pt.c (instantiate_class_template): Call
6900 grok_special_member_properties.
6901 (tsubst_decl): Adjust grok_op_properties call.
6902
bdd8737f
AH
69032001-12-08 Aldy Hernandez <aldyh@redhat.com>
6904
33bd39a2
ZW
6905 * lex.c (rid_to_yy): Add RID_CHOOSE_EXPR and
6906 RID_TYPES_COMPATIBLE_P.
bdd8737f 6907
46af705a
JDA
69082001-12-08 John David Anglin <dave@hiauly1.hia.nrc.ca>
6909
6910 * semantics.c (simplify_aggr_init_exprs_r): Add DIRECT_BIND flag in
6911 call to build_aggr_init.
6912 * cp-tree.h (DIRECT_BIND): Document new use of DIRECT_BIND.
6913
cb97d97d
NB
69142001-12-08 Neil Booth <neil@daikokuya.demon.co.uk>
6915
6916 * parse.y: Replace uses of the string non-terminal with STRING.
6917 Don't perform string concatentaion here.
6918 (string): Remove non-terminal.
6919 * semantics.c (finish_asm_stmt): Don't concatenate strings here.
6920
742a37d5
JM
69212001-12-05 Jason Merrill <jason@redhat.com>
6922
6923 * cp-lang.c (LANG_HOOKS_TREE_INLINING_START_INLINING): Define.
6924 (LANG_HOOKS_TREE_INLINING_END_INLINING): Define.
6925 * tree.c (cp_start_inlining, cp_end_inlining): New fns.
6926 * pt.c (push_tinst_level): No longer static.
6927 * cp-tree.h: Declare them.
6928
6929 * init.c (resolve_offset_ref): Don't check access for the base
6930 conversion to access a FIELD_DECL.
6931
6932 * cp-tree.h (TYPE_REFFN_P): New macro.
6933 * decl.c (bad_specifiers): Check it, too.
6934
6935 * rtti.c (create_pseudo_type_info): Set CLASSTYPE_INTERFACE_ONLY
6936 on the __*_type_info type if we haven't seen a definition.
6937
26f943fd
NB
69382001-12-05 Neil Booth <neil@daikokuya.demon.co.uk>
6939
6940 * decl.c: Include c-common.h.
6941 (shadow_warning): Move to c-common.c.
6942
d2a6f3c0 69432001-12-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
37a08a29
RK
6944
6945 * decl.c (duplicate_decls): Don't copy DECL_NO_CHECK_MEMORY_USAGE.
6946
9471d3e2
NS
69472001-12-04 Nathan Sidwell <nathan@codesourcery.com>
6948
6949 * pt.c (end_template_parm_list): Clear TREE_CHAIN of each parm.
6950
713ccd0c
NS
69512001-12-04 Nathan Sidwell <nathan@codesourcery.com>
6952
6953 PR g++/164
6954 * init.c (sort_base_init): Allow binfos to be directly specified.
6955 * method.c (do_build_copy_constructor): Explicitly convert to the
6956 base instance.
6957 (do_build_assign_ref): Likewise.
6958
591382c4
HPN
69592001-12-03 Hans-Peter Nilsson <hp@bitrange.com>
6960
6961 * decl.c (xref_basetypes): Don't use C99 construct in tag_code
6962 declaration and initialization.
6963
c725bd79
NB
69642001-12-03 Neil Booth <neil@daikokuya.demon.co.uk>
6965
6966 * typeck2.c: Remove leading capital from diagnostic messages, as
6967 per GNU coding standards.
6968
a5d7c4a3
MK
69692001-12-03 Mumit Khan <khan@nanotech.wisc.edu>
6970
6971 PR c++/3394
9fe038e8
HPN
6972 * decl.c (xref_basetypes): Handle attributes between
6973 'class' and name.
a5d7c4a3 6974
f1880e13
NS
69752001-12-03 Nathan Sidwell <nathan@codesourcery.com>
6976
6977 PR g++/3381
6978 * parse.y (named_complex_class_head_sans_basetype): Add new
6979 reduction.
6980 * Make-lang.in (parse.c): Adjust expected conflict count.
6981
ff668506
JM
69822001-12-03 Jason Merrill <jason@redhat.com>
6983
6984 * class.c (finish_vtbls): Fill in BINFO_VPTR_FIELD in the
6985 immediate binfos for our virtual bases.
6986
1f978f5f
NB
69872001-12-02 Neil Booth <neil@daikokuya.demon.co.uk>
6988
6989 * call.c (build_java_interface_fn_ref): Similarly.
6990 * except.c (is_admissible_throw_operand): Similarly.
6991 * init.c (build_java_class_ref): Similarly.
6992 * xref.c (open_xref_file): Similarly.
6993
357351e5
NB
69942001-12-01 Neil Booth <neil@daikokuya.demon.co.uk>
6995
6996 * class.c (finish_struct): Remove trailing periods from messages.
6997 * decl.c (check_tag_decl): Similarly.
6998 * lex.c (cxx_set_yydebug): Similarly.
6999 * typeck2.c (friendly_abort): Similarly.
7000
998979e6
MM
70012001-11-29 Mark Mitchell <mark@codesourcery.com>
7002
7003 PR c++/3048
7004 * cp-tree.h (ovl_member): Remove.
33bd39a2 7005 * decl2.c (merge_functions): Handle extern "C" functions
998979e6
MM
7006 specially.
7007 * tree.c (ovl_member): Remove.
7008
7d5b8b11
MM
70092001-11-29 Mark Mitchell <mark@codesourcery.com>
7010
7011 PR c++/4842
7012 * class.c (get_basefndecls): Take an IDENTIFIER_NODE, not a
7013 FUNCTION_DECL, as input.
7014 (mark_overriders): Remove.
7015 (warn_hidden): Rework for the new ABI.
7016
b67db529
MM
70172001-11-29 Mark Mitchell <mark@codesourcery.com>
7018
7019 PR c++/3471
7020 * call.c (convert_like_real): Do not build additional temporaries
7021 for rvalues of class type.
7022
2db1ab2d
NS
70232001-11-28 Nathan Sidwell <nathan@codesourcery.com>
7024
7025 * cp-tree.h (UNIQUELY_DERIVED_FROM_P): Use lookup base.
7026 (ACCESSIBLY_UNIQUELY_DERIVED_FROM_P): Likewise.
7027 (PUBLICLY_UNIQUELY_DERIVED_FROM_P: Likewise.
7028 (DERIVED_FROM_P): Likewise.
7029 (enum base_access): Renumber, add ba_quiet bit mask.
7030 (get_binfo): Remove.
7031 (get_base_distance): Remove.
7032 (binfo_value): Remove.
7033 (ACCESSIBLY_DERIVED_FROM_P): Remove.
7034 * call.c (standard_conversion): Use lookup_base.
7035 * class.c (strictly_overrides): Likewise.
7036 (layout_virtual_bases): Likewise.
7037 (warn_about_ambiguous_direct_bases): Likewise.
7038 (is_base_of_enclosing_class): Likewise.
7039 (add_vcall_offset_vtbl_entries_1): Likewise.
7040 * cvt.c (build_up_reference): Adjust comment.
7041 * init.c (build_member_call): Reformat.
7042 * search.c (get_binfo): Remove.
7043 (get_base_distance_recursive): Remove.
7044 (get_base_distance): Remove.
7045 (lookup_base_r): Tweak.
7046 (lookup_base): Add ba_quiet control. Complete the types here.
7047 (covariant_return_p): Use lookup_base.
7048 * tree.c (binfo_value): Remove.
7049 (maybe_dummy_object): Use lookup_base.
7050 * typeck.c (build_static_cast): Use lookup_base.
7051 (get_delta_difference): Likewise.
7052 * typeck2.c (binfo_or_else): Use lookup_base.
7053 (build_scoped_ref): Add back error_mark_check.
7054 (build_m_component_ref): Use lookup_base.
7055
d3945f0a
JM
70562001-11-29 Joseph S. Myers <jsm28@cam.ac.uk>
7057
7058 * Make-lang.in (c++.generated-manpages): New dummy target.
7059
d2a6f3c0 70602001-11-27 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
ac79cd5a
RK
7061
7062 * Make-lang.in (cp-lang.o): Depends on c-common.h.
7063 * cp-lang.c (c-common.h): Include.
7064 (LANG_HOOKS_EXPAND_CONSTANT, LANG_HOOKS_SAFE_FROM_P): New hooks.
7065 * decl.c (cxx_init_decl_processing): Don't set lang_safe_from_p.
7066 * expr.c (init_cplus_expand): Don't set lang_expand_constant.
7067
4d6baafa
NB
70682001-11-26 Neil Booth <neil@daikokuya.demon.co.uk>
7069
7070 * decl2.c (c_language): Move to c-common.c.
7071 * lex.c (cxx_post_options, cxx_init_options): Use c-common.c
7072 functions.
7073 (cxx_init): Update.
7074
5b0c5896
JM
70752001-11-26 Jason Merrill <jason@redhat.com>
7076
7077 * call.c (joust): Remove COND_EXPR hack.
7078
4bdd26e6
AH
70792001-11-25 Aldy Hernandez <aldyh@redhat.com>
7080
195a5def 7081 * search.c (lookup_base_r): Declare bk in variable declaration
4bdd26e6 7082 space.
33bd39a2 7083
338d90b8
NS
70842001-11-25 Nathan Sidwell <nathan@codesourcery.com>
7085
7086 PR g++/3145
7087 * class.c (build_vbase_pointer): Remove.
7088 (build_vbase_path): Remove.
7089 (build_base_path): New function.
7090 * cp-tree.h (base_access, base_kind): New enumerations.
7091 (build_base_path): Declare.
7092 (convert_pointer_to_real): Remove.
7093 (convert_pointer_to): Remove.
7094 (lookup_base): Declare.
7095 (convert_pointer_to_vbase): Remove.
7096 * call.c (build_scoped_method_call): Use lookup_base &
7097 build_base_path instead of convert_pointer_to_real,
7098 get_base_distance & get_binfo.
7099 (build_over_call): Likewise.
7100 * cvt.c (cp_convert_to_pointer): Likewise.
7101 (convert_to_pointer_force): Likewise.
7102 (build_up_reference): Likewise.
7103 (convert_pointer_to_real): Remove.
7104 (convert_pointer_to): Remove.
7105 * init.c (dfs_initialize_vtbl_ptrs): Use build_base_path
7106 instead of convert_pointer_to_vbase & build_vbase_path.
7107 (emit_base_init): Use build_base_path instead of
7108 convert_pointer_to_real.
7109 (expand_virtual_init): Lose unrequired conversions.
7110 (resolve_offset_ref): Use lookup_base and build_base_path
7111 instead of convert_pointer_to.
7112 * rtti.c (build_dynamic_cast_1): Use lookup_base &
7113 build_base_path instead of get_base_distance & build_vbase_path.
7114 * search.c (get_vbase_1): Remove.
7115 (get_vbase): Remove.
7116 (convert_pointer_to_vbase): Remove.
07f521fc 7117 (lookup_base_r): New function.
338d90b8
NS
7118 (lookup_base): New function.
7119 * typeck.c (require_complete_type): Use lookup_base &
7120 build_base_path instead of convert_pointer_to.
7121 (build_component_ref): Likewise.
7122 (build_x_function_call): Likewise.
7123 (get_member_function_from_ptrfunc): Likewise.
7124 (build_component_addr): Likewise.
7125 * typeck2.c (build_scoped_ref): Likewise.
7126
89d684bb
BM
71272001-11-22 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
7128
7129 * cp-tree.h (CP_TYPE_QUALS): Removed.
7130 * decl.c (cxx_init_decl_processing): Don't set lang_dump_tree.
33bd39a2 7131 * cp-lang.c: Set LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN and
89d684bb 7132 LANG_HOOKS_TREE_DUMP_TYPE_QUALS_FN.
33bd39a2 7133 * dump.c (cp_dump_tree): Use void* dump_info argument to match
89d684bb
BM
7134 lang-hooks prototype.
7135 * call.c, cp-tree.h, cvt.c, decl.c, init.c, mangle.c, method.c, pt.c,
7136 rtti.c, semantics.c, tree.c, typeck.c, typeck2.c: All references to
7137 CP_TYPE_QUALS changed to cp_type_quals.
7138 * Make-lang.in: References to c-dump.h changed to tree-dump.h.
7139 (CXX_C_OBJS): Remove c-dump.o.
7140
12eb9f93 71412001-11-21 Mark Mitchell <mark@codesourcery.com>
2d2e8123
MM
7142
7143 PR c++/3637
12eb9f93
MM
7144 * pt.c (lookup_template_class): Ensure that all specializations
7145 are registered on the list corresponding to the most general
7146 template.
7147
71482001-11-20 Mark Mitchell <mark@codesourcery.com>
7149
2d2e8123 7150 * call.c (non_reference): Add documentation.
33bd39a2 7151 (convert_class_to_reference): Do not strip reference types
2d2e8123
MM
7152 from conversion operators.
7153 (maybe_handle_ref_bind): Simplify.
7154 (compare_ics): Correct handling of references.
7155
78a40378
MM
71562001-11-19 John Wilkinson <johnw@research.att.com>
7157
7158 * dump.c (dump_op): New function.
7159 (cp_dump_tree): Dump CLASSTYPE_TEMPLATE_SPECIALIZATION. Use
7160 dump_op. Dump DECL_MUTABLE, access and staticness for VAR_DECLs.
7161 DECL_PURE_VIRTUAL_P, DECL_VIRTUAL_P,
33bd39a2 7162
78a40378
MM
71632001-11-19 Mark Mitchell <mark@codesourcery.com>
7164
7165 PR4629
7166 * semantics.c (finish_sizeof): Make sure that expression created
7167 while processing a template do not have a type.
7168 (finish_alignof): Likewise.
7169 * typeck.c (c_sizeof): Likewise.
7170 (expr_sizeof): Likewise.
7171
22703ccc
NB
71722001-11-18 Neil Booth <neil@daikokuya.demon.co.uk>
7173
7174 * lex.c (cxx_finish): Call c_common_finish.
7175 (finish_parse): Remove.
7176
b3faacfd
KL
71772001-11-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
7178
7179 * decl.c (create_array_type_for_decl): Check if NAME is NULL_TREE
7180 when displaying error message about missing array bounds.
7181
873ff987
KL
71822001-11-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
7183
7184 * mangle.c (write_expression): Handle CAST_EXPR, STATIC_CAST_EXPR,
7185 CONST_CAST_EXPR.
7186 * operators.def: Add CAST_EXPR, STATIC_CAST_EXPR, CONST_CAST_EXPR.
7187
08f3a861
NB
71882001-11-16 Neil Booth <neil@daikokuya.demon.co.uk>
7189
7190 * cp-tree.h (print_class_statistics): Restore.
7191
8a2b77e7
JM
71922001-11-15 Jason Merrill <jason@redhat.com>
7193
3b1a4132
JM
7194 * method.c (use_thunk): Don't emit debugging information for thunks.
7195
8a2b77e7
JM
7196 * parse.y: Add ... IDENTIFIER SCOPE and ... PTYPENAME SCOPE expansions.
7197 * decl.c (make_typename_type): Handle getting a class template.
7198 * search.c (lookup_field_r): A class template is good enough for
7199 want_type.
7200
7201 * call.c (convert_like_real): Only use cp_convert for the bad part.
7202 (standard_conversion): Also allow bad int->enum.
7203 * typeck.c (ptr_reasonably_similar): Also allow functions to
7204 interconvert. Pointers to same-size integers are reasonably
7205 similar.
7206
7207 * cvt.c (convert_to_void): If we build a new COND_EXPR, always
7208 give it void type.
7209
36a68fe7
NS
72102001-11-15 Nathan Sidwell <nathan@codesourcery.com>
7211
7212 PR g++/3154
7213 * init.c (sort_base_init): Remove unreachable code.
7214 (expand_member_init): Adjust comment to reflect reality. Simplify
7215 and remove unreachable code.
7216
f5e99456
NB
72172001-11-15 Neil Booth <neil@daikokuya.demon.co.uk>
7218
7219 * cp-tree.h (init_reswords, cxx_init_decl_processing): New.
7220 (cxx_init): Update prototype.
7221 * decl.c (init_decl_processing): Rename. Move null node init
7222 to its creation time.
7223 * lex.c (cxx_init_options): Update.
7224 (cxx_init): Combine with old init_parse; also call
7225 cxx_init_decl_processing.
7226
fe5b6c1c
RS
72272001-11-14 Richard Sandiford <rsandifo@redhat.com>
7228
8a2b77e7
JM
7229 * decl.c (check_initializer): Try to complete the type of an
7230 array element before checking whether it's complete. Don't
7231 complain about arrays with complete element types but an
7232 unknown size.
7233 (cp_finish_decl): Build the hierarchical constructor before
7234 calling maybe_deduce_size_from_array_init.
fe5b6c1c 7235
77bd67cb
JM
72362001-11-14 Joseph S. Myers <jsm28@cam.ac.uk>
7237
7238 * Make-lang.in: Change all uses of $(manext) to $(man1ext).
7239
b02922a4
NS
72402001-11-13 Nathan Sidwell <nathan@codesourcery.com>
7241
7242 PR g++/4206
7243 * parse.y (already_scoped_stmt): Remove.
7244 (simple_stmt, WHILE & FOR): Use implicitly_scoped_stmt.
7245
abfc1ef6
L
72462001-11-12 H.J. Lu <hjl@gnu.org>
7247
195a5def 7248 * cvt.c (ocp_convert): Don't warn the address of a weak
abfc1ef6
L
7249 function is always `true'.
7250
5d69f816
NB
72512001-11-09 Neil Booth <neil@daikokuya.demon.co.uk>
7252
7253 * cp-lang.c (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE,
7254 LANG_HOOKS_PRINT_STATISTICS, LANG_HOOKS_PRINT_XNODE,
7255 LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_SET_YYDEBUG): Override.
7256 * cp-tree.h (print_class_statistics): Remove.
7257 (cxx_print_statistics, cxx_print_xnode, cxx_print_decl, cxx_print_type,
7258 cxx_print_identifier, cxx_set_yydebug): New.
7259 * lex.c (set_yydebug): Rename c_set_yydebug.
7260 * ptree.c (print_lang_decl, print_lang_type, print_lang_identifier,
7261 lang_print_xnode): Rename.
7262 * tree.c (print_lang_statistics): Rename.
7263
4fdc14ca
KG
72642001-11-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7265
7266 * class.c (dump_array): Fix format specifier warning.
7267
3ac88239
NB
72682001-11-09 Neil Booth <neil@daikokuya.demon.co.uk>
7269
7270 * cp-lang.c (LANG_HOOKS_NAME): Override.
7271 (struct lang_hooks): Constify.
7272 * lex.c (cxx_init_options): Update.
7273 (lang_identify): Remove.
33bd39a2 7274 * parse.y (language_string): Remove.
3ac88239 7275
b21d216c
AF
72762001-11-08 Andreas Franck <afranck@gmx.de>
7277
7278 * Make-lang.in (CXX_INSTALL_NAME, GXX_CROSS_NAME,
7279 DEMANGLER_CROSS_NAME): Handle program_transform_name the way
7280 suggested by autoconf.
7281 (GXX_TARGET_INSTALL_NAME, CXX_TARGET_INSTALL_NAME): Define.
7282 (c++.install-common): Use the transformed target alias names.
7283
d23c55c2
NB
72842001-11-06 Neil Booth <neil@cat.daikokuya.demon.co.uk>
7285
7286 * Make-lang.in: Update.
7287 * cp-lang.c: Include langhooks-def.h.
7288
2a2b1d56
KL
72892001-11-04 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
7290
7291 * pt.c (tsubst_copy): Call tsubst for TYPEOF_EXPR.
7292
76648a8b
KG
72932001-11-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7294
7295 * lex.c (copy_lang_type): Add static prototype.
7296
fccef71e
KL
72972001-11-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
7298
7299 * pt.c (unify): Handle SCOPE_REF.
7300
19989812
JJ
73012001-11-01 Jakub Jelinek <jakub@redhat.com>
7302
7303 * tree.c (cp_copy_res_decl_for_inlining): Adjust
7304 DECL_ABSTRACT_ORIGIN for the return variable.
7305
5b7874aa
ZW
73062001-10-31 Zack Weinberg <zack@codesourcery.com>
7307
7308 * Make-lang.in: Replace $(INTL_TARGETS) with po-generated.
7309
306ef644
JM
73102001-10-28 Joseph S. Myers <jsm28@cam.ac.uk>
7311
7312 * ChangeLog.1, ChangeLog.2, ChangeLog, class.c, decl2.c, search.c,
7313 semantics.c, spew.c: Fix spelling errors.
7314
76543000
KL
73152001-10-27 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
7316
7317 * decl2.c (validate_nonmember_using_decl): Handle NAMESPACE_DECL.
7318
37207ee7
ZW
73192001-10-25 Zack Weinberg <zack@codesourcery.com>
7320
7321 * cp-lang.c: Redefine LANG_HOOKS_CLEAR_BINDING_STACK to
7322 pop_everything.
7323
d2a6f3c0 73242001-10-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
8ac61af7
RK
7325
7326 * cp-lang.c (cxx_get_alias_set): New function.
7327 Point LANG_HOOKS_GET_ALIAS_SET to it.
7328
f1e09fa2 73292001-10-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
b8c6534b
KL
7330
7331 * cp-tree.def (UNBOUND_CLASS_TEMPLATE): New tree node.
7332 * cp-tree.h (make_unbound_class_template): Prototype new function.
7333 * decl.c (make_unbound_class_template): New function.
7334 * decl2.c (arg_assoc_template_arg): Handle UNBOUND_CLASS_TEMPLATE.
7335 * error.c (dump_type): Likewise.
7336 * mangle.c (write_type): Likewise.
7337 * parse.y (template_parm): Likewise.
7338 (template_argument): Use make_unbound_class_template.
7339 * pt.c (convert_template_argument): Handle UNBOUND_CLASS_TEMPLATE.
7340 (tsubst): Likewise.
7341 (tsubst_copy): Likewise.
7342 (unify): Likewise.
7343 * tree.c (walk_tree): Likewise.
7344 * typeck.c (comptypes): Likewise.
7345
0df6c2c7
KG
73462001-10-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7347
7348 * xref.c (GNU_xref_member): Use safe-ctype macros and/or fold
7349 extra calls into fewer ones.
7350
97055d5c
AO
73512001-10-18 Alexandre Oliva <aoliva@redhat.com>
7352
7353 * decl.c (duplicate_decls): Propagate DECL_UNINLINABLE.
7354 Warn when merging inline with attribute noinline.
7355 (start_decl, start_function): Warn if inline and attribute
7356 noinline appear in the same declaration.
7357
b5823a44
L
73582001-10-16 H.J. Lu <hjl@gnu.org>
7359
7360 * cp-tree.h (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Defined
7361 for tree checking disabled.
7362
dc8ad298
HPN
73632001-10-16 Hans-Peter Nilsson <hp@axis.com>
7364
7365 * cp-tree.h (VFIELD_NAME_FORMAT) [NO_DOLLAR_IN_LABEL &&
7366 NO_DOT_IN_LABEL]: Adjust to match VFIELD_NAME.
7367
d9f818d9
RS
73682001-10-15 Richard Sandiford <rsandifo@redhat.com>
7369
7370 * pt.c (UNIFY_ALLOW_MAX_CORRECTION): Define.
7371 (unify): Only handle MINUS_EXPR specially if the above flag is set
7372 and the subtracted constant is 1. Clear the flag on recursive calls.
7373 Set it when unifying the maximum value in an INTEGER_TYPE's range.
7374
e1be26f4
RS
73752001-10-15 Richard Sandiford <rsandifo@redhat.com>
7376
7377 * decl.c (bad_specifiers): Don't allow exception specifications
7378 on any typedefs.
7379
a5da89c6
NB
73802001-10-14 Neil Booth <neil@daikokuya.demon.co.uk>
7381
7382 * cp/lex.c (init_cp_pragma): Similarly.
7383
4f96ff63
KL
73842001-10-13 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
7385
7386 * pt.c (lookup_template_class): Build complete template arguments
7387 for BOUND_TEMPLATE_TEMPLATE_PARM.
7388
11e74ea6
KL
73892001-10-12 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
7390
7391 * cp-tree.h (TYPE_BINFO): Update comment.
7392 (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): New macro.
7393 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Use template_info.
7394 (TYPENAME_TYPE_FULLNAME): Use TYPE_FIELDS.
7395 (copy_type): Prototype new function.
7396 * lex.c (copy_lang_decl): Gather tree node statistics.
7397 (copy_lang_type): New function.
7398 (copy_type): Likewise.
7399 (cp_make_lang_type): Create lang_type for
7400 BOUND_TEMPLATE_TEMPLATE_PARM. Set TYPE_BINFO for TYPENAME_TYPE
7401 and BOUND_TEMPLATE_TEMPLATE_PARM.
7402 * pt.c (tsubst): Use copy_type instead of copy_node.
7403 * search.c (lookup_field_1): Ignore TYPENAME_TYPE.
7404
f5d47abd
KL
74052001-10-12 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
7406
7407 * pt.c (determine_specialization): Ignore functions without
7408 DECL_TEMPLATE_INFO.
7409
e60505a5
NS
74102001-10-12 Nathan Sidwell <nathan@codesourcery.com>
7411
7412 PR g++/4476
7413 * typeck2.c (abstract_virtuals_error): Ignore incomplete classes.
7414
6f32162a
JM
74152001-10-11 Jason Merrill <jason_merrill@redhat.com>
7416
7417 * typeck2.c (store_init_value): Don't re-digest a bracketed
7418 initializer.
7419
7420 * class.c (finish_struct_anon): Use TYPE_ANONYMOUS_P instead of
7421 ANON_AGGR_TYPE_P.
7422
4a8d0c9c
RH
74232001-10-11 Richard Henderson <rth@redhat.com>
7424
7425 * class.c (build_vtable_entry_ref): Create a VTABLE_REF instead
7426 of an asm statement.
7427 (build_vtbl_ref_1): Split out from build_vtbl_ref.
7428 (build_vfn_ref): Use it to handle vtable descriptors before
7429 calling build_vtable_entry_ref.
7430 * decl2.c (output_vtable_inherit): Use assemble_vtable_inherit.
7431
84b72302
RH
74322001-10-10 Richard Henderson <rth@redhat.com>
7433
37207ee7 7434 * parse.y (asm_operand): Allow named operands.
84b72302 7435 * semantics.c (finish_asm_stmt): Tweek for changed location
4639c5c6 7436 of the operand constraint.
84b72302 7437
48c8b0be 74382001-10-09 Jason Merrill <jason_merrill@redhat.com>
72a08131
JM
7439
7440 * call.c (standard_conversion): Add bad conversion between
7441 integers and pointers.
7442 (convert_like_real): Don't use convert_for_initialization for bad
7443 conversions; complain here and use cp_convert.
7444 (build_over_call): Don't handle bad conversions specially.
7445 (perform_implicit_conversion): Allow bad conversions.
7446 (can_convert_arg_bad): New fn.
7447 * cp-tree.h: Declare it.
7448 * typeck.c (convert_for_assignment): Use it.
7449 (ptr_reasonably_similar): Any target type is similar to void.
7450
19551f29
AO
74512001-10-08 Alexandre Oliva <aoliva@redhat.com>
7452
7453 * Make-lang.in (CXX_OBJS): Added cp-lang.o.
7454 (cp/cp-lang.o): New rule.
7455 * cp-tree.h: Declare hooks.
7456 * tree.c: Make hooks non-static.
7457 (init_tree): Don't initialize hooks here.
7458 * lex.c: Likewise. Move definition of lang_hooks to...
7459 * cp-lang.c: ... new file.
7460
31ed8fea
RH
74612001-10-08 Richard Henderson <rth@redhat.com>
7462
7463 * cp-tree.h (struct lang_decl_flags): Remove declared_inline.
7464 (DECL_DECLARED_INLINE_P): Use the bit in struct c_lang_decl.
7465
8b60264b
KG
74662001-10-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7467
7468 * class.c (build_vtable_entry_ref): Const-ify.
7469 * decl.c (predefined_identifier,
37207ee7 7470 initialize_predefined_identifiers): Likewise.
8b60264b
KG
7471 * init.c (build_new_1): Likewise.
7472 * lex.c (cplus_tree_code_type, cplus_tree_code_length, resword):
7473 Likewise.
7474
bc4c7159
AO
74752001-10-05 Alexandre Oliva <aoliva@redhat.com>
7476
7477 * optimize.c (struct inline_data): Moved to ../tree-inline.c.
7478 (INSNS_PER_STMT): Likewise.
7479 (remap_decl, remap_block, copy_scopy_stmt, copy_body_r): Likewise.
7480 (copy_body, initialize_inlined_parameters): Likewise.
7481 (declare_return_variable, inlinable_function_p): Likewise.
7482 (expand_call_inline, expand_calls_inline): Likewise.
7483 (optimize_inline_calls, clone_body): Likewise.
7484 * tree.c (walk_tree): Moved to ../tree-inline.c.
7485 (walk_tree_without_duplicates): Likewise.
7486 (copy_tree_r, remap_save_expr): Likewise.
7487
25af8512
AO
74882001-10-04 Alexandre Oliva <aoliva@redhat.com>
7489
7490 * Make-lang.in (cp/decl.o, cp/tree.o): Depend on tree-inline.h.
7491 (cp/pt.o, cp/semantics.o, cp/optimize.o): Likewise.
7492 * cp-tree.h (lang_decl): Moved inlined_fns to tree_decl.
7493 (TREE_READONLY_DECL_P, DECL_INLINED_FNS): Moved to ../tree.h.
7494 (flag_inline_trees): Moved declaration to ../tree-inline.h.
7495 (walk_tree): Moved declaration to ../tree-inline.h.
7496 (walk_tree_without_duplicates, copy_tree_r): Likewise.
7497 (remap_save_expr): Likewise.
7498 * decl.c: Include tree-inline.h.
7499 (lang_mark_tree): Don't mark inlined_fns.
7500 * decl2.c (flag_inline_trees): Moved defn to ../tree-inline.c.
7501 * optimize.c: Include tree-inline.h.
7502 (optimize_inline_calls): Move declaration to ../tree.h, as
7503 non-static.
7504 (remap_decl): Use language-independent constructs and hooks.
7505 (remap_block, copy_body_r, declare_return_variable): Likewise.
7506 (inlinable_function_p): Likewise. Don't test for
7507 DECL_LANG_SPECIFIC before DECL_INLINED_FNS as inlined_fns is
7508 no longer language-specific.
7509 (optimize_inline_calls): Likewise. Make it non-static. Moved
7510 call of dump_function to...
7511 (optimize_function): Here...
7512 (clone_body): New function, extracted from...
7513 (maybe_clone_body): ... here. Build decl_map locally and pass
7514 it on to clone_body.
7515 * pt.c, semantics.c: Include tree-inline.h.
7516 * tree.c: Likewise.
7517 (cp_walk_subtrees): New language-specific hook for tree inlining.
7518 (cp_cannot_inline_tree_fn, cp_add_pending_fn_decls,
7519 cp_is_overload_p, cp_auto_var_in_fn_p,
7520 cp_copy_res_decl_for_inlining): Likewise.
7521 (walk_tree): Move language-specific constructs into...
7522 (cp_walk_subtrees): this new function.
7523 (copy_tree_r): Use language-independent constructs and hooks.
7524 (init_tree): Initialize tree inlining hooks.
7525 (remap_save_expr): Adjust prototype so that the declaration
7526 does not require the definition of splay_tree.
7527
6a4af81f
JDA
75282001-10-03 John David Anglin <dave@hiauly1.hia.nrc.ca>
7529
7530 * rtti.c (get_tinfo_decl): Call typeinfo_in_lib_p with the type used
7531 to build the declaration instead of the declaration itself.
7532
0caee1c6
JM
75332001-10-02 Jason Merrill <jason_merrill@redhat.com>
7534
48c8b0be
JM
7535 * decl2.c (cxx_decode_option): Add 'else'.
7536
0caee1c6
JM
7537 * spew.c (end_input): No longer static.
7538 * cp-tree.h: Declare it.
7539 * parse.y (datadef): Add "error END_OF_SAVED_INPUT" expansion.
7540
80a497e4
JM
75412001-10-02 Joseph S. Myers <jsm28@cam.ac.uk>
7542
7543 * call.c (build_over_call), typeck.c (build_function_call_real):
7544 Pass type attributes to check_function_format rather than name or
7545 assembler name. Don't require there to be a name or assembler
7546 name to check formats.
7547
6431177a
JM
75482001-10-02 Joseph S. Myers <jsm28@cam.ac.uk>
7549
7550 * decl.c (init_decl_processing): Don't call
7551 init_function_format_info. Initialize lang_attribute_table
7552 earlier.
7553 (builtin_function): Call decl_attributes.
7554 (insert_default_attributes): New.
7555
55b3d665
JM
75562001-10-01 Jason Merrill <jason_merrill@redhat.com>
7557
7558 * decl.c (grokdeclarator): Copy array typedef handling from C
7559 frontend.
7560
7561 * decl.c (grokdeclarator): Copy too-large array handling from C
7562 frontend.
7563
9f57ca19
AO
75642001-09-29 Alexandre Oliva <aoliva@redhat.com>
7565
7566 * config-lang.in (target_libs): Added target-gperf, so that we
7567 don't try to build it if C++ is disabled.
7568
749ced52
ZW
75692001-09-23 Zack Weinberg <zack@codesourcery.com>
7570
7571 * Make-lang.in (CXX_OBJS): Take out cp/errfn.o.
7572 (cp/errfn.o): Delete rule.
7573 (cp/error.o): Depend on flags.h.
7574 * errfn.c: Delete file.
7575 * cp-tree.h: Declare warn_deprecated. Remove definitions of
7576 TFF_NAMESPACE_SCOPE, TFF_CLASS_SCOPE, TFF_CHASE_NAMESPACE_ALIAS,
7577 and TFF_TEMPLATE_DEFAULT_ARGUMENTS. #define cp_error, cp_warning,
7578 cp_pedwarn, and cp_compiler_error to error, warning, pedwarn, and
7579 internal_error respectively. Make cp_deprecated into a macro.
7580 Don't define cp_printer typedef or declare cp_printers.
7581 * error.c: Include flags.h.
7582 Delete: struct tree_formatting_info, print_function_argument_list,
7583 print_declaration, print_expression, print_function_declaration,
7584 print_function_parameter, print_type_id, print_cv_qualifier_seq,
7585 print_type_specifier_seq, print_simple_type_specifier,
7586 print_elaborated_type_specifier, print_rest_of_abstract_declarator,
7587 print_parameter_declaration_clause, print_exception_specification,
7588 print_nested_name_specifier, and definition of cp_printers.
7589 (locate_error): New function.
7590 (cp_error_at, cp_warning_at, cp_pedwarn_at): Moved here and
7591 rewritten in terms of locate_error and diagnostic.c.
7592 (cp_tree_printer): Rename cp_printer; wire up to *_to_string
7593 instead of deleted print_* routines. Handle %C, %L, %O, %Q also.
7594 (init_error): Adjust to match.
7595
d2a6f3c0 75962001-09-22 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
bb9f8221
RK
7597
7598 * Make-lang.in (CXX_C_OBJS): Add attribs.o.
7599
67231816
RH
76002001-09-21 Richard Henderson <rth@redhat.com>
7601
7602 * class.c (set_vindex): Mind TARGET_VTABLE_USES_DESCRIPTORS.
7603 (build_vtbl_initializer): Likewise.
7604 (build_vfn_ref): New.
7605 * cp-tree.h: Declare it.
7606 * call.c (build_over_call): Use it.
7607 * decl2.c (mark_vtable_entries): Mark FDESC_EXPR.
7608 * typeck.c (get_member_function_from_ptrfunc): Mind descriptors.
7609
d2a6f3c0 76102001-09-21 J"orn Rennecke <amylaar@redhat.com>
c9574c9f
R
7611
7612 * decl.c (grokdeclarator): Use C syntax for attr_flags declaration.
7613
91d231cb
JM
76142001-09-21 Joseph S. Myers <jsm28@cam.ac.uk>
7615
7616 Table-driven attributes.
7617 * decl.c: Rename DECL_MACHINE_ATTRIBUTES to DECL_ATTRIBUTES.
7618 * decl2.c (cplus_decl_attributes): Only take one attributes
7619 parameter.
7620 * cp-tree.c (cplus_decl_attributes): Update prototype.
7621 * class.c (finish_struct), decl.c (start_decl, start_function),
7622 decl2.c (grokfield), friend.c (do_friend), parse.y
7623 (parse_bitfield): Update calls to cplus_decl_attributes.
7624 * decl.c (grokdeclarator): Take a pointer to a single ordinary
7625 attribute list.
7626 * decl.h (grokdeclarator): Update prototype.
7627 * decl2.c (grokfield): Take a single ordinary attribute list.
7628 * friend.c (do_friend): Likewise.
7629 * decl.c (shadow_tag, groktypename, start_decl,
7630 start_handler_parms, grokdeclarator, grokparms, start_function,
7631 start_method), decl2.c (grokfield, grokbitfield, grokoptypename),
7632 parse.y (parse_field, parse_bitfield, component_decl_1), pt.c
7633 (process_template_parm, do_decl_instantiation): Pass single
7634 ordinary attribute lists around.
7635 * decl.c (grokdeclarator): Correct handling of nested attributes.
7636 Revert the patch
7637 1998-10-18 Jason Merrill <jason@yorick.cygnus.com>
7638 * decl.c (grokdeclarator): Embedded attrs bind to the right,
7639 not the left.
7640 .
7641 * cp-tree.h (cp_valid_lang_attribute): Remove declaration
7642 (cp_attribute_table): Declare.
7643 * decl.c (valid_lang_attribute): Don't define.
7644 (lang_attribute_table): Define.
7645 (init_decl_processing): Initialize lang_attribute_table instead of
7646 valid_lang_attribute.
7647 * tree.c (cp_valid_lang_attribute): Remove.
7648 (handle_java_interface_attribute, handle_com_interface_attribute,
7649 handle_init_priority_attribute): New functions.
7650 (cp_attribute_table): New array.
7651 * decl2.c (import_export_class): Don't use
7652 targetm.valid_type_attribute.
7653
a1bda5f1
GDR
76542001-09-15 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
7655
e6b9638b
JM
7656 * Make-lang.in (cp/error.o): Depend on real.h
7657 * error.c: #include "real.h"
a1bda5f1 7658
cb6edbcb
KG
76592001-09-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7660
7661 * mangle.c (mangle_conv_op_name_for_type): Use concat in lieu of
7662 xmalloc/strcpy/strcat.
7663
83182544
KG
76642001-09-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7665
7666 * decl.c (warn_extern_redeclared_static, cp_make_fname_decl):
7667 Const-ification.
7668 * pt.c (tsubst_decl): Likewise.
7669
40008eda
KG
76702001-09-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7671
7672 * decl2.c (lang_f_options): Const-ification.
7673 * lex.c (cplus_tree_code_name): Likewise.
7674 * spew.c (yyerror): Likewise.
7675
39e78d8b
NS
76762001-09-06 Nathan Sidwell <nathan@codesourcery.com>
7677
7678 PR c++/3986
7679 * class.c (force_canonical_binfo_r): Check & move an indirect
7680 primary base first.
7681 (force_canonical_binfo): Check that it's not already
7682 canonical.
7683 (mark_primary_virtual_base): Remove BINFO parameter.
7684 (mark_primary_bases): Adjust, set BINFO_LOST_PRIMARY_P here.
7685
6d0a3f67
NS
76862001-09-06 Nathan Sidwell <nathan@codesourcery.com>
7687
7688 Remove TYPE_NONCOPIED_PARTS.
7689 * cp-tree.h (CLASSTYPE_INLINE_FRIENDS): Map onto
7690 CLASSTYPE_PURE_VIRTUALS.
7691 (TYPE_RAISES_EXCEPTIONS): Map onto TYPE_BINFO.
7692 * class.c (duplicate_tag_error): Remove TYPE_NONCOPIED_PARTS.
72a08131 7693 (layout_class_type): Don't call fixup_inline_methods here ...
6d0a3f67
NS
7694 (finish_struct_1): ... call it here.
7695
4f8e1232
MM
76962001-09-04 Mark Mitchell <mark@codesourcery.com>
7697
7698 * decl.c (duplicate_decls): Remove code deadling with
7699 DECL_SAVED_INSNS.
7700 * decl2.c (finish_file): Likewise.
7701 * pt.c (instantiate_decl): Likewise.
7702 * semantics.c (expand_body): Don't defer local functions if
7703 they wouldn't be deferred for some other reason. Don't
7704 generate RTL for functions that will not be emitted.
7705 (genrtl_start_function): Remove code deadling with
7706 DECL_SAVED_INSNS.
7707 (genrtl_finish_function): Likewise.
7708
da86f08f
NS
77092001-09-04 Nathan Sidwell <nathan@codesourcery.com>
7710
7711 PR c++/4203
7712 * call.c (build_over_call): Do not optimize any empty base
7713 construction.
7714
38066e83
KL
77152001-08-31 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
7716
7717 * error.c (dump_template_decl): Output template parameters
7718 together with their specifiers.
7719 Output `class' prefix for template template parameter.
7720 (dump_decl): Fix formatting.
7721
598e9ba5 77222001-08-30 Kurt Garloff <garloff@suse.de>
749ced52 7723
598e9ba5
KG
7724 * optimize.c (inlinable_function_p): Allow only smaller single
7725 functions. Halve inline limit after reaching recursive limit.
749ced52 7726
f232e4a5
JR
77272001-08-30 Joern Rennecke <amylaar@redhat.com>
7728 Jason Merrill <jason_merrill@redhat.com>
7729
7730 * class.c (build_vtable_entry_ref): Subtract in char*, not
7731 ptrdiff_t.
7732
0213a355
JM
77332001-08-23 Jason Merrill <jason_merrill@redhat.com>
7734
7735 * tree.c (cp_build_qualified_type_real): Use get_qualified_type.
7736 (build_cplus_array_type): Use cp_build_qualified_type, not
7737 TYPE_MAIN_VARIANT, to get an unqualified version.
7738
7739 * decl2.c (grok_alignof): Lose.
7740 (build_expr_from_tree): Use expr_sizeof and c_alignof_expr.
7741 * typeck.c (c_alignof): Lose.
7742 * semantics.c (finish_sizeof, finish_alignof): New.
7743 * parse.y: Use them.
7744 * cp-tree.h: Declare them.
7745
fd10dd09
JM
77462001-08-22 Jason Merrill <jason_merrill@redhat.com>
7747
7748 * pt.c (tsubst_expr): Hand off to the TREE_CHAIN of a statement.
7749 Don't loop in COMPOUND_STMT, FOR_STMT or TRY_BLOCK.
7750 * tree.c (cp_statement_code_p): A TAG_DEFN is a statement.
7751
baeb4732
JJ
77522001-08-19 Jakub Jelinek <jakub@redhat.com>
7753
7754 * typeck2.c (add_exception_specifier): Only require complete type if
7755 not in processing template declaration.
7756
1c0cc57e
KG
77572001-08-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7758
7759 * decl.c: Cast argument to size_t, not HOST_WIDE_INT, in calls to
7760 GNU_xref_start_scope and GNU_xref_end_scope.
7761
7762 * tree.c (TYPE_HASH): Moved to ../tree.h.
7763
9a52d09b
MM
77642001-08-16 Mark Mitchell <mark@codesourcery.com>
7765
7766 * cvt.c (convert_to_void): Preserve TREE_SIDE_EFFECTS
7767 on COMPOUND_EXPRs.
7768
b5d1cbd2
RH
77692001-08-14 Richard Henderson <rth@redhat.com>
7770
7771 * class.c, cp-tree.h (build_vfn_ref): Remove.
7772 * call.c, rtti.c: Replace all refernces with build_vtbl_ref.
7773
63d6f87a
MM
77742001-08-13 Mark Mitchell <mark@codesourcery.com>
7775
7776 * call.c (build_over_call): Mark COMPOUND_EXPRs generated for
7777 empty class assignment as having side-effects to avoid
7778 spurious warnings.
7779
e78d8e51
ZW
77802001-08-13 Zack Weinberg <zackw@panix.com>
7781
7782 * Make-lang.in (cp/except.o): Add libfuncs.h to dependencies.
7783 * except.c: Include libfuncs.h.
7784
a60af04a
GDR
77852001-08-11 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
7786
7787 * decl.c (grokdeclarator): Clarify diagnostic message.
7788
3605b283
KL
77892001-08-13 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
7790
7791 * decl2.c (do_nonmember_using_decl): Replace using directive
7792 with using declaration in the error message.
7793
4d5f3fbd
KL
77942001-08-11 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
7795
7796 * pt.c (maybe_fold_nontype_arg): Use TREE_TYPE of ARG as the
7797 criterion to avoid rebuilding expression tree instead of
7798 processing_template_decl.
7799
07b2f2fd
JM
78002001-08-07 Jason Merrill <jason_merrill@redhat.com>
7801
7802 Support named return value optimization for inlines, too.
7803 * decl.c (finish_function): Nullify returns here.
7804 * semantics.c (genrtl_start_function): Not here.
7805 (cp_expand_stmt): Don't mess with CLEANUP_STMTs.
7806 (nullify_returns_r): No longer static. Just clear RETURN_EXPR.
7807 Also nullify the CLEANUP_STMT for the nrv.
7808 * cp-tree.h: Declare it.
7809 * optimize.c (declare_return_variable): Replace the nrv with the
7810 return variable.
7811 * typeck.c (check_return_expr): Be more flexible on alignment check.
7812 Ignore cv-quals when checking for a matching type.
7813
2cc07db4
RH
78142001-08-09 Richard Henderson <rth@redhat.com>
7815
7816 * decl2.c (finish_objects): Use target hooks instead of
7817 assemble_constructor and assemble_destructor.
7818
0ca179b2
JDA
78192001-08-08 John David Anglin <dave@hiauly1.hia.nrc.ca>
7820
7821 * g++spec.c (lang_specific_driver): Quote argument after `-Xlinker'.
7822
0830ae44
NS
78232001-08-07 Nathan Sidwell <nathan@codesourcery.com>
7824
7825 PR c++/3820
7826 Stop using TYPE_NONCOPIED_PARTS.
7827 * call.c (build_over_call): Be careful when copy constructing
7828 or assigning to an empty class.
7829 * class.c (check_bases_and_members): It has a
7830 COMPLEX_ASSIGN_REF if it has a vptr.
7831 (layout_class_type): Don't add empty class padding to
7832 TYPE_NONCOPIED_PARTS.
7833 (finish_struct_1): Don't add the VFIELD either.
7834 * cp-tree.h (TYPE_HAS_TRIVIAL_INIT_REF): Mention _copy_
7835 initialization.
7836
59a13e0f
JM
78372001-08-07 Jason Merrill <jason_merrill@redhat.com>
7838
7839 * tree.c (walk_tree): Walk siblings even if !walk_subtrees.
7840
47907859
RH
78412001-08-06 Richard Henderson <rth@redhat.com>
7842
7843 * decl2.c (finish_objects): Pass a symbol_ref and priority to
7844 assemble_{constructor,destructor}. Remove priority handling.
7845
eac69b8a
GDR
78462001-08-05 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
7847
7848 Don't allow template-id in using-declaration.
7849 * decl2.c (validate_nonmember_using_decl): Handle template-ids.
7850 (do_class_using_decl): Likewise.
7851
ef6e958a
NB
78522001-08-04 Neil Booth <neil@cat.daikokuya.demon.co.uk>
7853
7854 * cp/spew.c (read_token): No need to pop buffers.
7855
dff94ad7
SS
78562001-08-02 Stan Shebs <shebs@apple.com>
7857
7858 * cp-tree.h (FNADDR_FROM_VTABLE_ENTRY): Remove, no longer used.
7859 (fnaddr_from_vtable_entry): Remove decl.
7860 * method.c (use_thunk): Update comment.
7861
026c3f13
AC
78622001-08-01 Andrew Cagney <ac131313@redhat.com>
7863
7864 * repo.c (get_base_filename): Change return value to const char
7865 pointer.
7866
1dbb6023
NS
78672001-08-02 Nathan Sidwell <nathan@codesourcery.com>
7868
7869 Kill -fhonor-std.
7870 * NEWS: Document.
7871 * cp-tree.h (flag_honor_std): Remove.
7872 (CPTI_FAKE_STD): Remove.
7873 (std_node): Remove comment about it being NULL.
7874 (fake_std_node): Remove.
7875 * decl.c (in_fake_std): Remove.
7876 (walk_namespaces_r): Remove fake_std_node check.
7877 (push_namespace): Remove in_fake_std code.
7878 (pop_namespace): Likewise.
7879 (lookup_name_real): Remove fake_std_node check.
7880 (init_decl_processing): Always create std_node. Always add
7881 std:: things there.
7882 (builtin_function): Always put non '_' fns in std.
7883 * decl2.c (flag_honor_std): Remove.
7884 (lang_f_options): Remove honor-std.
7885 (unsupported_options): Add honor-std.
7886 (set_decl_namespace): Remove fake_std_node check.
7887 (validate_nonmember_using_decl): Likewise.
7888 (do_using_directive): Likewise.
7889 (handle_class_head): Likewise.
7890 * dump.c (cp_dump_tree): Likewise.
7891 * except.c (init_exception_processing): Adjust.
7892 * init.c (build_member_call): Remove fake_std_node check.
7893 (build_offset_ref): Likewise.
7894 * lang-options.h: Remove -fhonor-std, -fno-honor-std.
7895 * rtti.c (init_rtti_processing): Adjust.
7896
6ad7895a
APB
78972001-07-31 Alexandre Petit-Bianco <apbianco@redhat.com>
7898
7899 * tree.c (cp_tree_equal): WITH_CLEANUP_EXPR node to use its second
7900 operand while calling cp_tree_equal.
7901
befe7c61
NS
79022001-07-31 Nathan Sidwell <nathan@codesourcery.com>
7903
7904 The 3.0 ABI no longer has vbase pointer fields.
7905 * cp-tree.h (VBASE_NAME, VBASE_NAME_FORMAT, VBASE_NAME_P,
7906 FORMAT_VBASE_NAME): Remove.
7907 * method.c (do_build_copy_constructor): Adjust.
7908 (do_build_assign_ref): Adjust.
7909 * search.c (lookup_field_r): Adjust.
7910 * typeck.c (build_component_ref): Adjust.
7911
7912 The 3.0 ABI always has a vtable pointer at the start of every
7913 polymorphic class.
7914 * rtti.c (build_headof_sub): Remove.
7915 (build_headof): Adjust.
7916 (get_tinfo_decl_dynamic): No need to check flag_rtti
7917 here. Adjust.
7918 (create_real_tinfo_var): Explain why we need a hidden name.
7919
20dde49d
NS
79202001-07-31 Nathan Sidwell <nathan@codesourcery.com>
7921
7922 PR c++/3631
7923 * class.c (update_vtable_entry_for_fn): The fixed adjustment
7924 of a virtual thunk should be from declaring base.
7925
b7ad2f8b
NS
79262001-07-31 Nathan Sidwell <nathan@codesourcery.com>
7927
7928 * class.c (dfs_ctor_vtable_bases_queue_p): Always walk into
7929 the shared virtual base, so preserving inheritance graph order.
7930
57cb6d52
AJ
79312001-07-30 Andreas Jaeger <aj@suse.de>
7932
749ced52 7933 * decl2.c: Remove unused var global_temp_name_counter.
57cb6d52 7934
594280a3
RH
79352001-07-28 Richard Henderson <rth@redhat.com>
7936
7937 * method.c (pending_inlines): Remove.
7938
0ab142b0
NS
79392001-07-27 Nathan Sidwell <nathan@codesourcery.com>
7940
7941 * class.c (mark_primary_virtual_base): Don't adjust base
7942 offsets here.
7943 (dfs_unshared_virtual_bases): Adjust them here.
7944 (mark_primary_bases): Explain why we adjust at the end.
7945
d60d223b
NS
79462001-07-27 Nathan Sidwell <nathan@codesourcery.com>
7947
7948 * class.c (finish_struct_1): When copying the primary base's
7949 VFIELD, make sure we find it is at offset zero.
7950
db3ef87b
KL
79512001-07-26 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
7952
7953 * pt.c (tsubst_template_parms): Call maybe_fold_nontype_arg and
7954 tsubst_expr for default template arguments.
7955
312b7c9d
NS
79562001-07-26 Nathan Sidwell <nathan@codesourcery.com>
7957
d60d223b 7958 PR c++/3621
312b7c9d 7959 * spew.c (yylex): Only copy the token's lineno, if it is
838dfd8a 7960 nonzero.
312b7c9d 7961
648c2206
NS
79622001-07-26 Nathan Sidwell <nathan@codesourcery.com>
7963
7964 PR c++/3624
7965 * call.c (resolve_args): Simplify, call
7966 convert_from_reference.
7967 (build_new_op): Resolve and convert from reference ARG1
7968 earlier. Adjust ARG2 & ARG3 resolve and conversion.
7969
969fd501
NS
79702001-07-26 Nathan Sidwell <nathan@codesourcery.com>
7971
7972 * decl.c (last_function_parm_tags): Remove.
7973 (current_function_parm_tags): Remove.
7974 (init_decl_processing): Adjust.
7975 (start_function): Adjust.
7976 (store_parm_decls): Adjust.
7977
7978 PR c++/3152
7979 * decl.c (grokdeclarator): Detect when a function typedef is
7980 declaring a function, and create last_function_parms correctly.
7981
08ac397c 79822001-07-25 Jason Merrill <jason_merrill@redhat.com>
749ced52 7983
08ac397c
JM
7984 * call.c (joust): Only prefer a non-builtin candidate to a builtin
7985 one if they have the same signature.
7986
7987 * cvt.c (build_up_reference): Take DECL parm. Check TREE_STATIC on
7988 it rather than toplevel_bindings_p. Give it a mangled name if static.
7989 (convert_to_reference): Adjust.
7990 * decl2.c (get_temp_name): Lose.
7991 * mangle.c (mangle_ref_init_variable): New fn.
7992 (mangle_guard_variable): Strip the ref-init header.
7993 * cp-tree.h: Adjust.
7994 * decl.c (cp_finish_decl): Add the DECL_STMT after processing the
7995 initializer.
7996 (grok_reference_init): Always use DECL_INITIAL.
7997
40260429
NS
79982001-07-25 Nathan Sidwell <nathan@codesourcery.com>
7999
8000 PR c++/3416
8001 * call.c (build_conditional_expr): Recheck args after
8002 conversions.
8003 * cp-tree.h (build_conditional_expr): Move to correct file.
8004 * typeck.c (decay_conversion): Diagnose any unknown types
8005 reaching here.
8006 (build_binary_op): Don't do initial decay or default
8007 conversions on overloaded functions.
8008 (build_static_cast): Don't do a decay conversion here.
8009
ab085207
NS
80102001-07-25 Nathan Sidwell <nathan@codesourcery.com>
8011
8012 PR c++/3543
8013 * typeck.c (condition_conversion): Resolve an OFFSET_REF.
8014 * expr.c (cplus_expand_expr): An OFFSET_REF should never get here.
8015
0abe00c5
NS
80162001-07-25 Nathan Sidwell <nathan@codesourcery.com>
8017
8018 * class.c (build_vtbl_or_vbase_field): Remove, move into ...
8019 (create_vtbl_ptr): ... here.
8020
90b1ca2f
NS
80212001-07-25 Nathan Sidwell <nathan@codesourcery.com>
8022
8023 * class.c (build_vbase_offset_vbtl_entries): Look for
8024 non-primary base of which we are a sub vtable.
8025
cfe5dc31
PE
80262001-07-24 Phil Edwards <pme@sources.redhat.com>
8027
8028 * semantics.c (finish_this_expr): Remove unused code.
8029
7f54a851
NS
80302001-07-24 Nathan Sidwell <nathan@codesourcery.com>
8031
8032 Simplify rtti, now we've only one ABI.
8033 * cp-tree.h (cp_tree_index): Remove CPTI_TINFO_DECL_ID,
8034 CPTI_TINFO_VAR_ID.
8035 (tinfo_decl_id, tinfo_var_id): Remove.
8036 (get_typeid_1): Remove.
8037 * rtti.c
8038 (init_rtti_processing): Remove tinfo_decl_id & tinfo_var_id.
8039 (typeid_ok_p): New function.
8040 (build_type_id): Call typeid_ok_p. Don't call tinfo_from_decl.
8041 (get_tinfo_decl): Remove old abi documentation.
8042 (tinfo_from_decl): Remove.
8043 (get_type_id): Call typeid_ok_p. Absorb get_typeid_1.
8044 (get_typeid_1): Remove.
8045 (get_base_offset): Remove.
8046 (synthesize_tinfo_var): Absorb get_base_offset.
8047 (create_real_tinfo_var): Don't use tinfo_decl_id.
8048
18fee3ee
GS
80492001-07-23 Graham Stott <grahams@redhat.com>
8050
d30d6e7a 8051 * cp/class.c (type_requires_array_cookie): Fix use of uninitialized
18fee3ee
GS
8052 variable has_two_argument_delete_p.
8053
c4372ef4
NS
80542001-07-21 Nathan Sidwell <nathan@codesourcery.com>
8055
8056 Remove flag_vtable_thunk. It is always on for the 3.0 ABI.
8057 * cp-tree.h (CPTI_DELTA2_IDENTIFIER): Remove.
8058 (CPTI_INDEX_IDENTIFIER): Remove.
8059 (CPT_PFN_OR_DELTA2_IDENTIFIER): Remove.
8060 (delta2_identifier): Remove.
8061 (index_identifier): Remove.
8062 (pfn_or_delta2_identifier): Remove.
8063 (flag_vtable_thunks): Remove.
8064 (VTABLE_DELTA2_NAME): Remove.
8065 (VTABLE_INDEX_NAME): Remove.
8066 (FNADDR_FROM_VTABLE_ENTRY): Adjust.
8067 (vfunc_ptr_type_node): Adjust.
8068 (VTABLE_NAME_PREFIX): Adjust.
8069 (build_vfn_ref): Lose first parameter.
8070 (fixup_all_virtual_upcast_offsets): Remove.
8071 * decl.c (initialize_predefined_identifiers): Remove
8072 delta2_identifier, index_identifier, pfn_or_delta2_identifier.
8073 (init_decl_processing): Remove no-vtable-thunk code.
8074 * decl2.c (flag_vtable_thunks): Remove.
8075 (mark_vtable_entries): Remove no-vtable-thunk code.
8076 * error.c (dump_decl): Remove no-vtable-thunk code.
8077 (dump_expr): Adjust ptr to member function code.
8078 * init.c (initialize_vtable_ptrs): Remove no-vtable-thunk
8079 code.
8080 * rtti.c (build_headof): Remove no-vtable-thunk code.
8081 (get_tinfo_decl_dynamic): Adjust build_vfn_ref call.
8082 * search.c (get_base_distance): Remove expand_upcast_fixups case.
8083 (virtual_context) Remove.
8084 (expand_upcast_fixups): Remove.
8085 (fixup_virtual_upcast_offsets): Remove.
8086 (fixup_all_virtual_upcast_offsets): Remove.
8087 * typeck.c (get_member_function_from_ptrfunc): Remove
8088 no-vtable-thunk code.
8089 * call.c (build_over_call): Adjust call to build_vfn_ref.
8090 * class.c (build_vfn_ref): Lose first parameter. Remove
8091 no-vtable-thunk code.
8092 (build_rtti_vtbl_entries): Remove no-vtable-thunk code.
8093 (build_vtable_entry): Remove no-vtable-thunk code.
8094
3461fba7
NS
80952001-07-20 Nathan Sidwell <nathan@codesourcery.com>
8096
8097 Remove old-abi remnants. Remove comments about old abi
838dfd8a 8098 behavior. Remove references to 'new-abi' in comments.
3461fba7
NS
8099 * cp-tree.h: Adjust comments.
8100 (vbase_offsets_in_vtable_p): Delete.
8101 (vcall_offsets_in_vtable_p): Delete.
8102 (vptrs_present_everywhere_p): Delete.
8103 (all_overridden_vfuns_in_vtables_p): Delete.
8104 (merge_primary_and_secondary_vtables_p): Delete.
8105 (TYPE_CONTAINS_VPTR_P): Adjust.
8106 (VTT_NAME_PREFIX): Remove.
8107 (CTOR_VTBL_NAME_PREFIX): Remove.
8108 (init_vbase_pointers): Remove.
8109 * class.c: Adjust coments.
8110 (build_vbase_pointer_fields): Delete.
8111 (build_vbase_pointer): Remove old-abi code.
8112 (build_secondary_vtable): Likewise.
8113 (modify_all_vtables): Likewise.
8114 (create_vtable_ptr): Likewise.
8115 (layout_class_type): Likewise.
8116 (finish_struct_1): Likewise.
8117 (finish_vtbls): Likewise.
8118 (dfs_finish_vtbls): Delete.
8119 (build_vbase_offset_vtbl_entries): Remove old-abi code.
8120 * cvt.c: Adjust comments.
8121 * decl.c: Adjust comments.
8122 * decl2.c: Adjust comments.
8123 * init.c: Adjust comments.
8124 (construct_virtual_bases): Remove old-abi code.
8125 * lang-specs.h: Remove -fno-new-abi.
8126 * mangle.c: Adjust comments.
8127 * rtti.c: Adjust comments.
8128 (get_base_offset): Remove old-abi-code.
8129 * search.c: Adjust comments.
8130 (dfs_init_vbase_pointers): Remove.
8131 (dfs_vtable_path_unmark): Remove.
8132 (init_vbase_pointers): Remove.
8133 * semantics.c: Adjust comments.
8134 (emit_associated_thunks): Remove old-abi code.
8135 * typeck.c: Adjust comments.
8136
1c432a87
DB
81372001-07-20 Daniel Berlin <dan@cgsoftware.com>
8138
8139 * Make-lang.in (cp/optimize.o): Depend on $(PARAMS_H), not
8140 params.h.
8141
b7076960
MM
81422001-07-19 Mark Mitchell <mark@codesourcery.com>
8143
8144 * class.c (finish_struct_anon): Forbid nested classes.
8145
2b85879e
NB
81462001-07-19 Neil Booth <neil@daikokuya.demon.co.uk>
8147
8148 * decl2.c: Don't include dwarfout.h and dwarf2out.h.
8149 * optimize.c: Include debug.h.
8150 (maybe_clone_body): Use debug hook.
8151 * semantics.c: Include debug.h.
8152 (expand_body): Use debug hook.
8153
c60e94a7
NB
81542001-07-19 Neil Booth <neil@daikokuya.demon.co.uk>
8155
8156 * spew.c (read_token, yyerror): Remove CPP_INT, CPP_FLOAT cases.
8157
dbc957f1
MM
81582001-07-18 Mark Mitchell <mark@codesourcery.com>
8159
8160 * class.c (type_requires_array_cookie): New function.
8161 (check_methods): Don't try to figure out whether the type needs a
8162 cookie here.
8163 (check_bases_and_members): Set TYPE_VEC_NEW_USES_COOKIE here.
8164 * cp-tree.h (TYPE_VEC_DELETE_TAKES_SIZE): Remove.
8165 (TYPE_VEC_NEW_USES_COOKIE): Reimplement.
8166 * pt.c (instantiate_class_template): Don't set
8167 TYPE_VEC_DELETE_TAKES_SIZE.
8168 * NEWS: Document ABI changes from GCC 3.0.
57cb6d52 8169
7ba0b0f7 81702001-07-18 Xavier Delacour <xavier@fmaudio.net>,
749ced52 8171 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
7ba0b0f7
XD
8172
8173 * NEWS (Changes in GCC 3.0): Fix typo.
8174
59387d2e
JM
81752001-07-13 Joseph S. Myers <jsm28@cam.ac.uk>
8176
8177 * decl2.c (cplus_decl_attributes): Take a pointer to the node to
8178 which attributes are to be attached, and a flags argument. Update
8179 call to decl_attributes.
8180 (grokfield): Update call to decl_attributes.
8181 * class.c (finish_struct): Update call to cplus_decl_attributes.
8182 * cp-tree.h (cplus_decl_attributes): Update prototype.
8183 * decl.c (start_decl, grokdeclarator, start_function): Update
8184 calls to decl_attributes and cplus_decl_attributes.
8185 * friend.c (do_friend): Update call to cplus_decl_attributes.
8186 * parse.y (parse_bitfield): Update call to cplus_decl_attributes.
8187
7ed47c04
MM
81882001-07-12 Mark Mitchell <mark@codesourcery.com>
8189
8190 * decl.c (make_rtl_for_nonlocal_decl): Set DECL_C_HARD_REGISTER
8191 for `register' variables with an asm-specification.
8192
40b18c0a
MM
81932001-07-11 Mark Mitchell <mark@codesourcery.com>
8194
8195 * semantics.c (finish_asm_stmt): Mark the output operands
8196 to an asm addressable, if necessary.
8197
517c3b80
BE
81982001-07-11 Ben Elliston <bje@redhat.com>
8199
219670f1
BE
8200 * Revert this change -- there is a subtle bug.
8201
517c3b80
BE
8202 PR c++/80
8203 * decl.c (finish_enum): New "attributes" argument; pass it to
8204 cplus_decl_attributes. Use a narrower type if the enum is packed.
8205 * cp-tree.h (finish_enum): Adjust prototype.
8206 * parse.y (enum_head): New non-terminal.
8207 (structsp): Use it. Enums now may be preceded or followed by
8208 optional attributes -- pass their chained tree to finish_enum().
8209 * pt.c (tsubst_enum): Pass NULL_TREE for the new argument.
8210
2ba9c47e
MM
82112001-07-10 Mark Mitchell <mark@codesourcery.com>
8212
8213 * pt.c (tsubst_decl): Set DECL_CONTEXT for namespace-scope
8214 variables.
8215
35241192
JM
82162001-07-10 Jason Merrill <jason_merrill@redhat.com>
8217
8218 * semantics.c (cp_expand_stmt): Fix for null
8219 current_function_return_value.
8220
07167a18
JM
82212001-07-10 Jan van Male <jan.vanmale@fenk.wau.nl>
8222
8223 * call.c (build_op_delete_call): Initialize fn.
8224 (convert_like_real): Delete conditional.
8225 (joust): Initialize *w and *l.
8226 * class.c: Add prototype for binfo_ctor_vtable.
8227 (get_primary_binfo): Initialize result.
8228 * init.c (build_java_class_ref): Initialize name.
ae818d3b 8229
35241192
JM
82302001-07-09 Erik Rozendaal <dlr@acm.org>
8231
ae818d3b
ER
8232 * typeck.c (unary_complex_lvalue): Do not duplicate the
8233 argument to modify, pre-, or post-increment when used as an
8234 lvalue and when the argument has side-effects.
8235
12a68f1f
JM
82362001-07-08 Joseph S. Myers <jsm28@cam.ac.uk>
8237
8238 * decl.c (start_decl): Don't call SET_DEFAULT_DECL_ATTRIBUTES.
8239 (start_function): Don't call SET_DEFAULT_DECL_ATTRIBUTES. Call
8240 cplus_decl_attributes even if attrs is NULL.
8241 * friend.c (do_friend): Don't call SET_DEFAULT_DECL_ATTRIBUTES.
8242
f7a4cec0
JM
82432001-07-08 Joseph S. Myers <jsm28@cam.ac.uk>
8244
8245 * decl.c (grokdeclarator), decl2.c (cplus_decl_attributes): Update
8246 calls to decl_attributes.
8247
c80106a4
IR
82482001-07-06 Ira Ruben <ira@apple.com>
8249
ae818d3b 8250 * cp-tree.def (TEMPLATE_DECL): Update comment. DECL_RESULT should
c80106a4
IR
8251 be DECL_TEMPLATE_RESULT.
8252
dac65501
KL
82532001-07-05 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
8254
8255 * cp-tree.h (copy_template_template_parm): Rename to ...
8256 (bind_template_template_parm): ... here.
8257 * tree.c (copy_template_template_parm): Rename to ...
8258 (bind_template_template_parm): ... here. Remove the case when
8259 NEWARGS is NULL_TREE.
8260 (copy_tree_r): Don't copy TEMPLATE_TEMPLATE_PARM and
8261 BOUND_TEMPLATE_TEMPLATE_PARM.
8262 * pt.c (lookup_template_class): Adjust.
8263
01f9e964
JM
82642001-07-05 Jason Merrill <jason_merrill@redhat.com>
8265
8266 * cvt.c (convert_lvalue): New fn.
8267 * cp-tree.h: Declare it.
8268 * method.c (do_build_assign_ref): Use it.
8269 (do_build_copy_constructor): Convert parm to base types
8270 before calling base constructors.
8271
8272 * typeck.c (check_return_expr): Check DECL_ALIGN instead of
8273 DECL_USER_ALIGN. Check flag_elide_constructors instead of
8274 optimize.
8275 * semantics.c (cp_expand_stmt): Don't destroy the named return value.
8276
6be77748
NS
82772001-07-02 Nathan Sidwell <nathan@codesourcery.com>
8278
8279 * optimize.c (optimize_inline_calls): New function, broken out
8280 of ...
8281 (optimize_function): ... here. Call it. Don't inline if it is
8282 a thunk.
8283 (dump_function): Print name of dump flag causing this dump.
8284 * semantics.c (expand_body): Move thunk inline check to
8285 optimize_function.
8286
8d8e52be
JM
82872001-06-29 Joseph S. Myers <jsm28@cam.ac.uk>
8288
8289 * typeck.c (COMP_TYPE_ATTRIBUTES): Don't define.
8290 (comptypes): Use target.comp_type_attributes.
8291
5a0db193
NS
82922001-06-29 Nathan Sidwell <nathan@codesourcery.com>
8293
8294 * cp-tree.h (flag_dump_class_layout): Remove unneeded declaration.
8295
46f018e1
GDR
82962001-06-28 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
8297
8298 * error.c (lang_print_error_function): Add a `diagnostic_context *'
8299 parameter. Tweak.
8300
501990bb
NB
83012001-06-27 Neil Booth <neil@cat.daikokuya.demon.co.uk>
8302
8303 * decl2.c (import_export_class): Update.
8304
f68fc4db
GDR
83052001-06-26 Gabriel Dos Reis <gdr@codesourcery.com>
8306
8307 * error.c (init_error): Adjust settings.
8308
9596ddd6
GDR
83092001-06-26 Gabriel Dos Reis <gdr@codesourcery.com>
8310
8311 * error.c (init_error): Adjust settings.
8312
c93586fa
RS
83132001-06-19 Richard Sandiford <rsandifo@redhat.com>
8314
8315 * except.c (initialize_handler_parm): Expect __cxa_begin_catch to
8316 return pointers to data members by reference rather than by value.
8317
0d97bf4c
JM
83182001-06-18 Jason Merrill <jason_merrill@redhat.com>
8319
8320 Implement the Named Return Value optimization.
8321 * cp-tree.h (struct cp_language_function): Add x_return_value.
8322 (current_function_return_value): Now a macro.
8323 * decl.c: Don't define it.
8324 (define_label, finish_case_label): Don't clear it.
8325 (init_decl_processing): Don't register it with GC.
8326 * semantics.c (genrtl_finish_function): Don't check it for
8327 no_return_label. Copy the RTL from the return value to
8328 current_function_return_value and walk, calling...
8329 (nullify_returns_r): ...this new fn.
8330 * typeck.c (check_return_expr): Set current_function_return_value.
8331
13de7ec4
JM
83322001-06-15 Jason Merrill <jason_merrill@redhat.com>
8333
8334 * class.c (dfs_accumulate_vtbl_inits): Just point to the base we're
8335 sharing a ctor vtable with. Merge code for cases 1 and 2.
8336 (binfo_ctor_vtable): New fn.
8337 (build_vtt_inits, dfs_build_secondary_vptr_vtt_inits): Use it.
8338
3ea099f1
JM
83392001-06-14 Jason Merrill <jason_merrill@redhat.com>
8340
8341 * class.c (dfs_find_final_overrider): Fix logic.
8342
8343 * class.c (update_vtable_entry_for_fn): Uncomment optimization to use
8344 virtual thunk instead of non-virtual.
8345 (get_matching_virtual): Uncomment.
8346
8347 * pt.c (unify): Don't recurse between the POINTER_TYPE and the
8348 OFFSET_TYPE. If we're adding cv-quals, the extra ones would be on
8349 PARM, not ARG.
8350
87326ba8
NS
83512001-06-14 Nathan Sidwell <nathan@codesourcery.com>
8352
8353 * class.c (dfs_accumulate_vtbl_inits): For case 2 & 3, make sure
8354 we've not emerged from the hierarchy of RTTI_BINFO on reaching
8355 a non-virtual base.
8356
e065a36e
MM
83572001-06-13 Mark Mitchell <mark@codesourcery.com>
8358
8359 * NEWS: Update release number.
8360
623fe76a
NS
83612001-06-12 Nathan Sidwell <nathan@codesourcery.com>
8362
8363 PR c++/3130, c++/3131, c++/3132
8364 * cp-tree.h (BINFO_UNSHARED_MARKED): New #define.
8365 * class.c (force_canonical_binfo_r): Move
8366 BINFO_UNSHARED_MARKED, BINFO_LOST_PRIMARY_P. Don't move
8367 virtual bases unless they're primary and what they're primary
8368 too has been moved.
8369 (dfs_unshared_virtual_bases): Use BINFO_UNSHARED_MARKED. Cope
8370 with morally virtual bases. Duplicate BINFO_LOST_PRIMARY_P and
8371 BINFO_PRIMARY_BASE_OF. Clear BINFO_VTABLE for all but the most
8372 derived binfo.
8373 (mark_primary_bases): Use BINFO_UNSHARED_MARKED.
8374 (layout_nonempty_base_or_field): Add most derived type
8375 parameter. Adjust.
8376 (layout_empty_base): Likewise.
8377 (build_base_field): Likewise.
8378 (build_base_fields): Likewise.
8379 (propagate_binfo_offsets): Add most derived type
8380 parameter. Skip non canonical virtual bases too.
8381 (dfs_set_offset_for_unshared_vbases): Don't skip primary
8382 bases. Do skip canonical bases.
8383 (layout_virtual_bases): Adjust.
8384 (layout_class_type): Adjust.
8385 (dfs_get_primary_binfo): Build list of virtual primary base
8386 candidates.
8387 (get_primary_binfo): Check that the shared virtual primary
8388 base candidate was found first.
8389 (accumulate_vtbl_inits): Don't do anything for non-vptr
8390 containing binfos. For case 1 primary virtual bases, keep
8391 checking that we've not emerged from the hierarchy of RTTI_BINFO.
8392
7bdcf888
NS
83932001-06-12 Nathan Sidwell <nathan@codesourcery.com>
8394
8395 PR c++/3089
8396 * class.c (dfs_accumulate_vtbl_inits): Always walk down the
8397 hierarchy looking for primary bases for a ctor
8398 vtable. Recursively call oneself, if we meet our primary via
8399 this route and haven't met it yet via inheritance graph order.
8400
25b5b465
MM
84012001-06-11 Mark Mitchell <mark@codesourcery.com>
8402
8403 * lang-options.h: Emit documentation for -fno-honor-std, not
8404 -fhonor-std.
8405
eb2d0614
AO
84062001-06-10 Alexandre Oliva <aoliva@redhat.com>
8407
8408 * typeck.c (get_member_function_from_ptrfunc) [vbit_in_delta]:
8409 Don't clobber delta.
8410 (expand_ptrmemfunc_cst) [ptrmemfunc_vbit_in_delta]: Adjust pfn.
8411
2a2b2d43
GDR
84122001-06-10 Mark Mitchell <mark@codesourcery.com>
8413 Gabriel Dos Reis <gdr@codesourcery.com>
8414
8415 * Make-lang.in (cp/call.o): Depend on diagnostic.h
8416 (cp/typeck.o): Depend on diagnostic.h
8417 (cp/typeck2.o): Depend on diagnostic.h
07167a18 8418 (cp/repo.o): Depend on dignostic.h
2a2b2d43
GDR
8419 * typeck.c: #include diagnostic.h
8420 (convert_for_initialization): Remove extern declaration for
8421 warningcount and errorcount.
8422
8423 * call.c: #include diagnostic.h
8424 (convert_like_real): Remove extern declaration for warnincount and
07167a18 8425 errorcount.
2a2b2d43
GDR
8426
8427 * repo.c: #include diagnostic.h
8428 * typeck2.c: #include diagnostic.h
8429
06d5e633
NS
84302001-06-08 Nathan Sidwell <nathan@codesourcery.com>
8431
8432 * decl.c (duplicate_decls): Fix DECL_TEMPLATE_RESULT thinko
8433 in previous change.
8434
9ac1bd2e
NS
84352001-06-08 Nathan Sidwell <nathan@codesourcery.com>
8436
8437 PR c++/2929
8438 * friend.c (do_friend): Use push_decl_namespace for classes at
8439 namespace scope.
8440
85a9a0a2
NS
84412001-06-08 Nathan Sidwell <nathan@codesourcery.com>
8442 Jason Merrill <jason_merrill@redhat.com>
8443
8444 PR c++/3061
8445 * class.c (build_secondary_vtable): Use assert, rather than an error
8446 message.
8447 (dfs_fixup_binfo_vtbls): BINFO_VTABLE might be NULL.
8448 (dfs_accumulate_vtbl_inits): A lost primary virtual base may
8449 be between ORIG_BINFO and RTTI_BINFO, but neither of them.
8450 Don't set BINFO_VTABLE for a primary virtual base.
8451
daa8df65
MM
84522001-06-07 Mark Mitchell <mark@codesourcery.com>
8453
8454 * decl.c (duplicate_decls): Update source position information
8455 when a template function is defined.
8456
37344b9b
PE
84572001-06-07 Phil Edwards <pme@sources.redhat.com>
8458
8459 * lang-specs.h: Move -D_GNU_SOURCE to config/linux.h.
8460
fcebb2dd
NS
84612001-06-07 Nathan Sidwell <nathan@codesourcery.com>
8462
8463 PR c++/2914
8464 * decl.c (pushtag): Don't push into a complete type's scope.
8465
d0cd8b44
JM
84662001-06-06 Jason Merrill <jason_merrill@redhat.com>
8467
8468 * cp-tree.h (THUNK_GENERATE_WITH_VTABLE_P): Lose.
8469 (struct lang_decl_flags): Lose generate_with_vtable_p.
8470 (BV_GENERATE_THUNK_WITH_VTABLE_P): Lose.
8471 * class.c (copy_virtuals): Adjust.
8472 * decl2.c (mark_vtable_entries): Adjust.
8473 * method.c (make_thunk, build_vtable_entry): Adjust.
8474 * class.c (update_vtable_entry_for_fn): Only look as far as the
8475 first defining class.
07167a18 8476 (build_vtbl_initializer): Put nothing in the slot for a function only
d0cd8b44 8477 defined in a lost primary virtual base.
07167a18 8478 (add_vcall_offset_vtbl_entries_1): Use the same code for
d0cd8b44
JM
8479 the lost primary case and the normal case.
8480 (dfs_unshared_virtual_bases): Don't lose a non-virtual primary base.
8481 (get_vfield_offset, get_derived_offset): Lose.
8482 (dfs_find_final_overrider): Use look_for_overrides_here.
8483 (get_matching_virtual): New fn.
8484 * semantics.c (emit_associated_thunks): Check BV_USE_VCALL_INDEX_P,
8485 not BV_VCALL_INDEX.
8486 * search.c (look_for_overrides_here): Split out from...
8487 (look_for_overrides_r): Here.
8488
8489 * class.c (find_final_overrider): Return error_mark_node on error.
8490
8491 * decl2.c (key_method): #if 0 accidental change.
8492
acf97e0b
JDA
84932001-06-06 John David Anglin <dave@hiauly1.hia.nrc.ca>
8494
8495 * call.c (convert_default_arg): Use INTEGRAL_TYPE_P.
8496 (build_over_call): Likewise.
8497 * decl.c (grokparms): Likewise.
8498 * pt.c (tsubst_decl): Likewise.
8499 * typeck.c (convert_arguments): Likewise.
8500
7e9abee9
MM
85012001-06-05 Mark Mitchell <mark@codesourcery.com>
8502
47ee8904
MM
8503 * semantics.c (begin_class_definition): Robustify.
8504
7e9abee9
MM
8505 * pt.c (instantiate_decl): Tell the repository code about the
8506 clones, not the cloned functions.
8507 * repo.c (repo_template_used): Explicitly instantiate the cloned
8508 function, not the clones.
8509
bea09693
NS
85102001-06-05 Nathan Sidwell <nathan@codesourcery.com>
8511
8512 * call.c (build_user_type_conversion_1): Set ICS_USER_FLAG and
8513 ICS_BAD_FLAG on created conversion.
8514 (compare_ics): Break out rank.
8515
8f7550ca
NS
85162001-06-05 Nathan Sidwell <nathan@codesourcery.com>
8517
8518 * decl.c (xref_tag): Remove extraneous %s on dependent name
8519 lookup warning.
8520
442e01b6
NS
85212001-06-05 Nathan Sidwell <nathan@codesourcery.com>
8522
8523 * class.c (layout_vtable_decl): Fix off by one error on
8524 build_index_type.
8525 (build_vtt): Likewise.
8526 (build_ctor_vtbl_group): Likewise.
8527
b7442fb5
NS
85282001-06-05 Nathan Sidwell <nathan@codesourcery.com>
8529
8530 * class.c (maybe_indent_hierarchy): New function.
8531 (dump_class_hierarchy_r): Add flags. Dump extra binfo
8532 information, if enabled. Use maybe_indent_hierarchy. Adjust
8533 output format.
8534 (dump_class_hierarchy): Adjust prototype. Adjust output format.
8535 (dump_array, dump_vtable, dump_vtt): New functions.
8536 (finish_struct_1): Adjust hierarchy dumping.
8537 (initialize_vtable): Call dump_vtable.
8538 (build_vtt): Call dump_vtt.
8539 (build_ctor_vtbl_group): Call dump_vtable.
8540 * decl2.c (flag_dump_class_layout): Remove.
8541 (cxx_decode_option): Remove dump translation unit
8542 and dump class hierarchy check. Call dump_switch_p.
8543 (finish_file): Adjust dumping.
8544 (dump.c): Only dump base classes if not TDF_SLIM.
8545 Only dump namespace members if not TDF_SLIM.
8546 * optimize.c (dump_function): New function.
8547 (optimize_function): Call dump_function.
8548 * semantics.c (expand_body): Use dump_enabled_p.
8549
e5410b32
NS
85502001-06-01 Nathan Sidwell <nathan@codesourcery.com>
8551
8552 PR g++/2936
8553 Part missed from first commit
8554 * decl2.c (finish_anon_union): Copy context.
8555
e97c9488
NS
85562001-05-30 Nathan Sidwell <nathan@codesourcery.com>
8557
8558 PR g++/2936
e97c9488
NS
8559 * optimize.c (remap_decl): Remap anonymous aggregate members too.
8560
87d9ac49
NS
85612001-05-26 Nathan Sidwell <nathan@codesourcery.com>
8562
8563 PR g++/2823
8564 * semantics.c (expand_body): Don't optimize thunks.
8565
88657302
RH
85662001-05-25 Sam TH <sam@uchicago.edu>
8567
8568 * cp-tree.h lex.h: Fix header include guards.
8569
85702001-05-25 Mark Mitchell <mark@codesourcery.com>
10841285
MM
8571
8572 * decl.c (init_decl_processing): Tweak.
8573
0b1161fc
MM
85742001-05-24 Mark Mitchell <mark@codesourcery.com>
8575
8576 * decl.c (duplicate_decls): Tidy.
8577 (init_decl_processing): Always set flag_no_builtin.
8578
6f56d925
NS
85792001-05-24 Nathan Sidwell <nathan@codesourcery.com>
8580
8581 PR c++/2184
8582 * decl2.c (do_local_using_decl): Push the decls, even in a
8583 template.
8584
39e0656d
MM
85852001-05-22 Mark Mitchell <mark@codesourcery.com>
8586
8587 * optimize.c (initialize_inlined_parameters): Don't set
8588 TREE_READONLY for a VAR_DECL taking the place of an inlined
8589 PARM_DECL.
8590
0401d499
JM
85912001-05-22 Jason Merrill <jason_merrill@redhat.com>
8592
8593 * class.c, cp-tree.h, rtti.c: Remove com_interface attribute support.
8594 * tree.c (cp_valid_lang_attribute): Warn about use of com_interface
8595 attribute.
8596
14fc3426
JM
85972001-05-22 Joseph S. Myers <jsm28@cam.ac.uk>
8598
8599 * parse.y: Refer to compound literals as such, not as
8600 constructor-expressions.
8601
3f41ffd8
MM
86022001-05-21 Mark Mitchell <mark@codesourcery.com>
8603
8604 * call.c (build_op_delete_call): Ignore exception-specifications
8605 when looking for matching delete operators.
8606 * init.c (build_new_1): Compute whether or not the allocation
8607 function used is a placement allocation function or not, and
8608 communicate this information to build_op_delete_call.
8609
1a6025b4
JM
86102001-05-21 Jason Merrill <jason_merrill@redhat.com>
8611
90ecce3e
JM
8612 * class.c (build_vtable_entry_ref): Lose vtbl parm. Fix for new abi.
8613 (build_vtbl_ref): Adjust.
8614 (dfs_accumulate_vtbl_inits): Set TREE_CONSTANT on the vtable address.
8615 * decl2.c (lang_f_options): Remove huge-objects, vtable-thunks.
8616 Re-add vtable-gc.
8617 (unsupported_options): Correspondingly.
8618
8619 * decl2.c (maybe_make_one_only): Check flag_weak, not
8620 supports_one_only().
8621
1a6025b4
JM
8622 * cp-tree.def (START_CATCH_STMT): Lose.
8623 * dump.c (cp_dump_tree): Don't dump it. Do dump HANDLER_PARMS.
8624 * tree.c (cp_statement_code_p): Don't case it.
8625 * semantics.c (cp_expand_stmt): Likewise.
8626 * cp-tree.h (START_CATCH_TYPE): Lose.
8627 (HANDLER_TYPE): New.
8628 * except.c (expand_start_catch_block): Don't start any blocks.
8629 Return the type.
8630 (expand_end_catch_block): Don't end any blocks.
8631 * parse.y (handler): Don't pass anything from finish_handler_parms
8632 to finish_handler.
8633 * pt.c (tsubst_expr): Likewise.
8634 * semantics.c (begin_handler): Call note_level_for_catch here.
8635 (finish_handler_parms): Don't return anything.
8636 (genrtl_catch_block, begin_catch_block): Lose.
8637 (genrtl_handler): Call expand_start_catch here.
8638
86392001-05-18 Jason Merrill <jason_merrill@redhat.com>
8640
8641 * class.c (build_vtable): Set DECL_ASSEMBLER_NAME for vtables here.
8642 (get_vtable_decl, build_vtt): Not here.
8643
d30a825a
NS
86442001-05-20 Nathan Sidwell <nathan@codesourcery.com>
8645
8646 PR c++/2781
8647 * optimize.c (update_cloned_parm): Copy addressability and other
8648 flags.
8649
3b82c249
KL
86502001-05-20 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
8651
8652 * pt.c (determine_specialization): Ignore artificial functions.
8653
2a967f3d
NB
86542001-05-20 Neil Booth <neil@daikokuya.demon.co.uk>
8655
8656 * cp-tree.h (struct lang_identifier, C_RID_YYCODE): Update.
8657 (C_RID_CODE): Remove.
8658 * lex.c (cxx_init_options): Call set_identifier_size. Update.
8659 (init_parse): Don't do it here.
8660
f99df08e
DN
86612001-05-18 Diego Novillo <dnovillo@redhat.com>
8662
8663 * decl2.c (finish_objects): Use the original SYMBOL_REF from the
8664 function declaration to avoid stripping the symbol's attributes.
8665
2b0cbc5d
NS
86662001-05-18 Nathan Sidwell <nathan@codesourcery.com>
8667
8668 * decl.c (pushdecl): Adjust error string.
8669 (xref_tag): Adjust friend class injection warning. Remove the
8670 inherited name from the class shadowed scope.
8671
e6855a2d
MM
86722001-05-17 Mark Mitchell <mark@codesourcery.com>
8673
8674 * except.c (cp_protect_cleanup_actions): New function.
07167a18 8675 (init_exception_processing): Don't set protect_cleanup_actions
e6855a2d
MM
8676 here. Do set lang_protect_cleanup_actions.
8677
cc469ee9
NS
86782001-05-16 Nathan Sidwell <nathan@codesourcery.com>
8679
8680 * spew.c (read_token): Call yyerror on all unexpected tokens.
8681
3f0a9b35
NS
86822001-05-16 Nathan Sidwell <nathan@codesourcery.com>
8683
8684 * init.c (member_init_ok_or_else): Take a tree rather than
8685 string for name.
8686 (expand_member_init): Adjust.
8687
8d0cb60d
NC
86882001-05-14 Nick Clifton <nickc@cambridge.redhat.com>
8689
8690 * decl.c (duplicate_decls): Suppress warning about duplicate
749ced52 8691 decls if the first decl is a friend.
8d0cb60d 8692
1f730ff7
ZW
86932001-05-12 Zack Weinberg <zackw@stanford.edu>
8694
8695 * except.c (choose_personality_routine): Export. Add
8696 explanatory comment. Take an enum languages, not a boolean.
8697 (initialize_handler_parm): Adjust to match.
8698 * cp-tree.h: Prototype choose_personality_routine.
8699 * lex.c (handle_pragma_java_exceptions): New function.
8700 (init_cp_pragma): Register #pragma GCC java_exceptions.
8701
90e0c410
NB
87022001-05-12 Neil Booth <neil@cat.daikokuya.demon.co.uk>
8703
8704 * method.c (build_mangled_C99_name): Remove unused prototype.
8705
cb7fdde2
AO
87062001-05-12 Alexandre Oliva <aoliva@redhat.com>
8707
8708 * cp-tree.h (ptrmemfunc_vbit_where_t): Declare type.
8709 * typeck.c (get_member_function_from_ptrfunc,
8710 build_ptrmemfunc, expand_ptrmemfunc_cst): Take
8711 TARGET_PTRMEMFUNC_VBIT_LOCATION into account.
18ae7f63
AO
8712
8713 Reverted Geoff Keating's 2001-05-03's patch.
8714
401deb20
IR
87152001-05-11 Ira Ruben <ira@apple.com>
8716
8717 * cp/cp-tree.h (C_EXP_ORIGINAL_CODE): Delete; declared in c-common.h.
8718
8e93d446
NB
87192001-05-11 Neil Booth <neil@daikokuya.demon.co.uk>
8720
8721 * cp-tree.h (finish_label_expr, lookup_label): Delete.
8722 * parse.y: Update for '&&'; don't issue warning here.
8723 * semantics.c (finish_label_expr): Delete.
8724
5cdba4ff
MM
87252001-05-07 Mark Mitchell <mark@codesourcery.com>
8726
8727 * splay-tree.h (splay_tree_max): New function.
8728 (splay_tree_min): Likewise.
8729
8e9eff6b
GK
87302001-05-03 Geoffrey Keating <geoffk@redhat.com>
8731
8732 * cp-tree.h (enum cp_tree_index): Add CPTI_PFN_VFLAG_IDENTIFIER.
8733 (pfn_vflag_identifier): Define.
8734 Update comment about layout of pointer functions.
8735 (build_ptrmemfunc1): Update prototype.
8736 (expand_ptrmemfunc_cst): Update prototype.
8737 * decl.c (initialize_predefined_identifiers): Initialize
8738 pfn_vflag_identifier.
8739 (build_ptrmemfunc_type): When FUNCTION_BOUNDARY < 16, add
8740 an extra field to the type.
07167a18 8741 * expr.c (cplus_expand_constant): Pass 'flag' between
8e9eff6b
GK
8742 expand_ptrmemfunc_cst and build_ptrmemfunc1.
8743 * typeck.c (get_member_function_from_ptrfunc): When
8744 FUNCTION_BOUNDARY < 16, look at additional field to determine
8745 if a pointer-to-member is a real pointer or a vtable offset.
8746 (build_ptrmemfunc1): Add new parameter to contain extra field.
8747 (build_ptrmemfunc): Pass the extra field around.
8748 (expand_ptrmemfunc_cst): Add new parameter to return extra field.
8749 (pfn_from_ptrmemfunc): Ignore the extra field.
8750
acc72c37
MM
87512001-05-03 Mark Mitchell <mark@codesourcery.com>
8752
8753 * cp-tree.h (flag_inline_trees): Update documentation.
8754 * decl.c (init_decl_processing): Adjust handling of
8755 flag_inline_functions and flag_inline_trees to support -O3.
8756 (grokfndecl): Set DECL_INLINE on all functions if that's what
8757 the user requested.
8758 (save_function_data): Clear DECL_INLINE in
8759 current_function_cannot_inline is non-NULL.
8760 * decl2.c (flag_inline_trees): Update documentation.
8761
5158d7ee
NS
87622001-05-03 Nathan Sidwell <nathan@codesourcery.com>
8763
8764 * dump.c (cp_dump_tree, USING_STMT case): New case.
8765 * tree.c (cp_statement_code_p): Add USING_STMT.
8766 * decl2.c (do_using_directive): Add the using directive statement.
8767
8768 * tree.c (walk_tree): Reformat an if block.
8769
80f5bb34
MM
87702001-05-02 Mark Mitchell <mark@codesourcery.com>
8771
8772 * decl.c (compute_array_index_type): Don't try to do anything with
8773 the indices when processing a template.
8774
3e411c3f
KG
87752001-05-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8776
8777 * call.c: NULL_PTR -> NULL.
8778 * class.c: Likewise.
8779 * cvt.c: Likewise.
8780 * decl.c: Likewise.
8781 * decl2.c: Likewise.
8782 * except.c: Likewise.
8783 * init.c: Likewise.
8784 * rtti.c: Likewise.
8785 * search.c: Likewise.
8786 * tree.c: Likewise.
8787 * typeck.c: Likewise.
8788 * typeck2.c: Likewise.
8789
46188dca
MM
87902001-05-02 Mark Mitchell <mark@codesourcery.com>
8791
8792 * decl2.c (do_using_directive): Revert previous patch.
8793
9da99f7d
NS
87942001-05-01 Nathan Sidwell <nathan@codesourcery.com>
8795
8796 * cp-tree.def (USING_STMT): New statement node.
8797 * cp-tree.h (USING_STMT_NAMESPACE): New macro.
8798 * decl2.c (do_using_directive): Add USING_STMT to statement
8799 tree. Don't emit errors when processing template decl.
8800 * pt.c (tsubst_expr, USING_STMT case): New case.
8801 * semantics.c (cp_expand_stmt, USING_STMT case): New case.
8802
4b48a93e
NS
88032001-05-01 Nathan Sidwell <nathan@codesourcery.com>
8804
8805 * call.c (build_new_op): Convert args from reference here.
8806 (build_conditional_expr): Don't convert here.
8807
1bcea8d7
NS
88082001-05-01 Nathan Sidwell <nathan@codesourcery.com>
8809
8810 * spew.c (last_token_id): New static variable.
8811 (read_token): Set it here.
8812 (yyerror): Use it here.
8813
d72040f5
RH
88142001-04-30 Richard Henderson <rth@redhat.com>
8815
749ced52 8816 * cvt.c: Downcase C_PROMOTING_INTEGER_TYPE_P invocations.
d72040f5
RH
8817 * decl.c: Likewise.
8818
c3aac512
MM
88192001-04-30 Mark Mitchell <mark@codesourcery.com>
8820
8821 * gxxint.texi: Remove.
8822 * Make-lang.in: Remove all traces of gxxint.texi.
8823
d2a6f3c0 88242001-04-30 Mark P Mitchell <mark@codesourcery.com>
5fd893d5
MM
8825
8826 * decl2.c (start_static_initialization_or_destruction): Correct
8827 logic to handle the -fno-use-cxa-atexit case.
8828
d60e5448
MM
88292001-04-30 Mark Mitchell <mark@codesourcery.com>
8830
8831 * optimize.c (update_cloned_parm): New function.
8832 (maybe_clone_body): Use it. Update the `this' parameter too.
8833
7200764f
JM
88342001-04-29 Joseph S. Myers <jsm28@cam.ac.uk>
8835
8836 * decl2.c (unsupported_options): Add new-abi.
8837 * lang-options.h: Remove no longer supported options.
8838
2d46ec83
NS
88392001-04-27 Nathan Sidwell <nathan@codesourcery.com>
8840
8841 * except.c (can_convert_eh): Don't check template parms,
8842 typename types etc.
8843
02a1a68c
NS
88442001-04-27 Nathan Sidwell <nathan@codesourcery.com>
8845
8846 * optimize.c (maybe_clone_body): Copy parameter names and locations.
8847
5f6eeeb3
NS
88482001-04-27 Nathan Sidwell <nathan@codesourcery.com>
8849
8850 * cp-tree.h (adjust_clone_args): Prototype new function.
8851 * class.c (adjust_clone_args): New function.
8852 * decl.c (start_function): Call it for in charge ctors.
8853
1b28d441
MM
88542001-04-26 Mark Mitchell <mark@codesourcery.com>
8855
8856 * method.c (use_thunk): Make sure that thunks really are emitted
8857 when requested.
8858
0576ec13
NS
88592001-04-26 Nathan Sidwell <nathan@codesourcery.com>
8860
8861 * mangle.c (write_chars): New macro.
8862 (hwint_to_ascii): New function
8863 (write_number): Use it.
8864 (write_integer_cst): Deal with really big numbers.
8865
b96ada87
MM
88662001-04-25 Mark Mitchell <mark@codesourcery.com>
8867
8868 * optimize.c (maybe_clone_body): Copy TREE_PUBLIC before emitting
8869 the clone.
8870
6bda7a5e
NS
88712001-04-25 Nathan Sidwell <nathan@codesourcery.com>
8872
8873 * decl.c (grokdeclarator): Set context of namespace scope
8874 TYPE_DECLS.
8875
11fe225a
ZW
88762001-04-24 Zack Weinberg <zackw@stanford.edu>
8877
8878 * cp/optimize.c: Include hashtab.h.
8879 (struct inline_data): Add tree_pruner.
8880 (expand_call_inline, expand_calls_inline): Use it when calling
8881 walk_tree.
8882 (optimize_function): Initialize and free tree_pruner.
8883
0ba8a114
NS
88842001-04-24 Nathan Sidwell <nathan@codesourcery.com>
8885
8886 Lazy __FUNCTION__ generation.
8887 * cp-tree.def (FUNCTION_NAME): Remove.
8888 * cp-tree.h (function_name_declared_p): Remove.
8889 (cp_fname_init): Prototype.
8890 * decl.c (init_decl_processing): Don't generate __FUNCTION__ et al ids,
8891 don't call declare_function_name. Call start_fname_decls.
8892 (cp_make_fname_decl): Adjust parameters. Generate the name. Don't
8893 clobber the line number.
8894 (cp_fname_init): New function.
8895 (start_function): Call start_fname_decls.
8896 (finish_function): Call finish_fname_decls.
8897 * lex.c (reswords): Add slots for __FUNCTION__ et al.
8898 (rid_to_yy): Add mappings for __FUNCTION__ et al.
8899 * optimize.c (maybe_clone_body): Remove function_name_declared_p.
8900 * parse.y (VAR_FUNC_NAME): New token.
8901 (primary): Add VAR_FUNC_NAME.
8902 * pt.c (tsubst_decl): Adjust a DECL_PRETTY_FUNCTION_P's
8903 generation.
8904 (tsubst, FUNCTION_NAME case): Remove.
8905 (tsubst_copy, FUNCTION_NAME case): Remove.
8906 (tsubst_expr, DECL_STMT case): Be careful with a
8907 DECL_PRETTY_FUNCTION_P.
8908 (instantiate_decl): Remove function_name_declared_p.
8909 * semantics.c (begin_compound_statement): Don't call
8910 declare_function_name here.
8911 (setup_vtbl_ptr). Don't save & restore function_name_declared_p.
8912 (finish_translation_unit): Call finish_fname_decls.
8913 (expand_body): Remove function_name_declared_p.
8914 * typeck2.c (digest_init): Allow any ERROR_MARK.
8915
dfbb4f34
NS
89162001-04-24 Nathan Sidwell <nathan@codesourcery.com>
8917
8918 * pt.c (tsubst_decl): Use VOID_TYPE_P.
8919 * semantics.c: Fix some typos.
8920
e2584c52
PE
89212001-04-23 Phil Edwards <pme@sources.redhat.com>
8922
8923 * cp/decl2.c (flag_honor_std): Always initialize to 1.
8924
d4c3ec27
KG
89252001-04-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8926
8927 * xref.c (GNU_xref_file): Use concat in lieu of xmalloc/sprintf.
8928
2ac8a0f9
JM
89292001-04-23 Jason Merrill <jason_merrill@redhat.com>
8930
8931 * except.c (build_throw): Wrap the initialization of the exception
8932 object in a MUST_NOT_THROW_EXPR.
8933 (do_free_exception): #if 0.
8934
968b956a
MM
89352001-04-20 Mark Mitchell <mark@codesourcery.com>
8936
8937 * cp-tree.h (finish_enum): Change prototype.
8938 * decl.c (finish_enum): Reorganize.
8939 * parse.y (structsp): Adjust calls to finish_enum.
11fe225a 8940
aa1826e2
NS
89412001-04-20 Nathan Sidwell <nathan@codesourcery.com>
8942
8943 * tree.c (cp_tree_equal): Adjust final switch formatting. Add
8944 't' case.
8945
06d9f09f
NS
89462001-04-20 Nathan Sidwell <nathan@codesourcery.com>
8947
8948 * class.c (dfs_unshared_virtual_bases): Add ATTRIBUTE_UNUSED.
8949 (layout_empty_base): Return at end flag.
8950 (build_base_field): Likewise.
8951 (build_base_fields): Likewise.
8952 (layout_virtual_bases): Don't add 1 to eoc value.
8953 (end_of_class): Use full size for empty bases.
8954 (layout_class_type): Clear CLASSNEARLY_EMPTY_P if we appended
8955 empty bases. Don't add 1 to eoc value. Only add trailing padding
8956 if we're an empty class with no empty bases.
8957 (dump_class_hierarchy): Dump size and alignment.
8958
351a0f00
JJ
89592001-04-20 Jakub Jelinek <jakub@redhat.com>
8960
8961 * call.c (maybe_handle_ref_bind): Copy ICS_USER_FLAG and
8962 ICS_BAD_FLAG.
8963
881cae05
JJ
89642001-04-20 Jakub Jelinek <jakub@redhat.com>
8965
8966 * search.c (lookup_field_r): If looking for type and non-TYPE_DECL
8967 is found, look first if name does not match the structure name.
8968
5d2ed28c
MM
89692001-04-19 Mark Mitchell <mark@codesourcery.com>
8970
8971 * cp-tree.h (DECL_LANGUAGE): Don't assume DECL_LANG_SPECIFIC is
8972 set.
8973 (SET_DECL_LANGUAGE): New macro.
8974 * decl.c (duplicate_decls): Use SET_DECL_LANGUAGE.
8975 (pushdecl): Likewise.
8976 (build_library_fn_1): Likewise.
8977 (build_cp_library_fn): Likewise.
8978 (grokfndecl): Likewise.
8979 (grokvardecl): Mark `extern "C"' variables as having C linkage.
8980 * decl2.c (grokclassfn): Use SET_DECL_LANGUAGE.
8981 * lex.c (retrofit_lang_decl): Likewise.
8982 * mangle.c (mangle_decl_string): Don't mangle the names of
8983 variables declared with C language linkage.
8984 * semantics.c (finish_member_declaration): Use SET_DECL_LANGUAGE.
11fe225a 8985
41251458
JDA
89862001-04-18 John David Anglin <dave@hiauly1.hia.nrc.ca>
8987
8988 * semantics.c (simplify_aggr_init_exprs_r): Don't restore
8989 flag_access_control from uninitialized storage.
8990
1b4a93f7
MM
89912001-04-15 Mark Mitchell <mark@codesourcery.com>
8992
24272dc0
MM
8993 * cp-tree.h (TYPE_PTRMEM_CLASS_TYPE): Improve documentation.
8994 * mangle.c (write_pointer_to_member_type): Fix mangling of
8995 pointers to cv-qualified member function types.
8996
1b4a93f7
MM
8997 * init.c (build_delete): Create a SAVE_EXPR for the address if
8998 we're going to use it more than once.
8999
530ec96d
MM
90002001-04-13 Mark Mitchell <mark@codesourcery.com>
9001
9002 * cp-tree.h (DELTA2_FROM_PTRMEMFUNC): Remove.
9003 (expand_ptremfunc_cst): Change prototype.
9004 (delta2_from_ptrmemfunc): Remove.
9005 * expr.c (cplus_expand_constant): Adjust call to
9006 expand_ptrmemfunc_cst.
9007 * typeck.c (build_ptrmemfunc1): Simplify.
9008 (build_ptrmemfunc): Make sure that casting a PTRMEM_CST still
9009 results in a constant.
9010 (expand_ptrmemfunc_cst): Remove idx and delta2 parameters.
9011 (delta2_from_ptrmemfunc): Remove.
9012 (pfn_from_ptrmemfunc): Adjust call to expand_ptrmemfunc_cst.
11fe225a 9013
ee8fc32b
JM
90142001-04-12 Jason Merrill <jason_merrill@redhat.com>
9015
9016 * cp-tree.h (decl_namespace_list): New macro.
9017 (struct saved_scope): Add decl_ns_list.
9018 * decl.c (mark_saved_scope): Mark it.
9019 * decl2.c: Lose static decl_namespace_list.
9020 (init_decl2): Don't save it.
9021
48857160
KG
90222001-04-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9023
9024 * cp-tree.h (warn_return_type, yylex): Delete redundant
9025 declarations.
11fe225a 9026
48857160
KG
9027 * decl.c (current_class_depth, global_namespace): Likewise.
9028
9029 * decl2.c (current_class_depth, flag_gnu_xref): Likewise
9030
9031 * repo.c (flag_use_repository): Likewise.
9032
845e14ed
KG
90332001-04-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9034
9035 * cp-tree.h (pedantic, convert, global_bindings_p, insert_block,
9036 set_block, pushdecl, getdecls, gettags, init_decl_processing,
9037 maybe_build_cleanup, copy_lang_decl, prep_stmt, lvalue_p,
9038 lvalue_or_else, print_lang_statistics, comp_target_types,
9039 unsigned_type, signed_type, signed_or_unsigned_type,
9040 build_function_call, mark_addressable, incomplete_type_error):
9041 Delete redundant declarations.
9042
1951a1b6
JM
90432001-04-11 Jason Merrill <jason_merrill@redhat.com>
9044
9045 * cp-tree.h (TYPE_LINKAGE_IDENTIFIER): New macro.
9046 (TYPE_ANONYMOUS_P): New macro.
9047 (TAGGED_TYPE_P): New macro.
9048 * decl.c (check_tag_decl): Use TYPE_ANONYMOUS_P.
9049 (grokfndecl, grokvardecl, grokdeclarator): Likewise.
9050 * tree.c (no_linkage_helper): Likewise.
9051 * semantics.c (begin_class_definition): Likewise.
9052 * pt.c (convert_template_argument): Likewise.
9053 * lex.c (check_for_missing_semicolon): Likewise.
9054
0fb3018c
NS
90552001-04-12 Nathan Sidwell <nathan@codesourcery.com>
9056
9057 * class.c (dfs_unshared_virtual_bases): New function.
9058 (mark_primary_bases): Call it.
9059 (check_bases): Ignore virtual bases when determining
9060 nearly-emptiness.
9061
bbb53468
NS
90622001-04-12 Nathan Sidwell <nathan@codesourcery.com>
9063
9064 * method.c (make_thunk): Clear DECL_CLONED_FUNCTION.
9065
9b7949d5
MM
90662001-04-11 Mark Mitchell <mark@codesourcery.com>
9067
9068 * optimize.c (maybe_clone_body): Copy DECL_NUM_STMTS from the
9069 cloned function to the clone.
9070
d6684bc8
KG
90712001-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9072
9073 * Make-lang.in (cp/semantics.o): Depend on $(EXPR_H).
9074
9075 * semantics.c: Include expr.h.
9076
a2095778
NS
90772001-04-11 Nathan Sidwell <nathan@codesourcery.com>
9078
9079 * method.c (implicitly_declare_fn): Commonize code for copy ctor
9080 and assignment op. Set TREE_USED for parameter.
9081
78b45a24
MM
90822001-04-10 Mark Mitchell <mark@codesourcery.com>
9083
9084 * class.c (find_final_overrider_data): Add `candidates'.
9085 (dfs_find_final_overrider): Don't issue error messages
9086 prematurely.
9087 (find_final_overrider): Issue error messages here.
9088 (build_base_field): Don't warn about amgibuous direct bases here.
9089 (warn_about_ambiguous_direct_bases): New function.
9090 (layout_class_type): Use it.
9091
0450d74d
RH
90922001-04-10 Richard Henderson <rth@redhat.com>
9093
9094 * typeck.c (build_array_ref): Push the array reference inside
9095 COMPOUND_EXPR and COND_EXPR.
9096
79065db2
MM
90972001-04-05 Mark Mitchell <mark@codesourcery.com>
9098
9099 * cp-tree.h (DECL_THIS_INLINE): Rename to DECL_DECLARED_INLINE_P.
9100 * decl.c (duplicate_decls): Adjust accordingly.
9101 (maybe_commonize_var): Likewise.
9102 (grokfndecl): Likewise.
9103 (start_function): Likewise.
9104 (start_method): Likewise.
9105 * decl2.c (key_method): Likewise.
9106 (import_export_decl): Likewise.
9107 * method.c (implicitly_declare_fn): Likewise.
9108 * optimize.c (maybe_clone_body): Likewise.
11fe225a 9109
fdecbf8a
BK
91102001-04-05 Benjamin Kosnik <bkoz@redhat.com>
9111
b03eced6 9112 * lang-specs.h: Add __DEPRECATED.
fdecbf8a 9113
d2a6f3c0 91142001-04-05 J"orn Rennecke <amylaar@redhat.com>
0b4c1646
R
9115
9116 * search.c (get_dynamic_cast_base_type): When building a new
9117 constant, set its type to ssizetype.
9118
e59d6709
JJ
91192001-04-04 Jakub Jelinek <jakub@redhat.com>
9120
9121 * optimize.c (expand_call_inline): Only add newly inlined statements
9122 into inlined_stmts.
9123
0c918ce5
MM
91242001-04-03 Mark Mitchell <mark@codesourcery.com>
9125
9126 * cp-tree.h (OPERATOR_ASSIGN_FORMAT): Remove.
9127 (OPERATOR_FORMAT): Likewise.
9128 (OPERATOR_TYPENAME_FORMAT): Likewise.
9129 * operators.def: Remove old name-mangling information.
9130 * decl.c (grok_op_properties): Adjust accordingly.
9131 * lex.c (init_operators): Likewise.
9132 * rtti.c (get_tinfo_decl): Issue error messages about types that
9133 have variable size.
9134
92788413
MM
91352001-04-03 Mark Mitchell <mark@codesourcery.com>
9136
11fe225a 9137 * decl2.c (import_export_decl): Don't call import_export_class
92788413
MM
9138 when processing an inline member function.
9139 * semantics.c (expand_body): Call import_export_decl before
9140 emitting inline functions.
9141
52a11cbf
RH
91422001-03-28 Richard Henderson <rth@redhat.com>
9143
9144 IA-64 ABI Exception Handling:
9145 * cp-tree.def (EH_SPEC_BLOCK): New.
9146 (MUST_NOT_THROW_EXPR): New.
9147 * cp-tree.h: Update changed function declarations.
9148 (CPTI_PUSH_EXCEPTION_IDENTIFIER): Remove.
9149 (CPTI_CALL_UNEXPECTED): New.
9150 (struct cp_language_function): Rename x_eh_spec_try_block
9151 to x_eh_spec_block.
9152 (EH_SPEC_STMTS, EH_SPEC_RAISES): New.
11fe225a 9153 * decl.c (current_binding_level): If no current function
52a11cbf
RH
9154 bindings, revert to scope_chain.
9155 (initialize_predefined_identifiers): Remove __cp_push_exception.
9156 (store_parm_decls): Use begin_eh_spec_block.
9157 (finish_function): Use finish_eh_spec_block.
9158 (mark_lang_function): Update for name changes.
9159 * decl2.c (finish_file): No mark_all_runtime_matches.
9160 * dump.c (cp_dump_tree): Handle new tree codes.
9161 * error.c (dump_expr) [BIND_EXPR]: Fix typo.
9162 * except.c (catch_language_init, catch_language): Remove.
9163 (init_exception_processing): Don't set language code.
9164 Initialize call_unexpected_node, protect_cleanup_actions,
9165 eh_personality_libfunc, lang_eh_runtime_type.
9166 (call_eh_info, push_eh_info, get_eh_info, get_eh_value): Remove.
9167 (get_eh_type, get_eh_caught, get_eh_handlers): Remove.
9168 (prepare_eh_type): Split out type canonicalizations ...
9169 (build_eh_type_type): ... from here.
9170 (build_eh_type_type_ref): Remove.
9171 (mark_all_runtime_matches): Remove.
9172 (build_exc_ptr): New.
9173 (do_begin_catch, do_end_catch): New.
9174 (do_pop_exception): Remove.
9175 (build_terminate_handler): Remove.
9176 (choose_personality_routine): Split out language choice from ...
9177 (initialize_handler_parm): ... here.
9178 Use MUST_NOT_THROW_EXPR.
9179 (expand_start_catch_block): Use do_begin_catch. Simplify Java
9180 exception object handling.
9181 (expand_start_eh_spec, expand_end_eh_spec): Remove.
9182 (expand_exception_blocks, alloc_eh_object): Remove.
9183 (begin_eh_spec_block, finish_eh_spec_block): New.
9184 (do_allocate_exception, do_free_exception): New.
9185 (expand_throw): Merge into ...
9186 (build_throw): ... here. Update for abi.
9187 * expr.c (cplus_expand_expr): No expand_internal_throw.
9188 Handle MUST_NOT_THROW_EXPR.
9189 * pt.c (tsubst_expr): Handle EH_SPEC_BLOCK.
9190 * semantics.c (*) Update for except.h name changes.
9191 (genrtl_try_block): No protect_with_terminate.
9192 (genrtl_eh_spec_block): New.
9193 (genrtl_handler): Don't emit the goto here.
9194 (cp_expand_stmt): Handle EH_SPEC_BLOCK.
9195 (genrtl_finish_function): Don't expand_exception_blocks.
9196 * tree.c (cp_statement_code_p): Handle EH_SPEC_BLOCK.
9197
826840d9
RH
91982001-03-28 Richard Henderson <rth@redhat.com>
9199
9200 * decl.c (struct named_label_list): Rename eh_region to
9201 in_try_scope, add in_catch_scope.
9202 (struct binding_level): Rename eh_region to is_try_scope,
9203 add is_catch_scope.
9204 (note_level_for_try): Rename from note_level_for_eh.
9205 (note_level_for_catch): New.
9206 (poplevel): Copy both is_try_scope and is_catch_scope to
9207 the named_label_list struct.
9208 (check_previous_goto_1): Don't check for catch block via
9209 DECL_ARTIFICIAL; use in_try_scope instead.
9210 (check_goto): Likewise.
9211 * cp-tree.h (note_level_for_try, note_level_for_catch): Declare.
9212 * except.c (expand_start_catch_block): Call note_level_for_catch.
9213 * semantics.c (begin_compound_stmt): Update for note_level_for_try.
9214
531073e7
RH
92152001-03-27 Richard Henderson <rth@redhat.com>
9216
9217 * except.c: Use USING_SJLJ_EXCEPTIONS instead of
9218 exceptions_via_longjmp.
9219
8653a2c3
PE
92202001-03-27 Phil Edwards <pme@sources.redhat.com>
9221
9222 * pt.c (check_default_tmpl_args): Make error messages clearer.
9223
92242001-03-26 Phil Edwards <pme@sources.redhat.com>
9225
9226 * error.c: Also undefine 'A' macro used for cp_printers definition.
9227
911e6107
KG
92282001-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9229
9230 * Make-lang.in: Depend on $(SYSTEM_H), not system.h.
9231
005a5cb0
MY
92322001-03-26 Mike Yang <yang@research.att.com>
9233 Mark Mitchell <mark@codesourcery.com>
9234
9235 * dump.c (dump_access): New function.
9236 (cp_dump_tree): Use it. Dump basetype information for class
9237 types.
9238
b850de4f
MM
92392001-03-26 Mark Mitchell <mark@codesourcery.com>
9240
9241 * Makefile.in (optimize.o): Depend on params.h.
9242 (duplicate_decls): Copy DECL_NUM_STMTS, not DECL_FRAME_SIZE.
9243 (init_decl_processing): Set flag_no_inline when doing
9244 inlining-on-trees.
9245 * optimize.c: Include params.h.
9246 (struct inline_data): Improve documentation of FNS. Add
9247 FIRST_INLINED_FN, INLINED_STMTS, and CLONING_P.
9248 (INSNS_PER_STMT): New macro.
9249 (remap_block): Use CLONING_P.
9250 (inlinable_function_p): Don't inline big functions.
9251 (expand_call_inline): Keep track of how much inlining we've done.
9252 (optimize_function): Set FIRST_INLINED_FN.
9253 (maybe_clone_body): Set CLONING_P.
9254 * semantics.c (simplify_aggr_init_exprs_r): Fix typing problems in
9255 tree nodes.
9256 (genrtl_finish_function): Clear DECL_DEFER_OUTPUT before calling
9257 rest_of_compilation. Clear DECL_RTL for local variables
9258 afterwards.
9259 (clear_decl_rtl): New function.
11fe225a 9260
788bf0e3
NS
92612001-03-26 Nathan Sidwell <nathan@codesourcery.com>
9262
9263 Implement DR 209
9264 * cp-tree.h (skip_type_access_control,
9265 reset_type_access_control): Prototype.
9266 * decl.c (grokdeclarator): Access of friends is not checked.
9267 * parse.y (component_decl_list): Reset type access control.
9268 * semantics.c (decl_type_access_control): Clear
9269 current_type_lookups.
9270 (save_type_access_control): Don't save if not deferring.
9271 (skip_type_access_control, reset_type_access_control): New
9272 functions.
9273 (begin_class_definition): Do type access control for basetypes.
9274 Start deferred access control.
9275 (finish_class_definition): Resume immediate access control if
9276 this is a local class.
9277
730e1556
KG
92782001-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9279
9280 * class.c (add_method): Use memcpy/memmove, not bcopy.
9281
9282 * decl.c (duplicate_decls): Likewise.
9283
f1a0345c
JJ
92842001-03-23 Jakub Jelinek <jakub@redhat.com>
9285
9286 * mangle.c (write_discriminator): Use `_0' for discriminator 1,
9287 not `_'.
9288
8e4ce833
JJ
92892001-03-23 Jakub Jelinek <jakub@redhat.com>
9290
9291 * decl.c (local_names): Define.
9292 (push_local_name): New.
9293 (grok_reference_init): Return init if initializing static reference
9294 variable with non-constant instead of emitting it.
9295 Move expand_static_init call to cp_finish_decl.
9296 (layout_var_decl): Call push_local_name.
9297 (maybe_commonize_var): Allow inlining functions even if they have
9298 static local variables, use comdat_linkage for them if flag_weak.
9299 (check_initializer): Call obscure_complex_init if
838dfd8a 9300 grok_reference_init returned nonzero.
8e4ce833
JJ
9301 (save_function_data): Clear x_local_names.
9302 (pop_cp_function_context): Free x_local_names.
9303 (mark_inlined_fns): Remove.
9304 (mark_lang_function): Mark x_local_names.
9305 (lang_mark_tree): Don't mark DECL_ACCESS for DECL_DISCRIMINATOR_P.
9306 Mark inlined_fns as tree, remove call to mark_inlined_fns.
9307 * class.c (alter_access): Ensure DECL_ACCESS is never set if
9308 DECL_DISCRIMINATOR_P.
9309 * cp-tree.h (cp_language_function): Add x_local_names.
9310 (lang_decl_flags): Add discriminator into u2.
9311 (lang_decl_inlined_fns): Remove.
9312 (lang_decl): inlined_fns is now a TREE_VEC.
9313 (DECL_DISCRIMINATOR_P, DECL_DISCRIMINATOR): Define.
9314 * optimize.c (inlinable_function_p): DECL_INLINED_FNS is now a
9315 TREE_VEC, not a custom structure.
9316 (optimize_function): Likewise.
9317 * mangle.c (discriminator_for_local_entity): Discriminate among
9318 VAR_DECL local entities.
9319 * search.c (dfs_access_in_type): If DECL_DISCRIMINATOR_P, DECL_ACCESS
9320 is not valid.
9321
60c87482
BM
93222001-03-22 Bryce McKinlay <bryce@albatross.co.nz>
9323
9324 Add support for Java interface method calls.
9325 * cp-tree.h (struct lang_type): Add java_interface flag.
9326 (TYPE_JAVA_INTERFACE): New macro.
9327 * tree.c (cp_valid_lang_attribute): Handle "java_interface" attribute
9328 by setting TYPE_JAVA_INTERFACE.
9329 * call.c (java_iface_lookup_fn): New static.
11fe225a 9330 (build_over_call): If calling a method declared in a
60c87482
BM
9331 TYPE_JAVA_INTERFACE, call build_java_interface_fn_ref to generate the
9332 expression which resolves the function address.
9333 (build_java_interface_fn_ref): New function.
9334
94c7f30b
RH
93352001-03-22 Richard Henderson <rth@redhat.com>
9336
9337 * Make-lang.in (cp/except.o): Don't depend on insn-flags.h.
9338 * except.c: Don't include it.
9339
fd8b7a0e 93402001-03-22 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
826840d9 9341 based on an idea from Joe Buck <jbuck@synopsys.com>
fd8b7a0e
GP
9342
9343 * parse.y (bad_decl, template_arg_list_ignore, arg_list_ignore):
9344 New nonterminals.
9345 (data_def, component_decl): Add reductions to bad_decl.
9346
a1c2b86d
JJ
93472001-03-22 Jakub Jelinek <jakub@redhat.com>
9348
9349 * method.c (do_build_assign_ref): Don't use build_modify_expr for
9350 anonymous aggregates, since they don't have assignment operator
9351 method.
9352 * decl.c (fixup_anonymous_aggr): Disallow ctors, dtors and copy
9353 assignment operators for anonymous structure fields.
9354
46ccf50a
JM
93552001-03-21 Jason Merrill <jason@redhat.com>
9356
9357 * pt.c (instantiate_decl): Abort if we see a member constant
9358 instantiation that doesn't already have its initializer.
9359 Downgrade explicit instantiation without definition to pedwarn.
9360
9361 * cp-tree.h (DECL_TINFO_FN_P, SET_DECL_TINFO_FN_P): Remove.
9362 * class.c (build_vtable_entry): Don't check DECL_TINFO_FN_P.
9363 (import_export_decl): Check tinfo_decl_p, not DECL_TINFO_FN_P.
9364
9365 * cp-tree.h (CLASSTYPE_VTABLE_NEEDS_WRITING): Remove.
9366 (pending_vtables): Remove.
9367 * decl2.c (pending_vtables): Remove.
9368 (import_export_vtable): Use CLASSTYPE_INTERFACE_ONLY, not
9369 CLASSTYPE_VTABLE_NEEDS_WRITING.
9370 (import_export_class): Likewise.
9371 (init_decl2): Don't mark pending_vtables.
9372 * lex.c (handle_pragma_vtable): Just sorry.
9373 * pt.c (instantiate_class_template): Don't mess with
9374 CLASSTYPE_VTABLE_NEEDS_WRITING.
9375 (mark_class_instantiated): Likewise.
9376 * ptree.c (print_lang_type): Don't print it.
9377 * semantics.c (begin_class_definition): Don't set it.
9378
9379 * pt.c (template_tail): Replace with last_pending_template.
9380 (maybe_templates, maybe_template_tail): Remove.
9381 (add_pending_template): Adjust.
9382 (instantiate_pending_templates): Adjust.
9383
9384 * cp-tree.h (struct saved_scope): Remove lang_stack field.
9385 (current_lang_stack): Remove.
9386 * decl.c (maybe_push_to_top_level): Don't initialize it.
9387 (duplicate_decls): Use current_lang_depth.
9388 (xref_basetypes): Likewise.
9389 * class.c (current_lang_depth): New fn.
9390 (push_lang_context): Use more varray functionality.
9391 (pop_lang_context): Likewise.
64d9c3fe
JM
9392
9393 * error.c (GLOBAL_THING): Always use '__'.
9394
1c06710a
MM
93952001-03-21 Mark Mitchell <mark@codesourcery.com>
9396
71cb9286
MM
9397 * class.c (build_clone): Clear DECL_ASSEMBLER_NAME.
9398
1c06710a
MM
9399 * mangle.c (mangle_decl_string): Mangle the names of overloaded
9400 operators, even when they have `extern "C"' linkage.
9401
92643fea
MM
94022001-03-19 Mark Mitchell <mark@codesourcery.com>
9403
9404 * class.c (get_vtable_decl): Use SET_DECL_ASSEMBLER_NAME,
9405 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME
9406 where it's not necessary.
9407 (add_method): Remove optimization involving comparison of
9408 DECL_ASSEMBLER_NAME.
9409 (build_vtbl_or_vbase_field): Use SET_DECL_ASSEMBLER_NAME,
9410 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME
9411 where it's not necessary.
9412 (check_methods): Likewise.
9413 (build_clone): Likewise.
9414 (built_vtt): Likewise.
9415 * cp-tree.h (DECL_NEEDED_P): Likewise.
9416 * decl.c (pushtag): Likewise.
9417 (duplicate_decls): Likewise.
9418 (pushdecl): Likewise.
9419 (builtin_function): Likewise.
9420 (build_library_fn_1): Set DECL_LANGUAGE for library functions.
9421 (build_cp_library_fn): Likewise.
9422 (maybe_commonize_var): Use SET_DECL_ASSEMBLER_NAME,
9423 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME
9424 where it's not necessary.
9425 (make_rtl_for_nonlocal_decl): Likewise.
9426 (cp_finish_decl): Likewise.
9427 (grokfndecl): Likewise.
9428 (grokvardecl): Likewise.
9429 (grokdeclarator): Likewise.
9430 (start_function): Likewise.
9431 (cp_missing_return_ok_p): Likewise.
9432 * decl2.c (grokclassfn): Likewise.
9433 (check_classfn): Likewise.
9434 (finish_static_data_member_decl): Likewise.
9435 (grokfield): Likewise.
9436 * error.c (GLOBAL_IORD_P): Remove.
9437 (dump_global_iord): Improve output.
9438 (dump_decl): Avoid using DECL_ASSEMBLER_NAME.
9439 * except.c (nothrow_libfn_p): Summarily reject any function not in
9440 namespace-scope.
9441 * init.c (build_java_class_ref): Don't explicitly set
9442 DECL_ASSEMBLER_NAME after calling mangle_decl.
9443 * mangle.c (mangle_decl_string): Handle extern "C" functions.
9444 (mangle_decl): Set the DECL_ASSEMBLER_NAME for the decl.
9445 * method.c (set_mangled_name_for_decl): Don't explicitly set
9446 DECL_ASSEMBLER_NAME after calling mangle_decl.
9447 (make_thunk): Explicitly set the DECL_ASSEMBLER_NAME and
9448 IDENTIFIER_GLOBAL_VALUE for the thunk.
9449 * pt.c (set_mangled_name_for_template_decl): Remove.
9450 (check_explicit_specialization): Don't use it.
9451 (looup_template_class): Don't set DECL_ASSEMBLER_NAME.
9452 (tsubst_friend_function): Likewise.
9453 (tsubst_decl): Likewise.
9454 (regenerate_decl_from_template): Use COPY_DECL_ASSEMBLER_NAME.
9455 * rtti.c (get_tinfo_decl): Use SET_DECL_ASSEMBLER_NAME,
9456 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME
9457 where it's not necessary.
9458 (tinfo_base_init): Likewise.
9459 (create_real_tinfo_var): Likewise.
9460 * search.c (looup_field_1): Likewise.
9461 * semantics.c (finish_named_return_value): Likewise.
9462 * tree.c (init_tree): Set lang_set_decl_assembler_name.
11fe225a 9463
d064d75a
GDR
94642001-03-15 Gabriel Dos Reis <gdr@codesourcery.com>
9465
9466 Correct semantics restrictions checking in throw-expression.
9467 * except.c (is_admissible_throw_operand): New function.
9468 (build_throw): Use it.
9469
a3eab619
MM
94702001-03-14 Mark Mitchell <mark@codesourcery.com>
9471
9472 * decl.c (cp_make_fnname_decl): Set DECL_IGNORED_P on __FUNCTION__
9473 and its ilk.
9474
19e7881c
MM
94752001-03-14 Mark Mitchell <mark@codesourcery.com>
9476
9477 * class.c (build_clone): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc.
9478 * cp-tree.h (DECL_IN_MEMORY_P): Likewise.
9479 * decl.c (duplicate_decls): Likewise.
9480 (builtin_function): Likewise.
9481 (build_library_fn): Likewise.
9482 (build_cp_library_fn): Likewise.
9483 (check_initializer): Likewise.
9484 (cp_finish_decl): Likewise.
9485 * decl2.c (grokfield): Likewise.
9486 (grok_function_init): Remove #if 0'd code.
9487 (finish_anon_union): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc.
9488 * friend.c (do_friend): Likewise.
9489 * init.c (get_temp_regvar): Likewise.
9490 * method.c (make_thunk): Likewise.
9491 * pt.c (tsubst_friend_function): Likewise.
9492 (tsubst_decl): Likewise.
9493 (regenerate_decl_from_template): Likewise.
9494 * semantics.c (genrtl_named_return_value): Likewise.
9495 (expand_body): Likewise.
9496 (genrtl_finish_function): Likewise.
9497 * tree.c (cp_tree_equal): Likewise.
11fe225a 9498
78fe06c2
NS
94992001-03-12 Nathan Sidwell <nathan@codesourcery.com>
9500
9501 * call.c (convert_like_real): Add extra semantics to INNER
9502 parameter. Don't convert to temporary if a user conversion
9503 gives us an lvalue that we're about to bind to a reference.
9504 Set INNER to indicate pending reference binding on recursive
9505 calls.
9506
b3e68a79
NB
95072001-03-10 Neil Booth <neil@daikokuya.demon.co.uk>
9508
9509 * cp/lex.c: Delete duplicate pending_lang_change.
9510
95112001-03-10 Neil Booth <neil@daikokuya.demon.co.uk>
9512
9513 * cp/lex.c (handle_pragma_interface, handle_pragma_implementation):
9514 Similarly.
9515 * cp/repo.c (get_base_filename, open_repo_file): Similarly.
9516 * cp/cp-tree.h: Remove file_name_nondirectory prototype.
9517
11642c3a
ZW
95182001-03-09 Zack Weinberg <zackw@stanford.edu>
9519
9520 * Make-lang.in: Add dependencies on $(TM_P_H) as appropriate.
9521
bb6852eb 95222001-03-08 Stan Shebs <shebs@apple.com>
f7687817
SS
9523
9524 * cp-tree.h (set_identifier_local_value): Remove unused decl.
9525
cc937581
ZW
95262001-03-06 Zack Weinberg <zackw@stanford.edu>
9527
9528 * spew.c: Remove references to CPP_OSTRING.
9529
d1188d91
AH
95302001-03-06 Andrew Haley <aph@redhat.com>
9531
9532 * typeck.c (convert_arguments): Check that we have an fndecl.
9533
4eaf1d5b
AH
95342001-03-05 Andrew Haley <aph@redhat.com>
9535
9536 * typeck.c (convert_arguments): Don't do ellipsis conversion for
9537 __built_in_constant_p.
9538
7eeb553c
NS
95392001-03-02 Nathan Sidwell <nathan@codesourcery.com>
9540
9541 * typeck.c (build_static_cast): Allow enum to enum conversions
9542 as per DR 128.
9543
d282fcb2
NS
95442001-03-02 Nathan Sidwell <nathan@codesourcery.com>
9545
9546 * class.c (check_field_decls): Pointers to member do not a
9547 non-pod struct make, as per DR 148.
9548
f86fdf68
NS
95492001-03-02 Nathan Sidwell <nathan@codesourcery.com>
9550
9551 * call.c (joust): cp_pedwarn when using gnu extension concerning
9552 worst conversion sequences.
9553
d6edb99e
ZW
95542001-03-01 Zack Weinberg <zackw@stanford.edu>
9555
9556 * decl.c: Replace all uses of 'boolean' with 'bool'.
9557
f7143427
ZW
95582001-03-01 Zack Weinberg <zackw@stanford.edu>
9559
9560 * lang-specs.h: Add zero initializer for cpp_spec field to
9561 all array elements that need one. Don't put an #ifdef inside
9562 the initializer list; set a default for CPLUSPLUS_CPP_SPEC and
9563 use it.
9564
fbfe8c9e
NS
95652001-03-01 Nathan Sidwell <nathan@codesourcery.com>
9566
9567 Implement using decls inside template functions.
9568 * decl2.c (validate_nonmember_using_decl): Don't special case
9569 fake_std_node in the global namespace. Don't reject early when
9570 processing a template.
9571 (do_local_using_decl): Add to statement tree. Don't do further
9572 processing when building a template.
9573 * pt.c (tsubst_expr, DECL_STMT case): Deal with USING_DECLs.
9574
4d24a889
NS
95752001-03-01 Nathan Sidwell <nathan@codesourcery.com>
9576
9577 * decl2.c (do_nonmember_using_decl): Don't complain if we find
9578 same function. Do complain about ambiguating extern "C"
9579 declarations.
9580
e5844e6d
NS
95812001-02-28 Nathan Sidwell <nathan@codesourcery.com>
9582
9583 Remove floating point and complex type template constant parms.
9584 * pt.c (convert_nontype_argument): Remove REAL_TYPE and
9585 COMPLEX_TYPE extensions.
9586 (invalid_nontype_parm_type_p): Likewise.
9587
788f238c
JO
95882001-02-27 Jeffrey Oldham <oldham@codesourcery.com>
9589
9590 * except.c (call_eh_info): Revert "match_function"'s type.
9591
73ea87d7
NS
95922001-02-27 Nathan Sidwell <nathan@codesourcery.com>
9593
9594 Fix ctor vtable vcall offsets.
9595 * class.c (struct vtbl_init_data_s): Add rtti_binfo member.
9596 (build_rtt_vtbl_entries): Lose RTTI_BINFO parameter.
9597 (get_matching_base): Remove.
9598 (get_original_base): New function.
11fe225a 9599 (build_vtbl_initializer): Initialize vid.rtti_binfo.
73ea87d7
NS
9600 Use a virtual thunk for a ctor vtable with an index
9601 (add_vcall_offset_vtbl_entries_1): Check if binfo has lost a
9602 primary base within a constructor vtable. Only set
9603 BV_VCALL_INDEX when not a constructor vtable. Adjust vcall offset
9604 when primary base has been lost.
9605 * cp-tree.h (BINFO_VIRTUALS): Remove ambiguity from comment.
9606
fe730161
JO
96072001-02-26 Jeffrey Oldham <oldham@codesourcery.com>
9608
9609 * call.c (joust): Ensure more_specialized()'s argument length
9610 parameter has correct value for constructors.
9611
e5dd4aad
NS
96122001-02-26 Nathan Sidwell <nathan@codesourcery.com>
9613
9614 * except.c (call_eh_info): Cleanup generation of cp_eh_info struct.
11fe225a 9615
e5dd4aad
NS
9616 * decl.c (mark_inlined_fns): Prototype.
9617
25200ab2
MM
96182001-02-22 Mark Mitchell <mark@codesourcery.com>
9619
9620 * spew.c (yylex): Correct handling of friends.
9621
f58c04ac
MM
96222001-02-22 Mark Mitchell <mark@codesourcery.com>
9623
9624 * mangle.c (write_encoding): Pass write_function_type the
9625 FUNCTION_DECL for the function being encoded.
9626 (write_function_type): Pass it along to write_bare_function_type.
9627 (write_bare_function_type): Pass it along to write_method_parms.
9628 (write_method_parms): Don't mangle the compiler-generated
9629 parameters to a constructor or destructor.
9630
9c96f3f8
AJ
96312001-02-22 Andreas Jaeger <aj@suse.de>
9632
9633 * optimize.c: Include toplev.h for
9634 note_deferral_of_defined_inline_function prototype.
9635
b3bae5e2
JJ
96362001-02-22 Jakub Jelinek <jakub@redhat.com>
9637
9638 * cp-tree.h (struct lang_decl_inlined_fns): New.
9639 (struct lang_decls): Add inlined_fns.
9640 (DECL_INLINED_FNS): New macro.
9641 * optimize.c (struct inline_data): Add inlined_fns.
9642 (declare_return_variable): Use VARRAY_ACTIVE_SIZE macro.
9643 (inlinable_function_p): Likewise, fix typo in comment,
9644 function is not inlinable if it already inlined function currently
9645 being optimized.
306ef644 9646 (expand_call_inline): Add fn to inlined_fns if necessary.
b3bae5e2
JJ
9647 (optimize_function): Initialize inlined_fns.
9648 Save inlined_fns into DECL_INLINED_FNS after expanding inlines.
9649 * decl.c (mark_inlined_fns): New function.
9650 (lang_mark_tree): Call it.
9651
5daf7c0a
JM
96522001-02-21 Jason Merrill <jason@redhat.com>
9653
9654 * cp-tree.h (struct lang_decl_flags): Remove uninlinable flag.
9655 (DECL_UNINLINABLE): Move to middle-end.
9656
9657 * class.c (clone_function_decl): Set DECL_ABSTRACT on original fn.
9658 * decl.c (duplicate_decls): Preserve DECL_ABSTRACT.
9659 * class.c (build_clone): Set DECL_ABSTRACT_ORIGIN for the clone.
9660 * optimize.c (maybe_clone_body): Set DECL_ABSTRACT_ORIGIN for the
9661 parms and outer BLOCK. note_deferral_of_defined_inline_function.
9662
9663 * method.c (implicitly_declare_fn): Don't set DECL_ARTIFICIAL on
9664 second parm of op=.
9665
2c0fc02d
MM
96662001-02-19 Mark Mitchell <mark@codesourcery.com>
9667
9668 * decl2.c (set_decl_namespace): Allow explicit instantiations in
9669 any namespace.
9670
612164eb
KL
96712001-02-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
9672
9673 * optimize.c (expand_call_inline): Don't walk subtrees of type
9674 nodes.
9675
69a59a49
MM
96762001-02-18 Mark Mitchell <mark@codesourcery.com>
9677
9678 * class.c (add_vcall_offset_vtbl_entries_1): Only add one entry
9679 for a destructor.
9680
e0fff4b3
JM
96812001-02-18 Jason Merrill <jason@redhat.com>
9682
9683 Do put the VTT parameter in DECL_ARGUMENTS.
9684 * cp-tree.h (struct cp_language_function): Add x_vtt_parm.
9685 (current_vtt_parm): New macro.
9686 (struct lang_decl_flags): Add has_vtt_parm_p, remove vtt_parm.
9687 (DECL_HAS_VTT_PARM_P): New macro.
9688 (DECL_VTT_PARM): Remove.
9689 (FUNCTION_FIRST_USER_PARMTYPE, FUNCTION_FIRST_USER_PARM): New macros.
9690 * decl.c (duplicate_decls): Only copy the operator code if
9691 appropriate.
9692 (start_function): Set current_vtt_parm.
9693 (lang_mark_tree): Don't mark vtt_parm.
9c96f3f8 9694 * decl2.c (maybe_retrofit_in_chrg): Do add the VTT parm to
e0fff4b3
JM
9695 DECL_ARGUMENTS. Set DECL_HAS_VTT_PARM_P.
9696 * class.c (build_clone): Maybe remove the VTT parm.
9697 * optimize.c (maybe_clone_body): Set up the VTT parm.
9698 * pt.c (copy_default_args_to_explicit_spec): Preserve the VTT parm.
9699 * call.c (build_over_call): Just allow the VTT arg.
9700 * method.c (make_thunk): Don't set DECL_VTT_PARM.
9701 (do_build_copy_constructor): Use FUNCTION_FIRST_USER_PARM.
9702 (synthesize_method): Use FUNCTION_FIRST_USER_PARMTYPE.
9703 * decl.c (grokdeclarator, copy_args_p, grok_ctor_properties): Likewise.
9704 * error.c (dump_function_decl): Likewise.
9705 * call.c (build_user_type_conversion_1, convert_like_real): Abort
9706 if we try to call a constructor with in-charge or VTT parms.
9707 * method.c (skip_artificial_parms_for): New fn.
9708 * call.c (add_function_candidate, build_over_call): Call it.
9709 * call.c (build_new_method_call): Use current_vtt_parm.
9710 * init.c (expand_virtual_init): Likewise.
9711 * class.c (same_signature_p): No longer static.
9712 * cp-tree.h: Declare it.
9713 * search.c (look_for_overrides_r): Use it.
9714
c750255c
MM
97152001-02-17 Mark Mitchell <mark@codesourcery.com>
9716
8fa33dfa
MM
9717 * cp-tree.h (new_abi_rtti_p): Remove.
9718 (name_mangling_version): Likewise.
9719 (flag_do_squangling): Likewise.
9720 * class.c (build_rtti_vtbl_entries): Remove old ABI support.
9721 * decl.c (grokfndecl): Likewise.
9722 * decl2.c (name_mangling_version): Remove.
9723 (flag_do_squangling): Likewise.
9724 (lang_f_options): Remove `squangle'.
9725 (unsupported_options): Add `squangle'.
9726 (cxx_decode_option): Issue a warning about uses of
9727 -fname-mangling-version.
9728 (finish_file): Remove old ABI support.
9729 * pt.c (check_explicit_specialization): Likewise.
9730 (tsubst_decl): Likewise.
9731 * rtti.c (init_rtti_processing): Likewise.
9732 (build_headof): Likewise.
9733 (get_tinfo_decl_dynamic): Likewise.
9734 (tinfo_from_decl): Likewise.
9735 (build_dynamic_cast_1): Likewise.
9736 (synthesize_tinfo_var): Likewise.
12fa82db
MM
9737 * init.c (build_new): Allow enumeration types for the array-bounds
9738 in a direct-new-declarator.
9739
9740 * semantics.c (finish_typeof): Resolve OFFSET_REFs.
9741
c750255c
MM
9742 * pt.c (check_explicit_specialization): Copy TREE_PRIVATE and
9743 TREE_PROTECTED from the template being specialized.
9744
a714e5c5
JM
97452001-02-17 Jason Merrill <jason@redhat.com>
9746
9747 * decl2.c (build_artificial_parm): Set TREE_READONLY.
9748
9c96f3f8 9749 * decl.c (bad_specifiers): Allow throw specs on things with
a714e5c5
JM
9750 pointer-to-function or -member-function type.
9751 * init.c (build_default_init): Don't use a CONSTRUCTOR to initialize
9752 a pmf.
9753
8084b91e
MM
97542001-02-17 Mark Mitchell <mark@codesourcery.com>
9755
9756 * call.c (check_dtor_name): Handle template names correctly.
9757
48f22ed2
JM
97582001-02-16 Jason Merrill <jason@redhat.com>
9759
9760 * cp-tree.h (DECL_USE_VTT_PARM): Remove.
9761 * decl2.c (maybe_retrofit_in_chrg): Don't create it.
9762 * optimize.c (maybe_clone_body): Don't substitute it.
9763 * call.c (build_new_method_call): Check in_chrg instead.
9764 * init.c (expand_virtual_init): Likewise.
9765
e8186ecf
GDR
97662001-02-16 Gabriel Dos Reis <gdr@codesourcery.com>
9767
9768 * decl.c (check_tag_decl): Make sure a typedef for an anonymous
9769 class-type introduces at least a type-name.
9770
2c1be322
JJ
97712001-02-16 Jakub Jelinek <jakub@redhat.com>
9772
9773 * call.c (convert_like_real): Create a temporary for non-lvalue.
9774
aab8454a
JO
97752001-02-16 Jeffrey Oldham <oldham@codesourcery.com>
9776
9777 * cp-tree.h: Fix typos in comments.
9778
a901fa64
JM
97792001-02-16 Jason Merrill <jason@redhat.com>
9780
9781 * optimize.c (remap_block): If we're compiling a clone, pass the
9782 new block to insert_block.
9783
8853373c
MM
97842001-02-16 Mark Mitchell <mark@codesourcery.com>
9785
9786 * semantics.c (finish_asm_stmt): Robustify.
9787
b60ecc04
MM
97882001-02-15 Mark Mitchell <mark@codesourcery.com>
9789
9790 * pt.c (push_template_decl_real): Don't remangle the name of a
9791 class template.
9792
e658449e
JM
97932001-02-15 Jim Meyering <meyering@lucent.com>
9794
fd48c9b5
DD
9795 * Make-lang.in (c++.install-common): Depend on installdirs.
9796 (c++.install-info): Likewise.
9797 (c++.install-man): Likewise.
e658449e 9798
f1a3f197
MM
97992001-02-15 Mark Mitchell <mark@codesourcery.com>
9800
9801 * typeck2.c (build_m_component_ref): Robustify.
9802
8826b15b
AO
98032001-02-15 Alexandre Oliva <aoliva@redhat.com>
9804
9805 * friend.c (do_friend): Don't take the nested [template] class
9806 into account when deciding whether to warn about the friend
9807 function not referring to a template function.
9808
7161c1a5
JJ
98092001-02-14 Jakub Jelinek <jakub@redhat.com>
9810
9811 * typeck.c (build_unary_op): Clarify error message.
9812
4806765e
AH
98132001-02-08 Aldy Hernandez <aldyh@redhat.com>
9814
a901fa64
JM
9815 * parse.y (component_constructor_declarator): allow optional
9816 parentheses around constructor class name.
4806765e 9817
bfc8e1e2
NS
98182001-02-14 Nathan Sidwell <nathan@codesourcery.com>
9819
9820 * cp-tree.h (setup_vtbl_ptr): Move prototype to semantics.c
9821 section.
9822 * init.c (emit_base_init): Remove incorrect comment about
9823 virtual bases.
9824 * method.c (make_thunk): Fix comment alignment.
9825
394fd776
NS
98262001-02-14 Nathan Sidwell <nathan@codesourcery.com>
9827
9828 Kill remnants of this is variable.
9829 * cp-tree.h (flag_this_is_variable): Remove.
9830 * decl2.c (flag_this_is_variable): Remove.
9831 * class.c (fixed_type_or_null): Add cdtor parm. Adjust.
9832 (build_vbase_path): The path is non-static, even in a cdtor.
9833 (resolves_to_fixed_type_p): Add additional return value.
9834 * search.c (init_vbase_pointers): Adjust.
9835 * tree.c (lvalue_p_1): Adjust.
9836 * typeck.c (mark_addressable): Adjust.
9837
d0ab7624
NS
98382001-02-14 Nathan Sidwell <nathan@codesourcery.com>
9839
9840 * pt.c (unify): Don't check cv quals of array types.
9841
7773899b
NS
98422001-02-14 Nathan Sidwell <nathan@codesourcery.com>
9843
9844 * tree.c (cp_build_qualified_type_real): Use CP_TYPE_QUALS to
9845 check whether we already have the type.
9846
52682a1b
MM
98472001-02-13 Mark Mitchell <mark@codesourcery.com>
9848
9849 * cp-tree.h (CLASSTYPE_DESTRUCTORS): Fix typo in comment.
9850 * call.c (build_op_delete_call): Simplify to remove duplicate
9851 code.
9852 * class.c (clone_function_decl): Don't build the deleting variant
9853 of a non-virtual destructor.
9854 * decl.c (finish_destructor_body): Don't call delete if this is a
9855 non-virtual destructor.
9856 * init.c (build_delete): Explicitly call `operator delete' when
9857 deleting an object with a non-virtual destructor.
9c96f3f8 9858
3b6bd115
JM
98592001-02-13 Jason Merrill <jason@redhat.com>
9860
9861 * lang-specs.h: Add more __EXCEPTIONS.
9862
45abaea8
NS
98632001-02-12 Nathan Sidwell <nathan@codesourcery.com>
9864
9865 * typeck2.c (process_init_constructor): Check
9866 TREE_HAS_CONSTRUCTOR before issuing missing init warning.
9867
996065b4
NS
98682001-02-12 Nathan Sidwell <nathan@codesourcery.com>
9869
9870 * pt.c (maybe_adjust_types_for_deduction, DEDUCE_ORDER case):
9871 Remove spurious information in comment. Allow further
9872 adjustments of REFERENCE_TYPE args.
9873
82c18d5c
NS
98742001-02-12 Nathan Sidwell <nathan@codesourcery.com>
9875
9876 * errfn.c (cp_deprecated): Tweak diagnostic text.
9877 * parse.y (new_initializer): Deprecate initializer lists
9878 extension.
9879
1f84ec23
MM
98802001-02-12 Mark Mitchell <mark@codesourcery.com>
9881
9882 Remove old ABI support.
9883
8c310e3f
MM
98842001-02-11 Mark Mitchell <mark@codesourcery.com>
9885
b1012f1b
MM
9886 * decl2.c (flag_vtable_thunks): Always set it to 1.
9887 (flag_new_abi): Likewise.
9888 * lang-specs.h: Remove conditional on ENABLE_NEW_GXX_ABI.
9c96f3f8 9889
8c310e3f
MM
9890 * Makefile.in (g++spec.o): Fix typo.
9891
3b635dfc
JM
98922001-02-09 Jason Merrill <jason@redhat.com>
9893
9894 * lang-specs.h: Restore definition of __EXCEPTIONS.
9895
bd0d5d4a
JM
98962001-02-08 Jason Merrill <jason@redhat.com>
9897
9898 * search.c (shared_member_p): New function.
9899 (lookup_field_r): Use it.
9900 * cp-tree.h (SHARED_MEMBER_P): Remove.
9901
9902 * method.c (process_overload_item): Handle template-dependent array
9903 bounds.
9904 * pt.c (type_unification_real): If we end up with undeduced nontype
9905 parms, try again.
9906
9907 * decl.c (lookup_name_real): Tweak warning to refer to decls, not
9908 types.
9909
9910 * typeck2.c (friendly_abort): Don't say anything if we have
9911 earlier errors or sorries.
9912
9c96f3f8 9913 * decl.c (check_tag_decl): Notice attempts to redefine bool and
bd0d5d4a
JM
9914 wchar_t. Ignore if in_system_header.
9915
9916 * decl.c (maybe_push_cleanup_level): New fn...
9917 (start_decl_1): ...split out from here.
9918 * cvt.c (build_up_reference): Use it.
9919 * cp-tree.h: Declare it.
9920
a9374841
MM
99212001-02-07 Mark Mitchell <mark@codesourcery.com>
9922
9c96f3f8 9923 * lang-specs.h: Use CPLUSPLUS_CPP_SPEC for the preprocessor
a9374841
MM
9924 spec.
9925
a87b4257
NS
99262001-02-06 Nathan Sidwell <nathan@codesourcery.com>
9927
9928 * pt.c (lookup_template_class): Make sure it's a primary
9929 template or template_template_parm when called from the parser.
9930 (instantiate_template_class): Add assertion.
9931
518fed76
AO
99322001-02-05 Alexandre Oliva <aoliva@redhat.com>
9933
9934 * method.c (build_mangled_name) [old abi]: Protect flush_repeats()
9935 from error_mark_node.
9936
9965d119
NS
99372001-02-05 Nathan Sidwell <nathan@codesourcery.com>
9938
9939 Fix specification and implementation bugs in V3 ABI
9940 construction vtables.
9941 * cp-tree.h (flag_dump_class_layout): New flag.
9942 (BINFO_OVERRIDE_ALONG_VIRTUAL_PATH_P): Remove.
9943 (BINFO_LOST_PRIMARY_P): New flag.
9944 (SET_BINFO_NEW_VTABLE_MARKED): Adjust asserts.
9945 (BINFO_PRIMARY_MARKED_P): Rename to ...
9946 (BINFO_PRIMARY_P): ... here.
9947 (binfo_via_virtual): New prototype.
9948 * decl2.c (flag_dump_class_layout): New flag.
9949 (cxx_decode_option): Set it. Adjust -fdump-translation-unit to
9950 use `=' as a file name separator.
9951 * init.c (dfs_initialize_vtbl_ptrs): Walk into virtual primary
9952 bases.
9953 (build_vtbl_address): If this is a virtual primary base, then
9954 get the vtbl of what it is ultimately primary for.
9955 * search.c (dfs_skip_nonprimary_vbases_unmarkedp): Adjust
9956 for BINFO_PRIMARY_P.
9957 (dfs_skip_nonprimary_vbases_markedp): Likewise.
9958 (get_shared_vbase_if_not_primary): Likewise.
9959 (dfs_get_pure_virtuals): Likewise.
9960 (expand_upcast_fixups): Likewise.
9961 (fixup_virtual_upcast_offsets): Likewise.
9962 (dfs_find_vbase_instance): Likewise.
9963 (find_vbase_instance): Likewise.
9964 (binfo_from_vbase): Adjust comment to reflect reality.
9965 (binfo_via_virtual): New function.
9966 * class.c (VTT_TOP_LEVEL_P, VTT_MARKED_BINFO_P): New macros
9967 for binfo walking during VTT construction.
9968 (dfs_mark_primary_bases): Remove.
9969 (force_canonical_binfo_r): New function.
9970 (force_canonical_binfo): New function.
9971 (mark_primary_virtual_base): New function.
9972 (mark_primary_bases): Walk in inheritance graph order, use
9973 mark_primary_virtual_base.
9974 (determine_primary_base): Use some more intermediate variables.
9975 (dfs_find_final_overrider): Don't check for overriding along a
9976 virtual path.
9977 (dfs_modify_vtables): Walk into primary virtual bases too.
9978 (walk_subobject_offsets): Adjust for BINFO_PRIMARY_P.
9979 (build_base_fields): Likewise.
9980 (dfs_set_offset_for_unshared_vbases): Likewise.
9981 (layout_virtual_bases): Likewise.
9982 (end_of_class): Likewise.
9983 (finish_struct_1): Call dump_class_hierarchy, if requested.
9984 (dfs_get_primary_binfo): Use BINFO_TYPE for binfos.
9985 (dump_class_hierarchy_r): Add stream parameter. Emit more information.
9986 (dump_class_hierarchy): Add file parameter. Append to file, if
9987 required.
9988 (finish_vtbls): Adjust accumulate_vtbl_inits call.
9989 Use canonical base for virtual bases.
9990 (build_vtt): Add more comments. Adjust build_vtt_inits call.
9991 (build_vtt_inits): Remove VIRTUAL_VTTS_P parm.
9992 Only set BINFO_VPTR_INDEX on top level. Use VTT_TOP_LEVEL_P,
9993 VTT_MARKED_BINFO_P for binfo walking. Use canonical vbase for
9994 virtual VTTs.
9995 (dfs_build_secondary_vptr_vtt_inits): Extract VTT_TOP_LEVEL_P
9996 from DATA. We want virtual primary bases and all bases via virtual.
9997 Only set BINFO_VPTR_INDEX for top level. Look up from a primary
9998 virtual base when not a construction vtable.
9999 (dfs_ctor_vtable_bases_queue_p): New DFS predicate.
10000 (build_ctor_vtbl_group): Adjust accumulate_vtbl_inits call.
10001 Use canonical bases when processing virtual bases.
10002 (accumulate_vtbl_inits): We're interested in any base via a
10003 virtual path.
10004 (dfs_accumulate_vtbl_inits): If this is a primary virtual base
10005 within a construction vtable, determine what is being overridden.
10006 (build_vtbl_initializer): Add more comments
10007 (add_vcall_offset_vtbl_entries_1): Adjust comment.
10008 (build_rtti_vtbl_entries): Check if the base has lost its
10009 primary.
10010
39d6f2e8
MM
100112001-02-05 Mark Mitchell <mark@codesourcery.com>
10012
10013 * Makefile.in (g++spec.o): Adjust use of DRIVER_DEFINES.
10014
d2a6f3c0 100152001-02-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
400500c4
RK
10016
10017 * decl.c (pushdecl): Call abort instead of fatal.
10018 * except.c (decl_is_java_type): Call fatal_error instead of fatal.
10019 * init.c (build_new_1): Likewise.
10020 (build_java_class_ref): Call internal_error and fatal_error, not fatal.
10021 * decl.c (build_typename_type): hash_table_init now returns void.
10022 decl.c (init_decl_processing): Make an error non-fatal.
10023
97458258
MM
100242001-02-04 Mark Mitchell <mark@codesourcery.com>
10025
10026 * cp-tree.h (CLASSTYPE_INTERFACE_UNKNOWN): Fix formatting.
10027 Document.
10028 (CLASSTYPE_INTERFACE_KNOWN): Likewise.
10029 (SET_CLASSTYPE_INTERFACE_UNKNOWN_X): Likewise.
10030 (SET_CLASSTYPE_INTERFACE_UNKNOWN): Likewise.
10031 (SET_CLASSTYPE_INTERFACE_KNOWN): Likewise.
10032 * decl.c (maybe_commonize_var): Use the new name-mangling where
10033 appropriate.
10034 * decl2.c (comdat_linkage): Enhance comments. Make all
10035 compiler-generated things static, if COMDAT is not available.
10036 (get_tinfo_decl): Do not make typeinfo objects that belong in the
10037 library COMDAT.
10038 (tinfo_base_init): Use the correct mangled name for typeinfo
10039 strings, and push them into the global scope.
10040 (typeinfo_in_lib_p): New function.
10041 (synthesize_tinfo_var): Use it.
10042 (create_real_tinfo_var): Likewise.
9c96f3f8 10043
55de1b66
JJ
100442001-02-03 Jakub Jelinek <jakub@redhat.com>
10045
10046 * decl.c (push_class_binding): Use context_for_name_lookup instead
10047 of CP_DECL_CONTEXT.
10048 * search.c (context_for_name_lookup): Remove static. Check for NULL
10049 context in the loop.
10050 * cp-tree.h (context_for_name_lookup): Add prototype.
10051
e92730aa
JJ
100522001-02-02 Jakub Jelinek <jakub@redhat.com>
10053
10054 * cp-tree.h (build_expr_ptr_wrapper, can_free): Remove.
10055 * tree.c (build_expr_ptr_wrapper, can_free, permanent_obstack):
10056 Remove.
10057 * call.c (convert_class_to_reference, build_user_type_conversion_1,
10058 add_warning): Change build_expr_ptr_wrapper to build_ptr_wrapper.
10059
049f6ec9
MM
100602001-02-02 Mark Mitchell <mark@codesourcery.com>
10061
10062 * Make-lang.in (g++spec.o): Add DRIVER_DEFINES to the list
10063 of macros used when compiling g++spec.c.
10064 * g++spec.c (lang_specific_driver): Link with the shared
10065 libgcc by default.
10066
718b8ea5
JM
100672001-01-29 Joseph S. Myers <jsm28@cam.ac.uk>
10068
10069 * decl2.c (build_expr_from_tree), lex.c (make_pointer_declarator,
10070 make_reference_declarator, make_call_declarator), method.c
10071 (implicitly_declare_fn), parse.y (namespace_using_decl,
10072 notype_unqualified_id, expr_or_declarator, new_type_id,
10073 after_type_declarator, direct_after_type_declarator,
10074 notype_declarator, complex_notype_declarator,
10075 complex_direct_notype_declarator, qualified_id,
10076 notype_qualified_id, overqualified_id, direct_new_declarator,
10077 absdcl, direct_abstract_declarator, conversion_declarator), pt.c
10078 (tsubst), semantics.c (begin_constructor_declarator): Use build_nt
10079 instead of build_parse_node.
10080
f2d1f0ba
KG
100812001-01-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10082
10083 * cp-tree.h (cp_tree_index): Delete CPTI_MINUS_ONE.
10084 (minus_one_node): Moved to top level gcc directory. Renamed
10085 to integer_minus_one_node.
10086
10087 * init.c (init_init_processing): Don't set minus_one_node.
10088 (build_vec_init): Use integer_minus_one_node.
10089
10090 * rtti.c (get_tinfo_decl_dynamic): Likewise.
10091
6001735e
JJ
100922001-01-28 Jakub Jelinek <jakub@redhat.com>
10093
10094 * optimize.c (copy_body_r): If MODIFY_EXPR has both arguments
10095 identical and they would be replaced with constant, remove
10096 MODIFY_EXPR from the tree.
10097
c913b6f1
KG
100982001-01-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10099
10100 * Make-lang.in: Remove all dependencies on defaults.h.
10101 * call.c: Don't include defaults.h.
10102 * decl.c: Likewise.
10103 * decl2.c: Likewise.
10104 * except.c: Likewise.
10105 * pt.c: Likewise.
10106 * rtti.c: Likewise.
10107 * tree.c: Likewise.
10108 * typeck.c: Likewise.
10109
324ffb8c
JJ
101102001-01-25 Jakub Jelinek <jakub@redhat.com>
10111
10112 * mangle.c (write_mangled_name, write_encoding): Mangle overloaded
10113 operators even in "C" linkage.
10114 * method.c (set_mangled_name_for_decl): Likewise.
10115 * decl.c (grokfndecl): Call set_mangled_name_for_decl even for
10116 overloaded operators in "C" linkage.
10117
4b2811e9
NS
101182001-01-24 Nathan Sidwell <nathan@codesourcery.com>
10119
10120 * pt.c (tsubst_decl): Remove IN_DECL parameter.
10121 (tsubst_arg_types): Check parameter is not void.
10122 (tsubst): Adjust tsubst_decl call.
10123
d8caf48e
NS
101242001-01-24 Nathan Sidwell <nathan@codesourcery.com>
10125
10126 * call.c (add_builtin_candidate): Quote std properly, from
10127 previous change.
10128
08511114
KL
101292001-01-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
10130
10131 * pt.c (check_explicit_specialization): Clone constructors and
10132 destructors.
10133
92ecdfb7
NS
101342001-01-23 Nathan Sidwell <nathan@codesourcery.com>
10135
10136 * decl.c (grokdeclarator): Don't presume DECL_LANG_SPECIFIC
10137 indicates anything special about template depth. Make sure we
10138 only count the user visible template classes.
10139
4cff6abe
NS
101402001-01-23 Nathan Sidwell <nathan@codesourcery.com>
10141
10142 * call.c (build_conv): Typo in comment.
10143 (add_builtin_candidate): Add more explanation.
10144 Remove extra test for ENUMERAL_TYPE in {PRE,POST}INCREMENT_EXPR.
10145 Allow ENUMERAL_TYPEs for relops and eqops. Add both candidates
10146 when we have enumeral types.
10147 (add_builtin_candidates): Add more explanation. Add ENUMERAL_TYPE
10148 candidates for relops and eqops.
10149 (joust): Simplify control flow. Allow a non-template user
10150 function to hide a builtin.
10151
62e4a758
NS
101522001-01-22 Nathan Sidwell <nathan@codesourcery.com>
10153
10154 * cp-tree.h (unification_kind_t): Add DEDUCE_ORDER.
10155 (more_specialized): Add deduction parameter.
10156 * call.c (joust): Adjust more_specialized call.
10157 * pt.c (UNIFY_ALLOW_OUTER_MORE_CV_QUAL,
10158 UNIFY_ALLOW_OUTER_LESS_CV_QUAL): New unify flags.
10159 (get_bindings_order): Remove.
10160 (get_bindings_real): Add DEDUCE parameter.
10161 (maybe_adjust_types_for_deduction): Return extra unify flags. Do
10162 REFERENCE_TYPE jig for DEDUCE_ORDER.
10163 (type_unification_real): Deal with DEDUCE_ORDER. Use result of
10164 maybe_adjust_types_for_deduction.
10165 (more_specialized): Add DEDUCE parameter. Call get_bindings_real
10166 directly.
10167 (try_one_overload): Use result of maybe_adjust_types_for_deduction.
10168 (check_cv_quals_for_unify): Use new unify qualifier flags.
10169 (unify): Clear new unify qualifier flags.
10170 (get_bindings_real): Add DEDUCE parameter.
10171 (get_bindings): Adjust call to get_bindings_real.
10172 (get_bindings_overload): Likewise.
10173 (most_specialized_instantiation): Adjust call to
10174 more_specialized.
10175
2a2a9e5a
JM
101762001-01-19 Jason Merrill <jason@redhat.com>
10177
10178 * decl2.c (flag_vtable_thunks): Also depend on ENABLE_NEW_GXX_ABI.
10179
10180 * decl.c (init_decl_processing): Just force -fvtable-thunks on if
10181 -fnew-abi.
10182
60696c53
JM
101832001-01-19 Ute Pelkmann <scope.muc@t-online.de>
10184
10185 * decl2.c (arg_assoc_class): Fix double iteration logic.
10186
101872001-01-19 Jason Merrill <jason@redhat.com>
10188
10189 * init.c (build_delete): Always call convert_force to strip cv-quals.
10190
10191 * decl2.c (flag_new_abi): Depend on ENABLE_NEW_GXX_ABI.
10192 * lang-specs.h: Default ABI depends on ENABLE_NEW_GXX_ABI.
10193 * g++spec.c: Don't look at ENABLE_NEW_GXX_ABI.
10194
1e00f18c
NS
101952001-01-19 Nathan Sidwell <nathan@codesourcery.com>
10196
10197 * search.c (get_vbase_1): Count only virtual bases.
10198
e13bced2
NS
101992001-01-19 Nathan Sidwell <nathan@codesourcery.com>
10200
10201 * class.c (duplicate_tag_error): Robustify flag clearing.
10202
f9c244b8
NS
102032001-01-19 Nathan Sidwell <nathan@codesourcery.com>
10204
10205 * cp-tree.h (lookup_template_class): Add complain parm.
10206 * decl.c (lookup_namespace_name): Adjust call to
10207 lookup_template_class.
10208 (make_typename_type): Likewise.
10209 * semantics.c (finish_template_type): Likewise.
10210 * pt.c (lookup_template_class): Add complain parm. Adjust.
10211 (tsubst_aggr_type): Pass COMPLAIN down to lookup_template_class.
10212 (tsubst): Likewise.
10213
08c2df0f
NS
102142001-01-19 Nathan Sidwell <nathan@codesourcery.com>
10215
10216 * pt.c (copy_default_args_to_explicit_spec): Preserve
10217 object's CV quals. Reorganize.
10218
f5ceeec8
NS
102192001-01-18 Nathan Sidwell <nathan@codesourcery.com>
10220
10221 * typeck.c (build_modify_expr): Say `initialization' for
10222 INIT_EXPRs.
10223 * init.c (build_default_init): Convert to enumeral type, if
10224 needed.
10225
a1cfa434
JJ
102262001-01-18 Jakub Jelinek <jakub@redhat.com>
10227
10228 * parse.y (nomods_initdcl0): Properly set things up for
10229 initdcl0_innards.
10230
028d1f20
NS
102312001-01-18 Nathan Sidwell <nathan@codesourcery.com>
10232
10233 * pt.c (UNIFY_ALLOW_OUTER_LEVEL): New unify flag.
10234 (type_unification_real): Set it.
10235 (unify): Use it.
10236
9f724b6a
NS
102372001-01-18 Nathan Sidwell <nathan@codesourcery.com>
10238
10239 * decl.c (finish_destructor_body): Convert to vbase pointer here.
10240
522d6614
NS
102412001-01-18 Nathan Sidwell <nathan@codesourcery.com>
10242
10243 * semantics.c (begin_class_definition): Check we're not inside a
10244 template parm list.
10245
7f805b8f
NS
102462001-01-18 Nathan Sidwell <nathan@codesourcery.com>
10247
10248 * tree.c (walk_tree, TREE_LIST): Don't walk the TREE_PURPOSE of
10249 BASELINK_P.
10250
dc3799c1
KL
102512001-01-16 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
10252
10253 * typeck.c (build_function_call_real): Call fold on the CALL_EXPR.
10254 * call.c (build_over_call): Add comment.
10255
bb37c4a5
DB
102562001-01-16 Daniel Berlin <dberlin@redhat.com>
10257
826840d9
RH
10258 * cvt.c (ocp_convert): Handle vector type conversion
10259 * typeck2.c (digest_init): Handle vector type initializations
9c96f3f8 10260
a26e7fb5
PE
102612001-01-16 Phil Edwards <pme@sources.redhat.com>
10262
10263 * g++spec.c: Don't add libraries needlessly if -fsyntax-only
10264 was given.
10265
11b810f1
NS
102662001-01-15 Nathan Sidwell <nathan@codesourcery.com>
10267
10268 * pt.c (check_nontype_parm): Rename to ...
10269 (invalid_nontype_parm_type_p): ... here.
10270 (process_template_parm): Adjust.
10271 (convert_template_argument): Adjust.
10272
db3f4e4e
NS
102732001-01-15 Nathan Sidwell <nathan@codesourcery.com>
10274
10275 * pt.c (check_nontype_parm): New function.
10276 (process_template_parm): Use it.
10277 (convert_template_argument): Use it.
10278 (convert_nontype_argument, RECORD_TYPE): Assert it's a ptr to
10279 member.
10280
ea4f1fce
JO
102812001-01-14 Jeffrey Oldham <oldham@codesourcery.com>
10282
10283 * tree.c: Add defaults.h
10284 (cp_valid_lang_attribute): Incorporate SUPPORTS_INIT_PRIORITY.
10285 * Make-lang.in (cp/tree.o): Add defaults.h.
10286
1312c143
JM
102872001-01-13 Joseph S. Myers <jsm28@cam.ac.uk>
10288
10289 * Make-lang.in (CXX_C_OBJS): Add c-format.o.
10290
4bc1997b
JM
102912001-01-13 Joseph S. Myers <jsm28@cam.ac.uk>
10292
10293 * g++.1: Change to be ".so man1/gcc.1".
10294
23de1fbf
JM
102952001-01-13 Joseph S. Myers <jsm28@cam.ac.uk>
10296
10297 * Make-lang.in (c++.info, c++.install-info): Build and install g++
10298 internals info.
10299 (c++.uninstall, c++.maintainer-clean): Remove g++ internals info.
10300 ($(srcdir)/cp/g++int.info): New target.
10301 * gxxint.texi: Add info directory entry. Use @@ in email address.
10302 * .cvsignore: Update.
10303
0949f723
NS
103042001-01-12 Nathan Sidwell <nathan@codesourcery.com>
10305
10306 * typeck.c (build_c_cast): Do template processing earlier.
10307 Always pedwarn on array casts.
10308
a8641661
NS
103092001-01-12 Nathan Sidwell <nathan@codesourcery.com>
10310
10311 * friend.c (make_friend_class): Make sure a templated class is
10312 actually a template.
10313
844511c8
NS
103142001-01-11 Nathan Sidwell <nathan@codesourcery.com>
10315
10316 * decl2.c (get_guard): Set linkage from guarded decl.
10317
96a1e32d
NS
103182001-01-11 Nathan Sidwell <nathan@codesourcery.com>
10319
10320 * call.c (convert_default_arg): Check for unprocessed
10321 DEFAULT_ARG.
10322 * cp-tree.h (replace_defarg): Move to spew.c.
10323 (maybe_snarf_defarg, add_defarg_fn, do_pending_defargs): Move to
10324 spew.c, which is where they really are.
10325 (done_pending_defargs): Declare.
10326 (unprocessed_defarg_fn): Declare.
10327 * decl.c (replace_defarg): Move to spew.c
10328 * parse.y (structsp): Call done_pending_defargs.
10329 * spew.c (defarg_fns): Rearrange list structure.
10330 (defarg_fnsdone): New static variable.
10331 (defarg_depfns): New static variable.
10332 (init_spew): Adjust.
10333 (add_defarg_fn): Store the type in TREE_TYPE.
10334 (do_pending_defargs): Detect and deal with ordering constraints
10335 and circularity.
10336 (done_pending_defargs): New function.
10337 (unprocessed_defarg_fn): New function.
10338 (replace_defarg): Moved from decl.c. Robustify. Don't save
10339 if circularity detected.
10340
34e225a3
NS
103412001-01-11 Nathan Sidwell <nathan@codesourcery.com>
10342
10343 * pt.c (unify): Check array has a domain, before checking
10344 whether it is variable sized.
10345
98979fe0
NS
103462001-01-11 Nathan Sidwell <nathan@codesourcery.com>
10347
10348 * decl.c (grokparms): Unobfuscate and get correct diagnostic for
10349 parameters with pointers to arrays of unknown bound.
10350
b37bf5bd
NS
103512001-01-11 Nathan Sidwell <nathan@codesourcery.com>
10352
10353 * parse.y (template_parm_header, template_spec_header): New
10354 reductions. Split out from ...
10355 (template_header): ... here. Use them.
10356 (template_template_parm): Use template_parm_header.
10357 * semantics.c (finish_template_template_parm): Add assert.
10358
6c418184
MM
103592001-01-10 Mark Mitchell <mark@codesourcery.com>
10360
792508b5
MM
10361 * mangle.c (write_builtin_type): Fix thinko.
10362
8afa707f
MM
10363 * pt.c (copy_default_args_to_explicit_spec_1): New function.
10364 (copy_default_args_to_explicit_spec): Likewise.
10365 (check_explicit_specialization): Use it.
10366
6c418184
MM
10367 * class.c (finish_struct_1): Remove last argument in call to
10368 make_decl_rtl; use make_function_rtl instead of make_decl_rtl.
10369 * decl.c (builtin_function): Likewise.
10370 (build_cp_library_fn): Likewise.
10371 (check_initializer): Likewise.
10372 (make_rtl_for_nonlocal_decl): Likewise.
10373 (cp_finish_decl): Likewise.
10374 (start_function): Likewise.
10375 * decl2.c (finish_anon_union): Likewise.
10376 * friend.c (do_friend): Likewise.
10377 * init.c (build_java_class_ref): Likewise.
10378 * method.c (make_thunk): Likewise.
10379 * pt.c (tsubst_friend_function): Likewise.
10380 * semantics.c (expand_body): Likewise.
10381
31d95fc6
MM
103822001-01-10 Mark Mitchell <mark@codesourcery.com>
10383
10384 * cp-tree.h (DECL_CLONED_FUNCTION_P): Avoid wild reads by not
10385 looking at DECL_CLONED_FUNCTION for non-functions.
10386
31bb3027
NS
103872001-01-10 Nathan Sidwell <nathan@codesourcery.com>
10388
10389 * error.c (dump_template_parameter): Use parm to determine how
10390 to print default value.
10391
fd3f43e7
NS
103922001-01-10 Nathan Sidwell <nathan@codesourcery.com>
10393
10394 * class.c (duplicate_tag_error): Clear more flags.
10395
042b4c4e
NS
103962001-01-10 Nathan Sidwell <nathan@codesourcery.com>
10397
10398 * call.c (build_new_method_call): Use binfo_for_vbase.
10399
a7537031
JM
104002001-01-10 Joseph S. Myers <jsm28@cam.ac.uk>
10401
10402 * cp-tree.h (flag_cond_mismatch): Don't declare.
10403 * decl2.c (flag_cond_mismatch): Don't define.
10404 (lang_f_options): Remove cond-mismatch.
10405 (unsupported_options): Add cond-mismatch.
10406
186c0fbe
NS
104072001-01-09 Nathan Sidwell <nathan@codesourcery.com>
10408
10409 * class.c (handle_using_decl): Reject using of constructor name
10410 of sourcing class. Allow injecting of a method with same name as
10411 nested class. Fixup error messages.
10412
28ec8d6b
JM
104132001-01-09 Joseph S. Myers <jsm28@cam.ac.uk>
10414
10415 * decl2.c (lang_decode_option): Handle -Wformat=2.
10416
3febd123
NS
104172001-01-08 Nathan Sidwell <nathan@codesourcery.com>
10418
10419 * cp-tree.h (lang_decl_flags): Rename defined_in_class to
10420 initialized_in_class.
10421 (DECL_DEFINED_IN_CLASS_P): Rename to ...
10422 (DECL_INITIALIZED_IN_CLASS_P): ... here, to reflect true meaning.
10423 * decl.c (duplicate_decls): Preseve DECL_INITIALIZED_IN_CLASS_P.
10424 (cp_finish_decl): Adjust for DECL_INITIALIZED_IN_CLASS_P.
10425 * pt.c (check_default_tmpl_args): Adjust for
10426 DECL_INITIALIZED_IN_CLASS_P.
10427 (instantiate_class_template): Likewise.
10428 (instantiate_decl): Check DECL_INITIALIZED_IN_CLASS_P.
9c96f3f8 10429
3febd123
NS
10430 * class.c (finish_struct): Constify saved_filename.
10431
1f0d71c5
NS
104322001-01-08 Nathan Sidwell <nathan@codesourcery.com>
10433
10434 * class.c (duplicate_tag_error): Adjust diagnostic.
10435 (finish_struct): Locally set location to start of struct.
10436 * decl.c (fixup_anonymous_aggr): Use cp_error_at.
10437
5bf15e84 104382001-01-08 Nathan Sidwell <nathan@codesourcery.com>
76191fdd
NS
10439
10440 * decl.c (struct binding_level): Adjust class_shadowed comments
10441 to reflect reality.
aba649ba 10442 (push_class_level_binding): Adjust comments to reflect reality.
76191fdd
NS
10443 Set IDENTIFIER_CLASS_VALUE when replacing an existing binding.
10444 Don't set TREE_VALUE on the class_shadowed list.
10445
23d4e4cc 104462001-01-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
9c96f3f8
AJ
10447
10448 * decl2.c (acceptable_java_type): Allow references too.
23d4e4cc
APB
10449 * init.c (build_java_class_ref): When using the new ABI, search
10450 `class$' and have it mangled with `mangle_decl.'
10451 * mangle.c (write_java_integer_type_codes): New function.
10452 (write_builtin_type): Detect and mangle Java integer and real
10453 types.
9c96f3f8 10454
0c58da3e
MM
104552001-01-07 Mark Mitchell <mark@codesourcery.com>
10456
10457 * decl2.c (grokfield): Don't accept `asm' specifiers for
10458 non-static data members.
10459
45b8ddb4
KG
104602001-01-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10461
10462 * expr.c (cplus_expand_expr): Don't reset `target'.
10463
96302433
NB
104642001-01-07 Neil Booth <neil@daikokuya.demon.co.uk>
10465
826840d9 10466 * cp/decl2.c (cxx_post_options): Call cpp_post_options.
96302433 10467
220bce48
NS
104682001-01-05 Nathan Sidwell <nathan@codesourcery.com>
10469
10470 * parse.y (template_datadef): Check for error_mark_node.
10471
bfa2cb33
NS
104722001-01-05 Nathan Sidwell <nathan@codesourcery.com>
10473
10474 * cp-tree.def (DEFAULT_ARG): Make `x' class.
10475
eaa7c03f
JM
104762001-01-04 Joseph S. Myers <jsm28@cam.ac.uk>
10477
10478 * decl.c (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE): Don't define.
10479 (record_builtin_type): Make non-static.
10480 (flag_short_double): Don't declare.
10481 (init_decl_processing): Remove the creation of many tree nodes now
10482 in c_common_nodes_and_builtins.
10483 (build_void_list_node): New function.
10484 * decl2.c (flag_short_double, flag_short_wchar): Don't define.
10485 * cp-tree.h (flag_short_wchar): Don't declare.
10486
3af4c257
MM
104872001-01-04 Mark Mitchell <mark@codesourcery.com>
10488
10489 * call.c (build_conv): Don't use build1 for USER_CONV.
10490 * pt.c (tsubst_copy): Or for PREINCREMENT_EXPR and similar nodes.
10491
03dc0325
JM
104922001-01-03 Joseph S. Myers <jsm28@cam.ac.uk>
10493
10494 * lex.c (lang_init): Call c_common_lang_init.
10495
3c505507
NS
104962001-01-03 Nathan Sidwell <nathan@codesourcery.com>
10497
10498 * search.c (lookup_fnfields_here): Remove.
10499 (look_for_overrides_r): Use lookup_fnfields_1.
10500 Ignore functions from using declarations.
10501
03378143
NS
105022001-01-03 Nathan Sidwell <nathan@codesourcery.com>
10503
10504 Implement exceptions specifiers for implicit member functions.
10505 * cp-tree.h (merge_exceptions_specifiers): Declare new function.
10506 * method.c (synthesize_exception_spec): New function.
10507 (locate_dtor, locate_ctor, locate_copy): New functions.
10508 (implicitly_declare_fn): Generate the exception spec too.
10509 * search.c (check_final_overrider): Check artificial functions
10510 too.
9c96f3f8 10511 * typeck2.c (merge_exception_specifiers): New function.
03378143 10512
f30efcb7
JM
105132001-01-03 Jason Merrill <jason@redhat.com>
10514
10515 * init.c (build_default_init): New fn.
10516 (perform_member_init): Split out from here.
10517 (build_new_1): Use it. Simplify initialization logic.
10518 (build_vec_init): Take an array, rather than a pointer and maxindex.
10519 Speed up simple initializations. Don't clean up if we're assigning.
10520 * cp-tree.h: Adjust.
10521 * decl2.c (do_static_initialization): Remove TREE_VEC case.
10522 * parse.y (new_initializer): Return void_zero_node for ().
10523 * typeck.c (build_modify_expr): Handle getting a CONSTRUCTOR.
10524 * typeck2.c (digest_init): Only complain about user-written
10525 CONSTRUCTORs.
10526
a412bf75
MS
105272000-12-22 Mike Stump <mrs@wrs.com>
10528
10529 * decl2.c: (max_tinst_depth): Increase to 50.
10530
4890c2f4
MM
105312001-01-02 Mark Mitchell <mark@codesourcery.com>
10532
10533 * class.c (invalidate_class_lookup_cache): Zero the
10534 previous_class_values.
10535 * cp-tree.h (TMPL_PARMS_DEPTH): Use TREE_INT_CST_LOW, not
10536 TREE_INT_CST_HIGH.
10537 (CLASSTYPE_TEMPLATE_LEVEL): Likewise.
10538 * decl.c (free_bindings): New variable.
10539 (push_binding): Don't create a new binding if we have one on the
10540 free list.
10541 (pop_binding): Put old bindings on the free list.
10542 (init_decl_processing): Use size_int, not build_int_2.
10543 Register free_bindings as a GC root.
10544 (cp_make_fname_decl): Use size_int, not build_int_2.
10545 (push_inline_template_parms_recursive): Likewise.
10546 (end_template_parm_list): Likewise.
688f6688 10547 (for_each_template_parm): Do not use walk_tree_without_duplicates.
4890c2f4
MM
10548 (tsubst_template_parms): Use size_int, not build_int_2.
10549 (tsubst): Likewise.
10550 * rtti.c (get_vmi_pseudo_type_info): Likewise.
9c96f3f8 10551
4f78b9a8
RH
105522001-01-02 Richard Henderson <rth@redhat.com>
10553
10554 * parse.y (asm): Set ASM_INPUT_P.
10555
3c8c2a0a
JM
105562001-01-02 Jason Merrill <jason@redhat.com>
10557
96d6c610
JM
10558 * tree.c (cp_valid_lang_attribute): Don't set CLASSTYPE_COM_INTERFACE
10559 for v3 ABI.
10560
10561 * typeck.c (cp_truthvalue_conversion): New fn.
10562 * cvt.c (ocp_convert): Use it.
10563
10564 * cp-tree.h: Lose c-common.c decls.
10565
10566 * typeck.c (build_unary_op): Restore old &a.f diagnostic code.
10567 * cvt.c (convert_to_void): Use type_unknown_p.
10568
9c96f3f8 10569 * typeck.c (strip_all_pointer_quals): Also strip quals from
3c8c2a0a
JM
10570 pointer-to-member types.
10571
10572 * Make-lang.in (cp/TAGS): Use --no-globals. Ignore parse.c, and treat
10573 parse.y as C.
10574
10575 * call.c (build_new_method_call): Do evaluate the object parameter
10576 when accessing a static member.
10577 * typeck.c (build_component_ref): Likewise.
10578
d363e7bf
AJ
105792001-01-02 Andreas Jaeger <aj@suse.de>
10580
10581 * decl.c (cp_missing_noreturn_ok_p): New.
10582 (init_decl_processing): Set lang_missing_noreturn_ok_p.
10583
77f5250d
JJ
105842000-12-29 Jakub Jelinek <jakub@redhat.com>
10585
10586 * decl.c (init_decl_processing): Fix sign of wchar_type_node.
10587
31a714f6
MM
105882000-12-29 Mark Mitchell <mark@codesourcery.com>
10589
10590 * class.c (pushclass): Remove #if 0'd code.
10591 * cp-tree.h (overload_template_name): Remove.
10592 * decl.c (store_bindings): Simplify.
10593 (pop_from_top_level): Likewise.
10594 * pt.c (overload_template_name): Remove.
d363e7bf 10595 (instantiate_decl): Don't call push_to_top_level if it's not
31a714f6
MM
10596 needed.
10597
414ea4aa
MM
105982000-12-28 Mark Mitchell <mark@codesourcery.com>
10599
10600 * pt.c (register_local_specialization): Don't return a value.
10601 (lookup_template_class): Use move-to-front heuristic when looking
10602 up template instantiations.
10603 (instantiate_decl): Only push_to_top_level when we're actually
10604 going to instantiate the template.
10605
6f18f7e9
HPN
106062000-12-29 Hans-Peter Nilsson <hp@bitrange.com>
10607
10608 * search.c (binfo_for_vtable): Return least derived class, not
10609 most. Handle secondary vtables.
10610
e5214479
JM
106112000-12-22 Jason Merrill <jason@redhat.com>
10612
3c8c2a0a
JM
10613 * pt.c (more_specialized): Don't optimize len==0.
10614 (fn_type_unification): If we're adding the return type, increase len.
10615
ebb1abc3
JM
10616 * typeck.c (build_binary_op): Fix pmf comparison logic.
10617
c939ca5f
JM
10618 * call.c (joust): Use DECL_NONSTATIC_MEMBER_FUNCTION_P, not
10619 DECL_STATIC_FUNCTION_P.
10620
e6fe680d
JM
10621 * semantics.c (genrtl_finish_function): Don't try to jump to
10622 return_label unless it exists.
10623
e5214479
JM
10624 In partial ordering for a call, ignore parms for which we don't have
10625 a real argument.
10626 * call.c (joust): Pass len to more_specialized.
10627 (add_template_candidate_real): Strip 'this', pass len.
10628 * pt.c (more_specialized): Pass len down. Lose explicit_args parm.
10629 (get_bindings_order): New fn. Pass len down.
10630 (get_bindings_real): Strip 'this', pass len.
10631 (fn_type_unification): Likewise.
10632 (type_unification_real): Succeed after checking 'len' args.
10633 (most_specialized_instantiation): Lose explicit_args parm.
d363e7bf 10634 * class.c (resolve_address_of_overloaded_function): Strip 'this',
e5214479
JM
10635 pass len.
10636
106372000-12-21 Jason Merrill <jason@redhat.com>
477f6664
JM
10638
10639 * pt.c (tsubst_decl): A FUNCTION_DECL has DECL_RESULT, not
10640 DECL_TEMPLATE_RESULT.
10641
10642 * search.c (lookup_field_r): Call lookup_fnfields_1, not
10643 lookup_fnfields_here.
10644
10645 * parse.y (typename_sub2): Return the TYPE_DECL, not the type.
10646
10647 * call.c (build_object_call): Also allow conversions that return
10648 reference to pointer to function.
10649 (add_conv_candidate): Handle totype being ref to ptr to fn.
10650 (build_field_call): Also allow members of type reference to function.
10651 Lose support for calling pointer to METHOD_TYPE fields.
10652
10653 * error.c (dump_expr): Handle *_CAST_EXPR.
10654
10655 * typeck2.c (build_scoped_ref): Always convert to the naming class.
10656
10657 * tree.c (break_out_cleanups): Lose.
10658 * cp-tree.h: Remove prototype.
10659 * typeck.c (build_component_ref): Don't break_out_cleanups.
10660 (build_compound_expr): Likewise.
10661 * semantics.c (finish_expr_stmt): Likewise.
10662
3e4d04a1
RH
106632000-12-20 Richard Henderson <rth@redhat.com>
10664
10665 * cp-tree.h: Update declarations.
10666 * decl.c (finish_case_label): Return the new stmt node.
10667 * semantics.c (finish_goto_stmt): Likewise.
10668 (finish_expr_stmt, finish_return_stmt): Likewise.
10669 (finish_break_stmt, finish_continue_stmt): Likewise.
10670 (finish_asm_stmt): Likewise.
10671 * parse.y (already_scoped_stmt): Set STMT_LINENO.
10672 (compstmt, implicitly_scoped_stmt, stmt): Likewise.
10673 (simple_if, simple_stmt): Return the new stmt node.
10674 (save_lineno): New.
10675
20d380b1
JM
106762000-12-18 Joseph S. Myers <jsm28@cam.ac.uk>
10677
10678 * cp-tree.h: Don't declare warn_long_long.
10679
221c7a7f
KL
106802000-12-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
10681
10682 * tree.c (no_linkage_helper): Use CLASS_TYPE_P instead of
10683 IS_AGGR_TYPE.
10684
b429fdf0
KL
106852000-12-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
10686
10687 * pt.c (unify): Handle when both ARG and PARM are
10688 BOUND_TEMPLATE_TEMPLATE_PARM.
10689
c2beae77
KL
106902000-12-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
10691
10692 * pt.c (reduce_template_parm_level): Set DECL_ARTIFICIAL and
10693 DECL_TEMPLATE_PARM_P.
10694
c3e899c1
JM
106952000-12-15 Jason Merrill <jason@redhat.com>
10696
96790071
JM
10697 * init.c (build_new_1): Reorganize. Now with 100% fewer SAVE_EXPRs!
10698
8d42565b
JM
10699 * init.c (build_new_1): Don't strip quals from type.
10700
fab09a24
JM
10701 * decl.c (pushdecl): Don't check for linkage on a non-decl.
10702
c3e899c1
JM
10703 * call.c (build_op_delete_call): See through ARRAY_TYPEs.
10704
10705 * call.c (build_new_function_call): Lose space before paren in
10706 error message.
10707 (build_new_method_call): Likewise.
10708
10709 * typeck2.c (build_m_component_ref): Propagate quals from datum.
10710
edac124d
KL
107112000-12-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
10712
10713 * pt.c (check_explicit_specialization): Propagate default
10714 function arguments to explicit specializations.
10715
31750649 107162000-12-13 DJ Delorie <dj@redhat.com>
8d3b081e
DD
10717
10718 * typeck.c (build_binary_op): Do signed/unsigned warnings for >?
10719 and <? operators.
10720
5e818b93
JM
107212000-12-08 Jason Merrill <jason@redhat.com>
10722
10723 * error.c (dump_function_name): Don't let the user see __comp_ctor.
10724
10725 Clean up copy-initialization in overloading code.
10726 * call.c (build_user_type_conversion_1): Die if we are asked to
10727 convert to the same or a base type.
10728 (implicit_conversion): Avoid doing so. Lose reference binding code.
10729 (convert_like_real): Treat BASE_CONV and RVALUE_CONV as implicit
10730 direct-initialization. Also do direct-init part of copy-init.
10731 (build_user_type_conversion): Don't provide context to convert_like.
10732 * cvt.c (ocp_convert): build_user_type_conversion will now provide
10733 the constructor call for copy-init.
10734
10735 * pt.c (tsubst_decl): Call clone_function_decl here if this is an
10736 instantiation of a member template.
10737 (do_decl_instantiation): Not here.
10738
38da6039
NS
107392000-12-07 Nathan Sidwell <nathan@codesourcery.com>
10740
10741 * class.c (check_field_decls): Don't special case anonymous
10742 fields in error messages.
c9407e4c 10743 (note_name_declared_in_class): Use %D on diagnostic.
d363e7bf 10744
38da6039
NS
10745 * tree.c (pod_type_p): Use strip_array_types.
10746 (cp_valid_lang_attribute): Likewise.
10747 * typeck.c (cp_type_quals): Strip arrays separately, to avoid
10748 multiple evaluations.
d363e7bf 10749 (cp_has_mutable_p): Use strip_array_types.
38da6039 10750
a11d04b5
NS
107512000-12-07 Nathan Sidwell <nathan@codesourcery.com>
10752
10753 * cp-tree.h (sufficient_parms_p): Declare new function.
10754 * call.c (sufficient_parms_p): New function, broken out of ...
10755 (add_function_candidate): ... here. Use it.
10756 (add_conv_candidate): Use it.
10757 * decl.c (grok_ctor_properties): Use it.
10758
5eec2847
JJ
107592000-12-07 Jakub Jelinek <jakub@redhat.com>
10760
10761 * optimize.c (copy_body_r): Set STMT_IS_FULL_EXPR_P on EXPR_STMT.
10762
c907e684
JM
107632000-12-07 Joseph S. Myers <jsm28@cam.ac.uk>
10764
10765 * decl2.c (lang_decode_option): Handle -Wformat-security.
10766
74601d7c
KL
107672000-12-06 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
10768
10769 * pt.c (verify_class_unification): New function.
10770 (get_class_bindings): Use it.
10771 (try_class_unification): Tidy.
10772 (unify): Handle when argument of a template-id is not
10773 template parameter dependent.
10774 (template_args_equal): Handle when TREE_CODE's do not match.
10775
8954e858
AO
107762000-12-06 Alexandre Oliva <aoliva@redhat.com>
10777
10778 * lang-specs.h (c++): When invoking the stand-alone preprocessor
10779 for -save-temps, pass all relevant -Defines to it, and then don't
10780 pass them to cc1plus.
10781
3dc9aec6
WC
107822000-12-05 Will Cohen <wcohen@redhat.com>
10783
10784 * decl.c (finish_case_label): Cleared
10785 more_cleanups_ok in surrounding function scopes.
10786 (define_label): Likewise.
10787
cbb40945
NS
107882000-12-05 Nathan Sidwell <nathan@codesourcery.com>
10789
10790 * cp-tree.h (IDENTIFIER_VIRTUAL_P): Document.
10791 (get_matching_virtual): Remove.
10792 (look_for_overrides): Declare new function.
10793 * decl.c (grokfndecl): Don't set IDENTIFIER_VIRTUAL_P or
10794 DECL_VINDEX here.
10795 * class.c (check_for_override): Move base class iteration code
10796 to look_for_overrides.
10797 * search.c (next_baselink): Remove.
10798 (get_virtuals_named_this): Remove.
10799 (get_virtual_destructor): Remove.
10800 (tree_has_any_destructors_p): Remove.
10801 (struct gvnt_info): Remove.
10802 (check_final_overrider): Remove `virtual' from error messages.
10803 (get_matching_virtuals): Remove. Move functionality to ...
10804 (look_for_overrides): ... here, and ...
10805 (look_for_overrides_r): ... here. Set DECL_VIRTUAL_P, if found
10806 to be overriding.
10807
61402b80
NS
108082000-12-05 Nathan Sidwell <nathan@codesourcery.com>
10809
10810 * typeck.c (get_delta_difference): If via a virtual base,
10811 return zero.
10812 * cvt.c (cp_convert_to_pointer): If via a virtual base, do no
10813 adjustment.
10814
39abc9a6
RH
108152000-12-04 Richard Henderson <rth@redhat.com>
10816
10817 * error.c (dump_tree): Use output_add_string not OB_PUTS.
10818
c00996a3
JM
108192000-12-04 Jason Merrill <jason@redhat.com>
10820
10821 * mangle.c (write_type): Mangle VECTOR_TYPE with "U8__vector".
d363e7bf 10822 (write_builtin_type): Pass intSI_type_node and the like through
c00996a3
JM
10823 type_for_mode.
10824 * method.c (process_overload_item): Mangle VECTOR_TYPEs with 'o'.
10825 Pass intSI_type_node and the like through type_for_mode.
10826 * decl2.c (arg_assoc_type): Handle VECTOR_TYPE like COMPLEX_TYPE.
10827 * pt.c (tsubst, unify): Likewise.
10828 * tree.c (walk_tree): Likewise.
10829 * error.c (dump_type): Likewise.
10830 (dump_type_prefix, dump_type_suffix): Don't bother with VECTOR_TYPE.
d363e7bf 10831
c00996a3
JM
10832 * Make-lang.in: Tweak top comment for emacs.
10833 (cp/TAGS): Restore.
10834
10835 * except.c (expand_throw): Use push_throw_library_fn for _Jv_Throw.
10836
c00996a3
JM
10837 * class.c (clone_function_decl): Robustify.
10838
108392000-12-04 Michael Matz <matzmich@cs.tu-berlin.de>
10840
10841 * decl.c (store_bindings): Only search in the non modified
10842 old_bindings for duplicates.
10843
00bb3dad
NS
108442000-12-04 Nathan Sidwell <nathan@codesourcery.com>
10845
10846 * error.c (dump_function_decl): Use DECL_VIRTUAL_P, not
10847 TYPE_POLYMORPHIC_P.
d363e7bf 10848
00bb3dad
NS
10849 * typeck.c (build_static_cast): Remove unused variable.
10850
dc957d14
KL
108512000-12-01 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
10852
10853 * pt.c: Fix typo in comment.
10854
4d808927
JM
108552000-12-01 Joseph S. Myers <jsm28@cam.ac.uk>
10856
10857 * decl2.c (warn_format): Remove definition.
10858 (lang_decode_option): Handle -Wformat-nonliteral,
10859 -Wno-format-extra-args and -Wno-format-y2k. Use set_Wformat.
10860
5fd8e536
JM
108612000-12-01 Joseph S. Myers <jsm28@cam.ac.uk>
10862
10863 * decl.c (WINT_TYPE, INTMAX_TYPE, UINTMAX_TYPE): Don't define.
10864 (init_decl_processing): Don't create string_type_node,
10865 const_string_type_node, wint_type_node, intmax_type_node,
10866 uintmax_type_node, default_function_type, ptrdiff_type_node and
10867 unsigned_ptrdiff_type_node. Adjust position of call to
10868 c_common_nodes_and_builtins.
10869 (identifier_global_value): New function.
10870
13f9714b
NS
108712000-12-01 Nathan Sidwell <nathan@codesourcery.com>
10872
10873 * call.c (standard_conversion): Reject pointer to member
10874 conversions from ambiguous, inaccessible or virtual bases.
10875 * typeck.c (build_static_cast): Don't check pointers to members
10876 specially.
10877
31b1b957
NS
108782000-11-30 Nathan Sidwell <nathan@codesourcery.com>
10879
10880 * method.c (do_build_copy_constructor): Preserve cv
10881 qualifications when accessing source object members.
10882 (do_build_assign_ref): Likewise. Remove separate diagnostics for
10883 unnamed fields.
10884
717e3f73
NS
108852000-11-30 Nathan Sidwell <nathan@codesourcery.com>
10886
10887 * method.c (do_build_assign_ref): Construct appropriately
10888 CV-qualified base reference. Don't allow const casts in base
10889 conversion.
10890
2c92b94d
NS
108912000-11-30 Nathan Sidwell <nathan@codesourcery.com>
10892
10893 * call.c (build_over_call): Use VOID_TYPE_P. Don't die on
10894 incomplete return type.
10895
bb92901d
NS
108962000-11-28 Nathan Sidwell <nathan@codesourcery.com>
10897
10898 * parse.y (base_class.1): Produce a _TYPE not a _DECL.
10899 * semantics.c (finish_base_specifier): Accept a _TYPE not a
10900 _DECL.
10901
2f3608c3
NS
109022000-11-28 Nathan Sidwell <nathan@codesourcery.com>
10903
10904 * spew.c (yyerror): Cope if yylval.ttype is NULL.
10905
eeb75383
NS
109062000-11-28 Nathan Sidwell <nathan@codesourcery.com>
10907
10908 * decl.c (grokdeclarator): Diagnose undefined template contexts.
10909
5ee4cc26
NS
109102000-11-28 Nathan Sidwell <nathan@codesourcery.com>
10911
10912 * decl.c (grokdeclarator): Do type access control on friend
10913 class.
10914
76e57b45
NS
109152000-11-27 Nathan Sidwell <nathan@codesourcery.com>
10916
10917 * decl.c (grokfndecl): Undo COMPONENT_REF damage caused by
10918 bison parser ickiness.
10919 * pt.c (tsubst_friend_function): Enter namespace scope when
10920 tsubsting the function name.
10921 * cp-tree.h (DECL_TI_TEMPLATE): Update comment to reflect reality.
10922
f9825168
NS
109232000-11-27 Nathan Sidwell <nathan@codesourcery.com>
10924
10925 * cp-tree.h (binfo_from_vbase): Return the virtual base's binfo.
10926 * cvt.c (cp_convert_to_pointer): Add force parameter.
10927 Allow conversions via virtual base if forced.
10928 (convert_to_pointer_force): Adjust call to cp_convert_to_pointer.
10929 (ocp_convert): Likewise.
10930 * search.c (binfo_from_vbase): Return the virtual base's binfo.
10931 * typeck.c (get_delta_difference): Adjust handling of virtual
10932 bases.
10933
9ccb25d5
MM
109342000-11-26 Mark Mitchell <mark@codesourcery.com>
10935
10936 * tree.c (struct list_hash): Remove.
10937 (list_hash_table): Make it be an htab.
10938 (struct list_proxy): New type.
10939 (list_hash_eq): New function.
10940 (list_hash_pieces): Renamed from ...
10941 (list_hash): ... this.
10942 (list_hash_lookup): Remove.
10943 (list_hash_add): Remove.
10944 (hash_tree_cons): Use the generic hashtable.
10945 (mark_list_hash): Remove.
10946 (init_tree): Create the hashtable.
10947
9399bad3
JM
109482000-11-25 Joseph S. Myers <jsm28@cam.ac.uk>
10949
10950 * method.c (build_mangled_C9x_name): Rename to
10951 build_mangled_C99_name. Change C9X references in comments to
10952 refer to C99.
10953
2f401cc8
NS
109542000-11-24 Nathan Sidwell <nathan@codesourcery.com>
10955
10956 * parse.y (unary_expr): Move VA_ARG from here ...
10957 (primary): ... to here.
10958
3d7e9ba4
NS
109592000-11-24 Nathan Sidwell <nathan@codesourcery.com>
10960
10961 * semantics.c (finish_id_expr): If type is error_mark, return
10962 error_mark.
10963
ab097535
NS
109642000-11-23 Nathan Sidwell <nathan@codesourcery.com>
10965
10966 * pt.c (lookup_template_class): Simplify loop exit constructs.
10967 Cope when there is no partial instantiation of a template
10968 template member.
10969
d2a6f3c0 109702000-11-23 J"orn Rennecke <amylaar@redhat.com>
9196ece5
R
10971
10972 * Make-lang.in (g++spec.o, cxxmain.o): Depend on $(CONFIG_H).
10973
cac78ea2
MM
109742000-11-22 Mark Mitchell <mark@codesourcery.com>
10975
6e1b44bc
MM
10976 * mangle.c (mangle_conv_op_name_for_type): Don't use `__op'
10977 prefix.
10978
cac78ea2
MM
10979 * pt.c (do_decl_instantiate): Explicitly clone constructors and
10980 destructors that haven't already been cloned.
10981
3aac38d7
RH
109822000-11-20 Richard Henderson <rth@redhat.com>
10983
10984 * parse.y (yyparse_1): Rename the parser entry point.
10985
109862000-11-20 Alex Samuel <samuel@codesourcery.com>
beac9b93
AS
10987
10988 * mangle.c (write_name): Use <unscoped-name> for names directly in
10989 function scope.
10990 (write_unscoped_name): Accept names directly in function scope.
d363e7bf 10991
447306fa
NS
109922000-11-20 Nathan Sidwell <nathan@codesourcery.com>
10993
10994 * lex.c (rid_to_yy, RID_EXPORT): Make unique keyword.
10995 * parse.y (extdef): Add EXPORT reduction.
10996 * spew.c (yylex): Don't skip export here.
10997
2650255a
MM
109982000-11-19 Mark Mitchell <mark@codesourcery.com>
10999
11000 * decl.c (init_decl_processing): Correct name of pure virtual
11001 function under the new ABI.
11002 * rtti.c (throw_bad_cast): Likewise, for bad cast function.
11003 (throw_bad_typeid): Likewise for bad typeid function.
11004
0657c69c
MM
110052000-11-18 Mark Mitchell <mark@codesourcery.com>
11006
04f3dc2b
MM
11007 * decl.c (grokparms): Don't even function types of `void' type,
11008 either.
11009 * mangle.c (write_type): Don't crash when confronted with the
11010 error_mark_node.
11011
0657c69c
MM
11012 * decl.c (grokparms): Don't create parameters of `void' type.
11013
a8a05998
ZW
110142000-11-17 Zack Weinberg <zack@wolery.stanford.edu>
11015
11016 * lex.c (mark_impl_file_chain): Delete.
11017 (init_parse): Remove call to ggc_add_string_root. No need to
11018 ggc_strdup a string constant. Do not add impl_file_chain to GC
11019 roots.
11020 (handle_pragma_implementation): No need to ggc_strdup main_filename.
11021
35728a80
NS
110222000-11-17 Nathan Sidwell <nathan@codesourcery.com>
11023
11024 * pt.c (tsubst_expr, DECL_STMT): Instantiate decl's type.
11025
5cce22b6
NS
110262000-11-17 Nathan Sidwell <nathan@codesourcery.com>
11027
11028 * cp-tree.h (PARMLIST_ELLIPSIS_P): New macro.
11029 * decl.c (grokdeclarator): Don't reject void parms here.
11030 (require_complete_types_for_parms): Simplify, use
11031 complete_type_or_else.
11032 (grokparms): Remove bitrot. Remove funcdef parm.
11033 Deal with ellipsis parm lists here.
11034 * semantics.c (finish_parmlist): Don't append void_list_node
11035 here. Set PARMLIST_ELLIPSIS_P.
11036
146c8d60
NS
110372000-11-17 Nathan Sidwell <nathan@codesourcery.com>
11038
d30d6e7a 11039 * typeck2.c (incomplete_type_error): Reorganize to avoid
146c8d60
NS
11040 excessive diagnostics.
11041
520a57c8
ZW
110422000-11-16 Zack Weinberg <zack@wolery.stanford.edu>
11043
11044 * lex.c (struct impl_files, internal_filename): Constify a char *.
11045
43048a06
MM
110462000-11-16 Mark Mitchell <mark@codesourcery.com>
11047
11048 * mangle.c (write_special_name_constructor): Don't generate
11049 assembler junk when confronted with an old-style constructor.
11050 (write_special_name_destructor): Likewise.
11051 (mangle_decl_string): Do it here instead.
11052
cdb71673
NS
110532000-11-16 Nathan Sidwell <nathan@codesourcery.com>
11054
11055 * call.c (op_error): Make error messages clearer.
11056
62136084
MM
110572000-11-15 Mark Mitchell <mark@codesourcery.com>
11058
11059 * decl.c (wrapup_globals_for_namespace): Don't mark things
11060 TREE_ASM_WRITTEN when they're not.
11061
ee3400e8
JM
110622000-11-15 Jason Merrill <jason@redhat.com>
11063
11064 * typeck2.c (friendly_abort): Uncount the error before handing
11065 off to fancy_abort.
11066
71631a1f
NS
110672000-11-15 Nathan Sidwell <nathan@codesourcery.com>
11068
11069 * typeck.c (lookup_anon_field): Cope with qv qualifiers.
11070
79cda2d1
MM
110712000-11-14 Mark Mitchell <mark@codesourcery.com>
11072
11073 * class.c (build_vtbl_initializer): Fix typo in comment.
11074 * typeck.c (expr_sizeof): Don't crash on errors.
11075
2567bc56
JW
110762000-11-14 Jim Wilson <wilson@redhat.com>
11077
11078 * lang-specs.h: Add %2 after %(cc1_options).
11079
8422942c
RH
110802000-11-14 Richard Henderson <rth@redhat.com>
11081
11082 * typeck.c (c_sizeof): Be strict about casting result value
11083 back to c_size_type_node.
11084 (expr_sizeof, c_sizeof_nowarn, c_alignof): Likewise.
11085
19552aa5
JM
110862000-11-13 Joseph S. Myers <jsm28@cam.ac.uk>
11087
11088 * typeck.c (build_unary_op): Use boolean_increment from
11089 c-common.c, moving the relevant code there.
11090
d96a6d1a
JM
110912000-11-11 Jason Merrill <jason@redhat.com>
11092
11093 * typeck.c (mark_addressable): Don't call put_var_into_stack.
492cca24
JM
11094
11095 * decl.c (maybe_commonize_var): Set DECL_UNINLINABLE for statics
11096 in inlines.
11097
4e135bdd
KG
110982000-11-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11099
11100 * decl.c (grokdeclarator, save_function_data): Use memcpy, not bcopy.
11101 * lex.c (copy_lang_decl): Likewise.
11102
0a7394bc
MM
111032000-11-09 Mark Mitchell <mark@codesourcery.com>
11104
13507bd8
MM
11105 * dump.c (cp_dump_tree): Don't dump function bodies here.
11106
0a7394bc
MM
11107 * Make-lang.in (CXX_C_OBJS): Add c-dump.o.
11108 (dump.o): Update dependency list.
11109 * cp-tree.h (DECL_MAYBE_TEMPLATE): Remove.
11110 (flag_dump_translation_unit): Likewise.
11111 (CP_TYPE_QUALS): Adjust definition.
11112 (DECL_C_BIT_FIELD): Remove.
11113 (SET_DECL_C_BIT_FIELD): Likewise.
11114 (CLEAR_DECL_C_BIT_FIELD): Likewise.
11115 (add_maybe_template): Likewise.
11116 (strip_array_types): Likewise.
11117 (dump_node_to_file): Likewise.
11118 (cp_dump_tree): New function.
11119 * decl.c (init_decl_processing): Set lang_dump_tree.
11120 * decl2.c (flag_dump_translation_unit): Remove.
11121 * dump.c: Move most of it to ../c-dump.c.
11122 (cp_dump_tree): New function.
11123 * pt.c (add_maybe_template): Remove.
11124 * typeck.c (strip_array_types): Likewise.
a8a05998 11125
5362b086
EC
111262000-11-07 Eric Christopher <echristo@redhat.com>
11127
492cca24
JM
11128 * decl.c (init_decl_processing): Change definition of
11129 __wchar_t to wchar_t. Remove artificial declaration of
11130 wchar_t.
11131 * lex.c: Change instances of __wchar_t to wchar_t.
5362b086 11132
5361cbb7
NS
111332000-11-09 Nathan Sidwell <nathan@codesourcery.com>
11134
11135 * lex.c (do_identifier): Don't lookup_name for operators.
11136 * parse.y (operator): Save looking_for_typename.
11137 (unoperator): Restore it.
11138 * spew.c (frob_opname): Use nth_token for lookahead.
11139
36791f1e
NS
111402000-11-08 Nathan Sidwell <nathan@codesourcery.com>
11141
11142 * decl.c (grok_op_properties): Always use coerce_new_type and
11143 coerce_delete_type.
11144 * decl2.c (coerce_new_type): Use c_size_type_node. Preserve
11145 exception specification. Tidy up.
11146 (coerce_delete_type): Preserve exception specification. Tidy up.
11147
961192e1
JM
111482000-11-07 Joseph S. Myers <jsm28@cam.ac.uk>
11149
11150 * class.c (duplicate_tag_error, build_vtbl_initializer), decl.c
11151 (push_binding_level), error.c (cp_tree_printer), pt.c
11152 (process_partial_specialization, tsubst_template_arg_vector),
11153 search.c (lookup_member): Use memset () instead of bzero ().
11154
d48ebde1
NS
111552000-11-07 Nathan Sidwell <nathan@codesourcery.com>
11156
11157 * decl.c (build_ptrmemfunc_type): Allow error_mark_node.
11158
436a88a6
JM
111592000-11-05 Joseph S. Myers <jsm28@cam.ac.uk>
11160
11161 * Make-lang.in (c++.distdir): Remove.
11162
7a4e5091
MM
111632000-11-04 Mark Mitchell <mark@codesourcery.com>
11164
11165 * decl2.c (do_nonmember_using_decl): Allow `extern "C"'
11166 declarations from different namespaces to be combined.
11167
0e9295cf
ZW
111682000-11-03 Zack Weinberg <zack@wolery.stanford.edu>
11169
11170 * decl.c: Include tm_p.h.
11171
da61dec9
JM
111722000-11-03 Joseph S. Myers <jsm28@cam.ac.uk>
11173
11174 * tree.c (cp_tree_equal): Use memcmp () instead of bcmp ().
11175
9473c522
JM
111762000-11-02 Joseph S. Myers <jsm28@cam.ac.uk>
11177
11178 * dump.c (dequeue_and_dump), lex.c (interface_strcmp), method.c
11179 (build_overload_value), repo.c (open_repo_file), xref.c
11180 (open_xref_file): Use strchr () and strrchr () instead of index ()
11181 and rindex ().
11182
b0b3afb2
BS
111832000-11-01 Bernd Schmidt <bernds@redhat.co.uk>
11184
11185 * call.c (build_over_call): Call fold on the CALL_EXPR.
11186
faafaee6
GDR
111872000-11-01 Gabriel Dos Reis <gdr@codesourcery.com>
11188
11189 * error.c (dump_template_decl): Separate template hearders with
11190 space not comma.
11191
761f0855
GDR
111922000-10-31 Gabriel Dos Reis <gdr@codesourcery.com>
11193
11194 * error.c: Move TFF_ macros into cp-tree.h. Throughout, replace
11195 TS_* flags with corresponding TFF_*. Adjust prototypes of
11196 functions (which used to take a tree_string_flags) to take an int.
11197
11198 * cp-tree.h (enum tree_string_flags): Remove
11199 (TFF_PLAIN_IDENTIFIER, TFF_NAMESPACE_SCOPE, TFF_CLASS_SCOPE,
11200 TFF_CHASE_NAMESPACE_ALIAS, TFF_CHASE_TYPEDEF, TFF_DECL_SPECIFIERS,
11201 TFF_CLASS_KEY_OR_ENUM, TFF_RETURN_TYPE,
11202 TFF_FUNCTION_DEFAULT_ARGUMENTS, TFF_EXCEPTION_SPECIFICATION,
11203 TFF_TEMPLATE_HEADER, TFF_TEMPLATE_DEFAULT_ARGUMENTS,
11204 TFF_TEMPLATE_NAME, TFF_EXPR_IN_PARENS, TFF_SCOPE): New macros.
11205 (type_as_string, decl_as_string, expr_as_string,
11206 context_as_string): Adjust prototype.
11207
11208 * class.c (dump_class_hierarchy_r): Use TFF_PLAIN_IDENTIFIER
11209 instead of TS_PLAIN.
11210
11211 * pt.c (mangle_class_name_for_template): Use TFF_CHASE_TYPEDEF
11212 instead of TF_CHASE_TYPEDEFS. Use TFF_PLAIN_IDENTIFIER instead of
11213 plain `0'.
11214
ad50e811
MM
112152000-10-30 Mark Mitchell <mark@codesourcery.com>
11216
11217 * cp-tree.h (DECL_EXTERNAL_LINKAGE_P): New macro.
11218 (linkage_kind): New enumeration.
11219 (decl_linkage): New function.
11220 * decl2.c (comdat_linkage): Extend comment.
11221 * error.c (dump_function_decl): Print the arguments used to
11222 instantiate a template, even when not printing the type of the
11223 function.
11224 * pt.c (convert_nontype_argument): Use DECL_EXTERNAL_LINKAGE_P,
11225 not TREE_PUBLIC, to test for external linkage.
11226 * tree.c (decl_linkage): New function.
11227
930cd796
MM
112282000-10-28 Mark Mitchell <mark@codesourcery.com>
11229
11230 * pt.c (instantiate_decl): Always instantiate static data members
11231 initialized in-class.
11232
b8dad04b
ZW
112332000-10-27 Zack Weinberg <zack@wolery.stanford.edu>
11234
11235 * Make-lang.in: Move all build rules here from Makefile.in,
11236 adapt to new context. Wrap all rules that change the current
11237 directory in parentheses. Expunge all references to $(P).
11238 When one command depends on another and they're run all at
11239 once, use && to separate them, not ;. Add OUTPUT_OPTION to
11240 all object-file generation rules. Delete obsolete variables.
11241
11242 * Makefile.in: Delete.
11243 * config-lang.in: Delete outputs= line.
11244
5f9cd837
GDR
112452000-10-26 Gabriel Dos Reis <gdr@codesourcery.com>
11246
11247 * error.c (dump_function_decl): Print no space between
11248 `ptr-operator' the `type-specifier' of the return type.
11249 (dump_type_prefix): Make sure we put space at the appropriate
5362b086 11250 place.
5f9cd837 11251
6c6ed0ef
JM
112522000-10-23 Jason Merrill <jason@redhat.com>
11253
11254 * call.c (equal_functions): Also call decls_match for extern "C" fns.
11255
112562000-10-22 Jason Merrill <jason@redhat.com>
11257
11258 * call.c (build_conditional_expr): Use ocp_convert to force
11259 rvalue conversion.
11260
e36308b0
MM
112612000-10-22 Mark Mitchell <mark@codesourcery.com>
11262
583ca5a0
MM
11263 * call.c (standard_conversion): Use RVALUE_CONVs for all
11264 expressions that satisfy lvalue_p, not just those that satisfy
11265 real_lvalue_p.
11266
f9808f81
MM
11267 * optimize.c (copy_body_r): Don't treat CALL_EXPRs specially.
11268
5362b086 11269 * typeck.c (c_sizeof): Return an expression of `size_t' type,
e36308b0
MM
11270 not one with TYPE_IS_SIZETYPE set.
11271 (dubious_conversion_warnings): Remove special-case code.
11272
3b9ae6f0
GK
112732000-10-21 Geoffrey Keating <geoffk@cygnus.com>
11274
7a0f14e5
GK
11275 * decl2.c (arg_assoc_type): Handle VECTOR_TYPE.
11276 * error.c (dump_type): Handle VECTOR_TYPE like POINTER_TYPE.
11277 (dump_type_prefix): Print vector-of-int as 'int vector'.
11278 (dump_type_suffix): Handle VECTOR_TYPE like POINTER_TYPE.
11279 * tree.c (walk_tree): Handle VECTOR_TYPE.
11280
3b9ae6f0 11281 * decl.c (init_decl_processing): Call MD_INIT_BUILTINS.
5362b086 11282
aca77bd1
JM
112832000-10-21 Jason Merrill <jason@redhat.com>
11284
11285 * parse.y (operator): Set got_object from got_scope.
11286 Set looking_for_typename.
11287 * decl.c (lookup_name_real): Clear val after setting from_obj.
11288 Reorganize diagnostic.
11289
ba523395
JM
112902000-10-20 Jason Merrill <jason@redhat.com>
11291
11292 * tree.c (walk_tree): Don't walk into default args.
11293
11294 * error.c (dump_expr): Use host_integerp.
11295
2e44948d
DE
112962000-10-20 David Edelsohn <edelsohn@gnu.org>
11297
11298 * typeck2.c (abstract_virtuals_error): Use "because" instead of
11299 "since" in error message.
11300
d2a6f3c0 113012000-10-20 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
44475138
RK
11302
11303 * typeck.c (dubious_conversion_warning): Suppress if TYPE_IS_SIZETYPE.
11304
11306230
JO
113052000-10-20 Jeffrey Oldham <oldham@codesourcery.com>
11306
11307 * decl.c (revert_static_member_fn): Fixed typo.
11308
97ba1e3c
MM
113092000-10-19 Mark Mitchell <mark@codesourcery.com>
11310
c20118a8
MM
11311 * class.c (subobject_offset_fn): New type.
11312 (dfs_record_base_offsets): Remove.
11313 (record_base_offsets): Likewise.
11314 (dfs_search_base_offsets): Likewise.
11315 (record_subobject_offset): New function.
11316 (check_subobject_offset): Likewise.
11317 (walk_subobject_offsets): Likewise.
11318 (record_subobject_offsets): Likewise.
11319 (layout_conflict_p): Reimplement.
11320 (layout_nonempty_base_or_field): Correct handling of type
11321 conflicts during layout.
11322 (layout_empty_base): Likewise.
11323 (build_base_field): Adjust to handle new representation of empty
11324 base offset table.
11325 (build_base_fields): Likewise.
11326 (layout_virtual_bases): Likewise.
11327 (splay_tree_compare_integer_csts): New function.
11328 (layout_class_type): Use a splay_tree, rather than a varray, to
11329 represent the offsets of empty bases.
5362b086 11330
97ba1e3c
MM
11331 * cp-tree.h (DECL_ANTICIPATED): Don't require a FUNCTION_DECL.
11332 * decl.c (select_decl): Don't return declarations that are
11333 DECL_ANTICIPATED.
11334
6bcedb4e
MM
113352000-10-18 Mark Mitchell <mark@codesourcery.com>
11336
11337 * cp-tree.h (cp_tree_index): Add CPTI_FAKE_STD.
11338 (fake_std_node): New macro.
11339 * decl.c (in_std): Rename to ...
11340 (in_fake_std): ... this.
11341 (flag_no_builtin): Remove.
11342 (flag_no_nonansi_builtin): Likewise.
11343 (walk_namespaces_r): Use fake_std_node.
11344 (push_namespace): Use std_identifier.
11345 (pop_namespace): Use in_fake_std.
11346 (lookup_name_real): Use fake_std_node.
11347 (init_decl_processing): When -fhonor-std, create the `std'
11348 namespace. Don't create a dummy fake_std_node in that case.
11349 Adjust call to c_common_nodes_and_builtins. Use std_identifier.
11350 (builtin_function): Put builtins whose names don't begin
11351 with `_' in the std namespace.
11352 * decl2.c (flag_no_builtin): Remove.
11353 (flag_no_nonansi_builtin): Likewise.
11354 (set_decl_namespace): Use fake_std_node.
11355 (validate_nonmember_using_decl): Likewise.
11356 (do_using_directive): Likewise.
11357 (handle_class_head): Likewise.
11358 * dump.c (dequeue_and_dump): Likewise.
11359 * except.c (init_exception_processing): Use std_identifier.
11360 * init.c (build_member_call): Use fake_std_node.
11361 * rtti.c (init_rtti_processing): Use std_identifier.
5362b086 11362
67673f5c
MM
113632000-10-17 Mark Mitchell <mark@codesourcery.com>
11364
11365 * cp-tree.h (back_end_hook): Remove declaration.
11366 * decl2.c (back_end_hook): Remove definition.
11367
11368 * dump.c (dequeue_and_dump): Dump TREE_USED.
11369
d2a6f3c0 113702000-10-17 Brad Lucier <lucier@math.purdue.edu>
8fef2e47
BL
11371
11372 * spew.c (snarf_defarg): Cast 2nd arg to obstack_blank to (int).
11373
652469d0
JM
113742000-10-17 Joseph S. Myers <jsm28@cam.ac.uk>
11375
11376 * decl.c (WINT_TYPE): Define.
11377 (init_decl_processing): Create types unsigned_ptrdiff_type_node,
11378 c_size_type_node, signed_size_type_node and wint_type_node.
11379
74ff4629
JM
113802000-10-17 Joseph S. Myers <jsm28@cam.ac.uk>
11381
11382 * decl2.c (warn_missing_format_attribute): New variable.
11383 (lang_decode_option): Decode -Wmissing-format-attribute.
11384
634790f4
MM
113852000-10-16 Mark Mitchell <mark@codesourcery.com>
11386
11387 * typeck.c (qualify_type): Remove.
11388 (composite_pointer_type): Fix handling of conversions to `cv void*'.
11389
bb12da9d
KG
113902000-10-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11391
11392 * Makefile.in (parse.c, parse.h): Fix think-o in last patch.
11393
4b945402
KG
113942000-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11395
11396 * Makefile.in (parse.c, parse.h): Create atomically.
11397
1f8f4a0b
MM
113982000-10-12 Mark Mitchell <mark@codesourcery.com>
11399
11400 * class.c (current_obstack): Remove.
11401 * decl.c (ggc_p): Remove.
11402 (start_decl): Don't use decl_tree_cons.
11403 (grokdeclarator): Don't use build_decl_list.
11404 (start_function): Don't use decl_tree_cons.
11405 (finish_function): Don't mess with obstacks.
11406 * decl2.c (grok_x_components): Don't use build_decl_list.
11407 * lex.c (make_call_declarator): Don't call decl_tree_cons.
11408 (implicitly_declare_fn): Don't call build_decl_list.
11409 * parse.y (frob_specs): Don't call build_decl_list or
11410 decl_tree_cons.
11411 (expr_or_declarator_intern): Don't call decl_tree_cons.
11412 (primary): Don't call build_decl_list.
11413 (fcast_or_absdcl): Likewise.
11414 (typed_declspecs): Don't call decl_tree_cons.
11415 (reserved_declspecs): Don't call build_decl_list.
11416 (declmods): Likewise.
11417 (reserved_typespecquals): Likewise.
11418 (aggr): Likewise.
11419 (new_type_id): Likewise.
11420 (cv_qualifiers): Likewise.
11421 (after_type_declarator_intern): Likewise.
11422 (notype_declarator_intern): Likewise.
11423 (absdcl_intern): Likewise.
11424 (named_parm): Likewise.
11425 * pt.c (most_specialized_class): Likewise.
11426 * repo.c (temporary_obstack): Make it a structure, not a pointer.
11427 (init_repo): Initialize it.
11428 * search.c (current_obstack): Remove.
11429 * typeck2.c (add_exception_specifier): Don't call build_decl_list.
5362b086 11430
8dc54971
RH
114312000-10-09 Richard Henderson <rth@cygnus.com>
11432
11433 * Make-lang.in (CXX_EXTRA_HEADERS): Remove.
11434 (c++ language support bits for libgcc): Remove.
11435 (c++.clean): Remove cplib2.txt cleanup.
11436 * config-lang.in (headers, lib2funcs): Remove.
11437
11438 * exception.cc, new.cc, new1.cc, new2.cc: Remove files.
11439 * tinfo.cc, tinfo.h, tinfo2.cc, vec.cc: Remove files.
11440 * inc/cxxabi.h, inc/exception, inc/new: Remove files.
11441 * inc/new.h, inc/typeinfo: Remove files.
11442
b15ad712
JM
114432000-10-08 Joseph S. Myers <jsm28@cam.ac.uk>
11444
11445 * decl.c (INTMAX_TYPE, UINTMAX_TYPE): Define if not already
11446 defined.
11447 (init_decl_processing): Initialize intmax_type_node and
11448 uintmax_type_node.
11449
156ce211
RH
114502000-10-06 Richard Henderson <rth@cygnus.com>
11451
11452 * cp-tree.h (struct cp_language_function): Remove x_result_rtx.
11453 (original_result_rtx): Remove.
11454 * decl.c (save_function_data): Don't clear x_result_rtx.
11455 (mark_lang_function): Don't mark it either.
11456 * expr.c (fixup_result_decl): Remove.
11457 * semantics.c (genrtl_named_return_value): Frob the return decl
11458 before calling emit_local_var.
11459 (genrtl_finish_function): Don't call fixup_result_decl.
11460 Always emit the jump to return_label.
11461
92777ce4
NS
114622000-10-06 Nathan Sidwell <nathan@codesourcery.com>
11463
11464 * pt.c (lookup_template_class): Set current access for enum.
11465 (tsubst_enum): Set file & line for enum decl.
5362b086 11466
92777ce4
NS
11467 * spew.c (yylex): Remove unused variable.
11468
63c16fc5
RH
114692000-10-05 Richard Henderson <rth@cygnus.com>
11470
11471 * semantics.c (genrtl_finish_function): Don't init or check
11472 can_reach_end; remove noreturn and return value checks.
11473
d1a458c4
TT
114742000-10-05 Tom Tromey <tromey@cygnus.com>
11475
11476 * init.c (build_java_class_ref): Use `build_static_name' with a
11477 suffix, not a prefix, to build the class object's name.
11478
509fc277
NS
114792000-10-05 Nathan Sidwell <nathan@codesourcery.com>
11480
11481 * cp-tree.h (access_kind): Fix comment typo.
11482 * decl2.c (grokfield): Fix diagnostic typo.
11483 * semantics.c (finish_template_type): Fix comment typo.
11484 (finish_qualified_object_call_expr): Likewise.
11485
ce2e5191
NS
114862000-10-05 Nathan Sidwell <nathan@codesourcery.com>
11487
11488 * pt.c (tsubst_expr, DECL_STMT case): Don't process if
5362b086 11489 tsubsting fails.
ce2e5191 11490
79cc5312
NS
114912000-10-05 Nathan Sidwell <nathan@codesourcery.com>
11492
11493 * spew.c (frob_id): New static function.
11494 (frob_opname): Use it.
11495 (yylex): Use it.
11496
f15b9af9
MM
114972000-10-01 Mark Mitchell <mark@codesourcery.com>
11498
11499 * decl.c (lang_mark_false_label_stack): Remove.
11500 * lex.c (cp_mang_lang_type): Use ggc_alloc_cleared.
5362b086 11501
28e6b1c2
JM
115022000-09-30 Joseph S. Myers <jsm28@cam.ac.uk>
11503
11504 * gxxint.texi: Use @email for formatting email addresses.
11505
99885b3f
GDR
115062000-09-29 Gabriel Dos Reis <gdr@codesourcery.com>
11507
11508 * error.c: Remove direct obstack manipulation. Replace with
11509 output_buffer-based formatting. Adjust calls to removed macros.
11510 (obstack_chunk_alloc, obstack_chunk_free): Remove.
11511 (OB_INIT, OB_PUTC, OB_PUTC2, OB_PUTS, OB_PUTID, OB_PUTCP,
11512 OB_FINISH, OB_PUTI, OB_END_TEMPLATE): Likewise.
11513
c06aa51e
MM
115142000-09-24 Mark Mitchell <mark@codesourcery.com>
11515
11516 * ir.texi: Move to ../c-tree.texi.
11517
99fada40
JM
115182000-09-20 Jason Merrill <jason@redhat.com>
11519
11520 * decl2.c (get_guard): Check DECL_FUNCTION_SCOPE_P.
11521
bb20cc46
AJ
115222000-09-21 Andreas Jaeger <aj@suse.de>
11523
11524 * errfn.c: Move declaration of cp_printer and cp_printers to ...
11525 * cp-tree.h: ... here.
11526
11527 * error.c: Remove declaration of cp_printer.
11528
fab701da
MM
115292000-09-20 Mark Mitchell <mark@codesourcery.com>
11530
11531 * tree.c (mark_local_for_remap_r): Handle CASE_LABELs.
11532
0370fea1
HPN
115332000-09-20 Hans-Peter Nilsson <hp@axis.com>
11534
11535 * except.c: Delete #if 0:d EXCEPTION_SECTION_ASM_OP-default and
11536 users.
11537
78c120b5
MM
115382000-09-18 Mark Mitchell <mark@codesourcery.com>
11539
11540 * decl.c (start_function): Robustify.
11541
3f80e6ac
KG
115422000-09-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11543
11544 * cp-tree.h (check_function_format): Accept a `status' parameter.
bb20cc46 11545
3f80e6ac
KG
11546 * call.c, typeck.c: Updates calls to `check_function_format'.
11547
fc928afe
GK
115482000-09-17 Geoffrey Keating <geoffk@cygnus.com>
11549
11550 * decl2.c (handle_class_head): Always push some scope even
11551 in the error case.
11552
8f17b5c5
MM
115532000-09-16 Mark Mitchell <mark@codesourcery.com>
11554
11555 * cp-tree.h (struct cp_language_function): Remove
11556 x_scope_stmt_stack and name_declared.
11557 (current_scope_stmt_stack): Remove.
11558 (function_name_declared_p): New macro.
11559 (struct lang_decl_flags): Use c_lang_decl as a base class.
11560 (context): Remove.
11561 (struct lang_decl): Replace saved_tree with context.
11562 (DECL_FRIEND_CONTEXT): Adjust accordingly.
11563 (SET_DECL_FRIEND_CONTEXT): Likewise.
11564 (DECL_VIRTUAL_CONTEXT): Likewise.
11565 (DECL_SAVED_TREE): Remove.
11566 (C_DECLARED_LABEL_FLAG): Likewise.
11567 (cplus_expand_expr_stmt): Don't declare.
11568 (add_decl_stmt): Likewise.
11569 (add_scope_stmt): Likewise.
11570 * decl.c (mark_stmt_tree): Remove.
11571 (case_compare): Likewise.
11572 (finish_case_label): Use c_add_case_label.
11573 (init_decl_processing): Set more language-specific hooks.
11574 (build_enumerator): Fix typo in comment.
11575 (cplus_expand_expr_stmt): Remove.
11576 (mark_lang_function): Use mark_c_language_function.
11577 (lang_mark_tree): Use c_mark_lang_decl.
11578 * decl2.c: Change order of inclusion.
11579 * except.c: Likewise.
11580 * expr.c (cplus_expand_expr): Remove handling of STMT_EXPR. Fall
11581 back on c_expand_expr.
11582 * friend.c: Include expr.h.
11583 * init.c: Change order of inclusion.
11584 * Makefile.in: Update dependencies.
11585 * lex.h (free_lang_decl_chain): Remove.
11586 * optimize.c (maybe_clone_body): Use function_name_declared_p.
11587 * pt.c (build_template_decl): Don't copy DECL_VIRTUAL_CONTEXT if
11588 it doesn't exist.
11589 (instantiate_decl): Use function_name_declared_p.
11590 * semantics.c (lang_expand_expr_stmt): Remove.
11591 (set_current_function_name_declared): Likewise.
11592 (current_function_name_declared): Likewise.
11593 (begin_compound_stmt): Use function_name_declared_p.
11594 (add_decl_stmt): Remove.
11595 (setup_vtbl_ptr): Use function_name_declared_p.
11596 (add_scope_stmt): Remove.
11597 (current_scope_stmt_stack): New function.
11598 (cp_expand_stmt): Don't handle SCOPE_STMTs.
11599 (expand_body): Use function_name_declared_p.
11600 * tree.c (cp_statement_code_p): Don't include SCOPE_STMT.
11601 * typeck.c: Change order of includes.
11602 (convert_sequence): Remove.
bb20cc46 11603
d9dbd9b1
JM
116042000-09-14 Joseph S. Myers <jsm28@cam.ac.uk>
11605
11606 * lex.c (reswords): Add _Complex.
11607
d2a6f3c0 116082000-09-14 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
9985f210
RK
11609
11610 * Make-lang.in (cplib2.txt): Depend on cp/Makefile.
11611
f903ebb1
DA
116122000-09-13 J. David Anglin <dave@hiauly1.hia.nrc.ca>
11613
11614 * init.c (begin_init_stmts): Don't use // comments.
11615
f2ae0c45
JM
116162000-09-12 Jason Merrill <jason@redhat.com>
11617
11618 * decl.c (maybe_deduce_size_from_array_init): Set do_default for
11619 all non-extern arrays.
11620
11621 * decl.c (grokdeclarator): Complain about 'friend T' for implicit
11622 typenames, too. Downgrade complaint to pedwarn.
11623 (xref_tag): Warn about surprising behavior of 'friend struct T'.
11624 * decl2.c (handle_class_head): Generate a TYPENAME_TYPE for
11625 'class This::Inherited'.
11626
71ad4a16
MM
116272000-09-12 Mark Mitchell <mark@codesourcery.com>
11628
11629 * decl.c (finish_case_label): Given the LABEL_DECL a
11630 DECL_CONTEXT.
11631
c3e76028
GDR
116322000-09-12 Gabriel Dos Reis <gdr@codesourcery.com>
11633
11634 * error.c (TFF_PLAIN_IDENTIFIER, TFF_NAMESPACE_SCOPE,
11635 TFF_CLASS_SCOPE, TFF_CHASE_NAMESPACE_ALIAS, TFF_CHASE_TYPDEF,
11636 TFF_DECL_SPECIFIERS, TFF_CLASS_KEY_OR_ENUM, TFF_RETURN_TYPE,
11637 TFF_FUNCTION_DEFAULT_ARGUMENTS, TFF_EXCEPTION_SPECIFICATION,
11638 TFF_TEMPLATE_HEADER, TFF_TEMPLATE_DEFAULT_ARGUMENTS, TFF_SCOPE):
11639 New macros.
11640 (sorry_for_unsupported_tree, print_scope_operator,
11641 print_left_paren, print_right_paren, print_left_bracket,
11642 print_right_bracket, print_whitespace): Likewise.
11643 (aggr_variety): Rename to class_key_or_enum.
11644 (print_type): Rename to print_type_id.
11645 (print_type_specifier_seq, print_simple_type_specifier,
11646 print_elaborated_type_specifier,
11647 print_rest_of_abstract_declarator,
11648 print_parameter_declaration_clause, print_exception_specification,
11649 print_nested_name_specifier, print_template_id,
11650 typedef_original_name, print_template_argument_list_start,
11651 print_template_argument_list_end): New functions.
11652
eb50138b
GDR
116532000-09-11 Gabriel Dos Reis <gdr@codesourcery.com>
11654
a8a05998 11655 * ir.texi: Add more documentation.
eb50138b 11656
f444e36b
MM
116572000-09-11 Mark Mitchell <mark@codesourcery.com>
11658
11659 * cp-tree.h (struct saved_scope): Remove x_function_parms.
11660 (current_function_parms): Don't define.
11661 (struct cp_language_function): Remove parms_stored.
11662 (current_function_just_assigned_this): Don't define.
11663 (current_function_parms_stored): Likewise.
11664 (static_ctors): Declare.
11665 (static_dtors): Likewise.
11666 (SF_EXPAND): Don't define.
11667 (expand_start_early_try_stmts): Remove declaration.
11668 (store_parm_decls): Likewise.
11669 * decl.c (static_ctors): Don't declare.
11670 (static_dtors): Likewise.
11671 (struct binding_level): Remove this_block.
11672 (poplevel): Remove dead code.
11673 (set_block): Likewise.
11674 (mark_binding_level): Don't mark this_block.
11675 (mark_saved_scope): Don't mark x_function_parms.
11676 (init_decl_processing): Don't add current_function_parms as a GC
11677 root.
11678 (check_function_type): Change prototype.
11679 (start_function): Remove RTL-generation code.
11680 (expand_start_early_try_stmts): Remove.
11681 (store_parm_decls): Give it internal linkage. Remove
11682 RTL-generation code.
11683 (finish_function): Remove RTL-generation code.
11684 * decl2.c (static_ctors): Fix formatting.
11685 (static_dtors): Likewise.
11686 * method.c (use_thunk): Don't call store_parm_decls.
11687 (synthesize_method): Likewise.
11688 * optimize.c (maybe_clone_body): Likewise.
11689 * parse.y (fn.def2): Likewise.
11690 (.set_base_init): Likewise.
11691 (nodecls): Likewise.
11692 * pt.c (instantiate_decl): Likewise.
11693 * rtti.c (synthesize_tinfo_fn): Likewise.
11694 * semantics.c (genrtl_try_block): Simplify.
11695 (expand_body): Use genrtl_start_function and
11696 genrtl_finish_function.
11697 (genrtl_start_function): New function.
11698 (genrtl_finish_function): Likewise.
11699
181d2ba0
NS
117002000-09-11 Nathan Sidwell <nathan@codesourcery.com>
11701
11702 * error.c (cp_tree_printer, case 'P'): Append break.
11703
f2d71db6
NS
117042000-09-11 Nathan Sidwell <nathan@codesourcery.com>
11705
11706 * cp-tree.h (frob_opname): Declare.
11707 * parse.y (saved_scopes): New static variable.
11708 (cp_parse_init): Adjust.
11709 (do_id): If lastiddecl is NULL, do do_identifier.
11710 (operator): Save scope information.
aca77bd1 11711 (unoperator): New reduction. Restore scope information.
f2d71db6
NS
11712 (operator_name): Append unoperator. Call frob_opname.
11713 * spew.c (frob_opname): Define.
11714
d8ea8f28
ZW
117152000-09-10 Zack Weinberg <zack@wolery.cumb.org>
11716
11717 * decl.c, rtti.c: Include defaults.h if not already included.
11718 Don't define the *_TYPE_SIZE macros.
11719
56cb9733
MM
117202000-09-09 Mark Mitchell <mark@codesourcery.com>
11721
11722 * cp-tree.h (push_switch): Change prototype.
11723 (check_cp_case_value): Remove declaration.
11724 (decl_constant_value): Likewise.
11725 * decl.c (struct cp_switch): Add switch_stmt and cases.
11726 (case_compare): New function.
11727 (push_switch): Set switch_stmt. Initialize cases.
11728 (pop_switch): Clean up cases.
11729 (define_case_label): Rename to ...
11730 (finish_case_label): ... this. Do semantic analysis for case
11731 labels here.
11732 (start_function): Correct comment.
11733 * decl2.c (check_cp_case_value): Remove.
11734 * expr.c (do_case): Remove.
11735 * pt.c (tsubst_expr): Adjust call to finish_case_label.
11736 * semantics.c (genrtl_do_poplevel): Remove declaration.
11737 (RECHAIN_STMTS): Remove.
11738 (finish_break_stmt): Use build_break_stmt.
11739 (finish_continue_stmt): Use build_continue_stmt.
11740 (finish_switch_cond): Adjust condition here, rater than in
11741 c_expand_start_case.
11742 (finish_case_label): Remove.
11743 * typeck.c (c_expand_return): Remove.
11744 (c_expand_start_case): Likewise.
bb20cc46 11745
990a9693
GDR
117462000-09-07 Gabriel Dos Reis <gdr@codesourcery.com>
11747
11748 * ir.texi: Document type nodes.
11749
ae499cce
MM
117502000-09-06 Mark Mitchell <mark@codesourcery.com>
11751
54f7877c
MM
11752 * cp-tree.h (init_cp_semantics): Declare.
11753 (genrtl_try_block): Don't declare.
11754 (genrtl_handler): Likewise.
11755 (genrtl_catch_block): Likewise.
11756 (genrtl_ctor_stmt): Likewise.
11757 (genrtl_subobject): Likewise.
11758 (genrtl_do_poplevel): Likewise.
11759 (genrtl_named_return_value): Likewise.
11760 * lex.c (init_parse): Call init_cp_semantics.
11761 * semantics.c (genrtl_try_block): Give it internal linkage.
11762 (genrtl_handler): Likewise.
11763 (genrtl_catch_block): Likewise.
11764 (genrtl_ctor_stmt): Likewise.
11765 (genrtl_subobject): Likewise.
11766 (genrtl_do_poplevel): Likewise.
11767 (genrtl_named_return_value): Likewise.
11768 (lang_expand_stmt): Rename to ...
11769 (cp_expand_stmt): ... this. Only handle C++-specific nodes.
11770 (init_cp_semantics): Define.
11771
3a0d3e1e
MM
11772 * decl.c (initialize_local_var): Remove RTL-generating code.
11773 * semantics.c (genrtl_try_block): Fix formatting.
11774
ae499cce
MM
11775 Move statement-tree facilities from C++ to C front-end.
11776 * cp-tree.h (cp_tree_index): Remove CPTI_VOID_ZERO.
11777 (void_zero_node): Remove.
11778 (stmt_tree): Likewise.
11779 (scope_chain): Adjust.
11780 (language_function): Rename to cp_language_function.
11781 (cp_function_chain): Adjust.
11782 (current_stmt_tree): Remove.
11783 (last_tree): Likewise.
11784 (last_expr_type): Likewise.
11785 (struct lang_decl): Adjust.
11786 (STMT_IS_FULL_EXPR_P): Remove.
11787 (add_tree): Remove.
11788 (begin_stmt_tree): Likewise.
11789 (finish_stmt_tree): Likewise.
11790 (walk_tree_fn): Likewise.
11791 (walk_stmt_tree): Likewise.
11792 * class.c (finish_struct): Replace use of add_tree with add_stmt.
11793 * decl.c (mark_stmt_tree): Adjust type.
11794 (init_decl_processing): Don't build void_zero_node.
11795 (initialize_local_var): Adjust usage of current_stmt_tree.
11796 (finish_enum): Use add_stmt, not add_tree.
11797 (save_function_data): Adjust use of language_function.
11798 (finish_constructor_body): Use add_stmt, not add_tree.
11799 (finish_destructor_body): Likewise.
11800 (push_cp_function_context): Adjust use of language_function.
11801 (pop_cp_function_context): Likewise.
11802 (mark_lang_function): Likewise.
11803 (mark_cp_function_context): Likewise.
11804 * init.c (build_aggr_init): Adjust use of current_stmt_tree.
11805 (build_vec_init): Likewise.
11806 * semantics.c (SET_LAST_STMT): Remove.
11807 (RECHAIN_STMTS): Don't use it.
11808 (stmts_are_full_exprs_p): Adjust use of current_stmt_tree.
11809 (current_stmt_tree): Define.
11810 (add_tree): Remove.
11811 (finish_goto_stmt): Use add_stmt, not add_tree.
11812 (finish_expr_stmt): Likewise.
11813 (begin_if_stmt): Likewise.
11814 (finish_then_clause): Likewise.
11815 (begin_while_stmt): Likewise.
11816 (begin_do_stmt): Likewise.
11817 (finish_return_stmt): Likewise.
11818 (begin_for_stmt): Likewise.
11819 (finish_break_stmt): Likewise.
11820 (finish_continue_stmt): Likewise.
11821 (begin_switch_stmt): Likewise.
11822 (finish_case_label): Likewise.
11823 (begin_try_block): Likewise.
11824 (begin_function_try_block): Likewise.
11825 (begin_handler): Likewise.
11826 (begin_catch_block): Likewise.
11827 (begin_compound_stmt): Likewise.
11828 (begin_asm_stmt): Likewise.
11829 (finish_asm_stmt): Likewise.
11830 (finish_label_stmt): Likewise.
11831 (add_decl_stmt): Likewise.
11832 (finish_subobject): Likewise.
11833 (finish_decl_cleanup): Likewise.
11834 (finish_named_return_value): Likewise.
11835 (setup_vtbl_ptr): Likewise.
11836 (add_scope_stmt): Likewise.
11837 (finish_stmt_expr): Likewise.
11838 (prune_unused_decls): Remove.
11839 (begin_stmt_tree): Likewise.
11840 (finish_stmt_tree): Likewise.
11841 (prep_stmt): Adjust use of current_stmt_tree.
11842 (lang_expand_stmt): Likewise.
11843 * tree.c (statement_code_p): Remove.
11844 (cp_statement_code_p): New function.
11845 (walk_stmt_tree): Remove.
11846 (init_tree): Set lang_statement_code_p.
bb20cc46 11847
0e5921e8
ZW
118482000-09-06 Zack Weinberg <zack@wolery.cumb.org>
11849
11850 Integrated preprocessor.
11851
11852 * Make-lang.in, Makefile.in: Remove all references to input.c,
11853 gxx.gperf, and hash.h. Add ../c-lex.o to C_OBJS.
11854 * gxx.gperf, hash.h, input.c: Delete.
11855 * lang-specs.h: Pass -lang-c++ to cc1plus so cpplib is
11856 initialized properly.
11857
11858 * class.c (fixup_pending_inline): Take a tree, not a
11859 struct pending_inline *. All callers changed.
11860 (init_class_processing): Set RID_PUBLIC, RID_PRIVATE,
11861 RID_PROTECTED entries in ridpointers[] array here.
11862 * decl.c (duplicate_decls): Do not refer to struct
11863 pending_inline.
11864 (record_builtin_type, init_decl_processing): Use RID_MAX not
11865 CP_RID_MAX.
11866 (grokdeclarator): Use C_IS_RESERVED_WORD.
11867 * decl2.c (lang_decode_option): Ignore -lang-c++ for sake of
11868 cpplib.
11869 (grok_x_components): Do not inspect pending_inlines chain.
11870
11871 * cp-tree.h (struct lang_identifier): Add rid_code entry.
11872 (C_IS_RESERVED_WORD, C_RID_CODE, C_RID_YYCODE): New.
11873 (flag_no_gnu_keywords, flag_operator_names, rid_to_yy): Declare.
11874 (DEFARG_LENGTH, struct pending_inline, TIME_IDENTIFIER_TIME,
11875 TIME_IDENTIFIER_FILEINFO): Kill.
11876 Update prototypes.
11877 * lex.h: Expunge cp_rid. Rewrite RIDBIT macros to use just a
11878 single 32-bit word.
11879 * parse.y: Call do_pending_inlines unconditionally.
11880 reinit_parse_for_method is now snarf_method. fn.defpen is no
11881 longer necessary. Remove unnecessary <itype> annotation on
11882 SCOPE. Do not refer to end_of_file or struct pending_inline.
11883 * semantics.c (begin_inline_definitions): Call
11884 do_pending_inlines unconditionally.
11885
11886 * lex.c: Remove all code now shared with C front end.
11887 Initialize cpplib properly if USE_CPPLIB. Put reserved words
11888 into the get_identifier table. Rewrite pragma handling to
11889 work with the registry. Move code to save tokens for later
11890 processing to spew.c.
11891
11892 * spew.c: Rewrite everything in terms of token streams instead
11893 of text. Move routines here from lex.c / input.c as
11894 appropriate. GC-mark trees hanging off the pending inlines
11895 chain.
11896
44835fdd
MM
118972000-09-06 Mark Mitchell <mark@codesourcery.com>
11898
11899 * NEWS: Mention that the named return value extension has been
11900 deprecated.
11901 * cp-tree.h (original_result_rtx): Define.
11902 (TREE_REFERENCE_EXPR): Remove.
11903 (DECL_VPARENT): Likewise.
11904 (pushdecl_nonclass_level): Likewise.
11905 (store_return_init): Likewise.
11906 (reinit_lang_specific): Likewise.
11907 (genrtl_named_return_value): Change prototype.
11908 * decl.c (original_result_rtx): Remove.
11909 (cp_finish_decl): Don't build DECL_STMTs for RESULT_DECLs.
11910 Do not generate RTL for local variables here.
11911 (store_return_init): Remove.
11912 * semantics.c (genrtl_named_return_value): Simplify. Fold in
11913 store_return_init.
11914 (finish_named_return_value): Adjust accordingly. Warn that this
11915 extension is deprecated.
11916 (lang_expand_stmt): Adjust call to genrtl_named_return_value.
11917
d7c4edd0
NS
119182000-09-06 Nathan Sidwell <nathan@codesourcery.com>
11919
11920 * pt.c (type_unification_real): Replace switch with if.
11921 (unify): Tsubst non-type parms before comparing.
11922
46e2747c
NS
119232000-09-06 Nathan Sidwell <nathan@codesourcery.com>
11924
11925 * error.c (dump_typename): New function, broken out of ...
11926 (dump_type): ... here. Use it.
11927 * typeck.c (same_type_p): Use cp_tree_equal for TYPENAME_TYPE.
11928
c833d2be
NS
119292000-09-06 Nathan Sidwell <nathan@codesourcery.com>
11930
11931 * init.c (build_offset_ref): Deal with namespace scoped
11932 TEMPLATE_ID_EXPRs.
11933
b1ce3eb2
NS
119342000-09-06 Nathan Sidwell <nathan@codesourcery.com>
11935
11936 * class.c (resolve_address_of_overloaded_function): Add
11937 explanation message.
11938 * decl.c (define_case_label): Reformat explanation.
11939 * decl2.c (finish_static_data_member_decl): Likewise.
11940 (grokfield): Likewise.
11941 * friend.c (do_friend): Likewise.
11942
11f53b6a
ZW
119432000-09-05 Zack Weinberg <zack@wolery.cumb.org>
11944
11945 * tree.c (walk_tree): Expose tail recursion.
11946 (walk_stmt_tree): New function.
11947 * cp-tree.h: Prototype walk_stmt_tree.
11948 * semantics.c (prune_unused_decls): Operate on SCOPE_STMTs not
11949 the BLOCKs directly. If a BLOCK has no variables after
11950 pruning, discard it.
11951 (finish_stmt_tree): Use walk_stmt_tree. No need to save and
11952 restore the line number.
11953
ee94fce6
MM
119542000-09-05 Mark Mitchell <mark@codesourcery.com>
11955
11956 * Makefile.in (CXX_TREE_H): Add dependency on HTAB_H.
11957 (pt.o): Remove dependency on HTAB_H.
11958 * cp-tree.h: Include hashtab.h.
11959 (walk_tree): Change prototype.
11960 (walk_tree_without_duplicates): New function.
11961 * decl.c (check_default_argument): Use it.
11962 * optimize.c (remap_decl): Adjust calls to walk_tree.
11963 (copy_body): Likewise.
11964 (expand_calls_inline): Likewise.
11965 (calls_setjmp_p): Use walk_tree_without_duplicates.
11966 * pt.c: Don't include hashtab.h.
11967 (for_each_template_parm): Use walk_tree_without_duplicates.
11968 * semantics.c (finish-stmt_tree): Likewise.
11969 (expand_body): Likewise.
11970 * tree.c (walk_tree): Add additional parameter.
11971 (walk_tree_without_duplicates): New function.
11972 (count_trees): Use it.
11973 (verify_stmt_tree): Adjust call to walk_tree.
11974 (find_tree): Use walk_tree_without_duplicates.
11975 (no_linkage_check): Likewise.
11976 (break_out_target_exprs): Adjust call to walk_tree.
11977 (cp_unsave): Likewise.
11978
a1281f45
KL
119792000-09-04 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
11980
11981 * cp-tree.def (BOUND_TEMPLATE_TEMPLATE_PARM): New tree code.
11982 (TEMPLATE_TEMPLATE_PARM): Adjust comment.
11983 * cp-tree.h (TYPE_BINFO): Adjust comment.
11984 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Likewise.
11985 (TEMPLATE_TYPE_PARM_INDEX): Likewise.
11986 (IS_AGGR_TYPE): Use BOUND_TEMPLATE_TEMPLATE_PARM instead.
11987 (TYPE_TEMPLATE_INFO): Likewise.
11988 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL): Likewise.
11989 * class.c (push_nested_class): Likewise.
11990 * decl.c (lookup_name_real): Likewise.
11991 (grokdeclarator): Likewise.
11992 (grok_op_properties): Likewise.
11993 (xref_tag): Likewise.
11994 (xref_basetypes): Likewise.
11995 * decl2.c (constructor_name_full): Likewise.
11996 (arg_assoc_template_arg): Add TEMPLATE_TEMPLATE_PARM case.
11997 (arg_assoc_type): Use BOUND_TEMPLATE_TEMPLATE_PARM instead.
11998 * error.c (dump_type): Split TEMPLATE_TEMPLATE_PARM case.
11999 (dump_type_prefix): Add BOUND_TEMPLATE_TEMPLATE_PARM.
12000 (dump_type_suffix): Likewise.
12001 * init.c (is_aggr_type): Use BOUND_TEMPLATE_TEMPLATE_PARM
12002 instead.
12003 (get_aggr_from_typedef): Likewise.
12004 * mangle.c (write_type): Split TEMPLATE_TEMPLATE_PARM case.
12005 (write_expression): Add BOUND_TEMPLATE_TEMPLATE_PARM.
12006 (write_template_parm): Likewise.
12007 (write_template_template_parm): Check tree code instead of
12008 using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO.
0e5921e8 12009 * method.c (build_overload_nested_name): Add
a1281f45
KL
12010 BOUND_TEMPLATE_TEMPLATE_PARM.
12011 (process_overload_item): Split TEMPLATE_TEMPLATE_PARM case.
12012 * parse.y (bad_parm): Add BOUND_TEMPLATE_TEMPLATE_PARM.
12013 * pt.c (convert_template_argument): Check tree code instead of
12014 using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO.
12015 (for_each_template_parm_r): Split TEMPLATE_TEMPLATE_PARM case.
12016 (for_each_template_parm): Adjust comment.
12017 (tsubst): Add BOUND_TEMPLATE_TEMPLATE_PARM. Reorganize.
12018 (tsubst_copy): Add BOUND_TEMPLATE_TEMPLATE_PARM.
12019 (unify): Add BOUND_TEMPLATE_TEMPLATE_PARM. Reorganize. Use
12020 template_args_equal to compare template template parameter cases.
12021 * ptree.c (print_lang_type): Add BOUND_TEMPLATE_TEMPLATE_PARM.
12022 * search.c (lookup_field_1): Use BOUND_TEMPLATE_TEMPLATE_PARM
12023 instead.
12024 * tree.c (copy_template_template_parm): Decide whether to create
12025 a TEMPLATE_TEMPLATE_PARM or BOUND_TEMPLATE_TEMPLATE_PARM node.
12026 (walk_tree): Add BOUND_TEMPLATE_TEMPLATE_PARM.
12027 (copy_tree_r): Likewise.
12028 * typeck.c (comptypes): Likewise. Check tree code instead of
12029 using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO.
12030
c9672d45
ME
120312000-09-04 Mark Elbrecht <snowball3@bigfoot.com>
12032
12033 * decl.c (finish_function): Move the code for handling functions
12034 marked with the constructor and destructor attributes inside the
12035 expand_p block.
12036
67804825
NS
120372000-09-04 Nathan Sidwell <nathan@codesourcery.com>
12038
12039 * init.c (resolve_offset_ref): Deal with TEMPLATE_ID_EXPR.
12040
1bc0793e
NS
120412000-09-04 Nathan Sidwell <nathan@codesourcery.com>
12042
12043 * pt.c (lookup_template_class): Remove abort.
12044 * tree.c (get_type_decl): Allow error_mark_node.
12045
3338663b
NS
120462000-09-04 Nathan Sidwell <nathan@codesourcery.com>
12047
12048 * decl2.c (arg_assoc): Deal with COMPONENT_REFs inside
12049 TEMPLATE_ID_EXPRs.
12050
1b84dc37
MM
120512000-09-03 Mark Mitchell <mark@codesourcery.com>
12052
12053 * operators.def (ALIGNOF_EXPR, MAX_EXPR, MIN_EXPR): Change
c9672d45 12054 new ABI mangling.
1b84dc37 12055
9687f8f4
NS
120562000-09-01 Nathan Sidwell <nathan@codesourcery.com>
12057
12058 * parse.y (named_class_head): Check for TYPENAME_TYPE. Simplify
c9672d45 12059 union tag mismatch error reporting.
9687f8f4 12060
4f8025eb
NS
120612000-09-01 Nathan Sidwell <nathan@codesourcery.com>
12062
c9672d45 12063 * call.c (build_scoped_method_call): Check it is not a namespace.
4f8025eb 12064
495d26d6
JM
120652000-08-30 Jason Merrill <jason@redhat.com>
12066
12067 * cp-tree.h (LOCAL_CLASS_P): Use decl_function_context.
12068
12069 * tree.c (bot_manip): Check TREE_CONSTANT rather than
12070 !TREE_SIDE_EFFECTS. Call break_out_target_exprs and
12071 build_target_expr_with_type for the non-AGGR_INIT_EXPR case.
12072
12073 * decl.c (start_function): Always call make_function_rtl.
12074
7efcf466
ZW
120752000-08-29 Zack Weinberg <zack@wolery.cumb.org>
12076
495d26d6 12077 * semantics.c (prune_unused_decls): New function.
7efcf466
ZW
12078 (finish_stmt_tree): Call it via walk_tree.
12079
63ad61ed
ZW
120802000-08-29 Zack Weinberg <zack@wolery.cumb.org>
12081
12082 * class.c (build_secondary_vtable): Constify a char *.
12083 * decl.c (init_decl_processing): Initialize function_id_node,
12084 pretty_function_id_node, and func_id_node.
12085 * input.c (struct input_source): Constify 'str'.
12086 (feed_input): Constify first argument.
12087 * mangle.c (write_identifier): Constify argument.
12088 * pt.c (mangle_class_name_for_template): Constify argument.
12089
4361b41d
MM
120902000-08-29 Mark Mitchell <mark@codesourcery.com>
12091
12092 * typeck.c (mark_addressable): Remove code that pokes around in
12093 RTL.
12094
881c6935
JM
120952000-08-28 Jason Merrill <jason@redhat.com>
12096
12097 * lex.c (file_name_nondirectory): Move to toplev.c.
12098
12099 * cp-tree.h (LOCAL_CLASS_P): New macro.
12100 * class.c (finish_struct_1): Use it.
12101
f0f33848
AS
121022000-08-27 Alex Samuel <samuel@codesourcery.com>
12103
12104 * mangle.c (CLASSTYPE_TEMPLATE_ID_P): Remove unexplained voodoo.
12105 (write_encoding): Pass another argument to write_name.
12106 (write_name): Add ignore_local_scope parameter. Fix handling of
12107 local names.
12108 (write_nested_name): Use write_unqualified_name.
12109 (write_prefix): Likewise. Skip out on FUNCTION_DECLs.
12110 (write_template_prefix): Use write_unqualified_name.
12111 (write_component): Remove.
12112 (write_local_name): Add parameter. Use direct local entity to
12113 discriminator calculation.
0e5921e8 12114 (write_class_enum_type): Pass another argument to write_name.
f0f33848
AS
12115 (write_template_template_arg): Likewise.
12116 (make_guard_variable): Likewise.
0e5921e8 12117
94dfccd1
JM
121182000-08-27 Jason Merrill <jason@redhat.com>
12119
12120 * decl.c (pushdecl): Matching decls for local externs are found in
12121 the current level. Propagate linkage information from previous
12122 declarations.
12123
14fdf4b6
GDR
121242000-08-26 Gabriel Dos Reis <gdr@codesourcery.com>
12125
12126 * ir.texi (Expressions): Fix typo.
12127
b5232c64
GM
121282000-08-25 Greg McGary <greg@mcgary.org>
12129
12130 * tree.c (init_tree): Use ARRAY_SIZE.
12131
22a4158c
GDR
121322000-08-25 Gabriel Dos Reis <gdr@codesourcery.com>
12133
12134 * error.c (cp_tree_printer): Rework.
12135
f22967f3
MM
121362000-08-25 Mark Mitchell <mark@codesourcery.com>
12137
a0c182fe
MM
12138 * Make-lang.in (CXX_LIB2FUNCS): Remove cp-demangle.o and
12139 dyn-string.o.
12140 (CXX_LIB2SRCS): Remove cp-demangle.c and dyn-string.c.
12141 (cp-demangle.o): Remove target.
12142 (dyn-string.o): Likewise.
12143
f22967f3
MM
12144 * decl.c (grokfndecl): Require that `main' return an `int'.
12145 * mangle.c (write_encoding): Don't mangle return types for
12146 conversion functions.
12147
a1066c99
GDR
121482000-08-25 Gabriel Dos Reis <gdr@codesourcery.com>
12149
12150 * error.c (tree_formatting_info): New data type.
12151 (tree_being_formatted): New macro.
12152 (tree_formatting_flags): Likewise.
12153 (put_whitespace): Likewise.
12154 (print_tree_identifier): Likewise.
12155 (print_identifier): Likewise.
12156 (cp_tree_printer, print_function_argument_list, print_declaration,
12157 print_expression, print_function_declaration,
12158 print_function_parameter, print_type, print_cv_qualifier): New
0e5921e8 12159 functions.
a1066c99
GDR
12160 (init_error): Initialize lang_printer.
12161
3f2b640a
JM
121622000-08-24 Jason Merrill <jason@redhat.com>
12163
12164 * typeck.c (build_ptrmemfunc): Just reinterpret if there's no
12165 adjustment necessary.
12166
7ec09bf7
GM
121672000-08-24 Greg McGary <greg@mcgary.org>
12168
12169 * cp-tree.h (MAIN_NAME_P): Remove macro.
12170
2ab99c46
GDR
121712000-08-24 Gabriel Dos Reis <gdr@codesourcery.com>
12172
12173 * error.c (print_instantiation_context): Don't forget to flush the
12174 buffer.
12175
7def1251
JM
121762000-08-23 Jason Merrill <jason@redhat.com>
12177
12178 * typeck.c (build_ptrmemfunc): Save the input pmf.
12179
12180 * method.c (process_modifiers): Use same_type_p.
12181
94350948
MM
121822000-08-23 Mark Mitchell <mark@codesourcery.com>
12183
12184 * cp-tree.h (DECL_CLONED_FUNCTION_P): Check DECL_LANG_SPECIFIC.
12185 * mangle.c (write_function_type): Change prototype.
12186 (write_encoding): Don't mangle return types for
12187 constructors or destructors.
12188 (write_type): Adjust call to write_function_type.
12189 * pt.c (instantiate_template): Instantiate alternate entry points
12190 when instantiating the main function.
0e5921e8 12191
a64e7329
GDR
121922000-08-23 Gabriel Dos Reis <gdr@codesourcery.com>
12193
12194 * error.c (cp_print_error_function): Don't use embedded '\n' in
0e5921e8 12195 output_printf.
a64e7329 12196
a72462a4
GDR
121972000-08-23 Gabriel Dos Reis <gdr@codesourcery.com>
12198
12199 * decl.c (init_decl_processing): Remove bogus initialization.
12200 * error.c (lang_print_error_function): Restore here.
0e5921e8
ZW
12201 (init_error): Initialize print_error_function.
12202
3add6264
TP
122032000-08-22 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
12204
12205 * decl2.c (arg_assoc): Revert my 2000-08-11 change.
12206
cb753e49
GDR
122072000-08-22 Gabriel Dos Reis <gdr@codesourcery.com>
12208
12209 * Makefile.in (error.o): Depends on diagnostic.h
12210
12211 * cp-tree.h (problematic_instantiation_changed,
12212 record_last_problematic_instantiation, current_instantiation,
12213 print_instantiation_context): Declare.
12214 (maybe_print_template_context): Remove.
12215
12216 * decl.c (init_decl_processing): Set print_error_function to NULL.
12217 (lang_print_error_function): Remove, since we're using a new
12218 machinery.
12219
12220 * error.c: #include diagnostic.h
12221 (function_category): New function.
12222 (cp_diagnostic_starter): Likewise.
12223 (cp_diagnostic_finalizer): Likewise.
12224 (cp_print_error_function): Likewise.
12225 (maybe_print_instantiation_context): Likewise.
12226 (print_instantiation_full_context): Likewise.
12227 (print_instantiation_partial_context): Likewise.
12228 (print_instantiation_context): Define.
12229 (init_error): Initialize diagnostic pager and finalizer.
12230
12231 * pt.c (problematic_instantiation_changed): Define.
12232 (record_last_problematic_instantiation): Likewise.
12233 (current_instantiation): Likewise.
12234 (maybe_print_template_context): Remove.
12235 (print_template_context): Likewise.
12236 (current_tinst_level): Make static to reflect Brendan Kehoe's
12237 change of 1995-04-13.
0e5921e8
ZW
12238 (push_tinst_level): Call print_instantiation_context.
12239
05a3d06e 122402000-08-21 Nix <nix@esperi.demon.co.uk>
0e5921e8 12241
05a3d06e
N
12242 * lang-specs.h: Do not process -o or run the assembler if
12243 -fsyntax-only.
12244
93e2382f
JM
122452000-08-21 Joseph S. Myers <jsm28@cam.ac.uk>
12246
12247 * decl.c (flag_hosted, flag_noniso_default_format_attributes): New
12248 variables.
12249 * decl2.c (lang_decode_option): Disable gettext attributes for
12250 -ansi.
12251
24805e80
GDR
122522000-08-21 Gabriel Dos Reis <gdr@codesourcery.com>
12253
12254 * lex.c (lang_init_options): Default diagnostic message maximum
12255 length to 80, when line-wrapping.
12256
b485e15b
MM
122572000-08-20 Mark Mitchell <mark@codesourcery.com>
12258
12259 * class.c (build_vtbl_initializer): Clear the entire
12260 vtbl_init_data. Start keeping track of the functions for which we
12261 have created vcall offsets here.
12262 (dfs_build_vcall_offset_vtbl_entries): Remove.
12263 (build_vcall_offset_vtbl_entries): Reimplement.
12264 (add_vcall_offset_vtbl_entries_r): New function.
12265 (add_vcall_offset_vtbl_entries_1): Likewise. Tweak logic for
12266 computing when vcall offsets are necessary.
12267
2ae7bada
NS
122682000-08-18 Nathan Sidwell <nathan@codesourcery.com>
12269
12270 * decl.c (member_function_or_else): Use cp_error ... %T.
12271 (grokdeclarator): Likewise.
12272 (start_method): Likewise.
0e5921e8 12273 * friend.c (make_friend_class): Use cp_pedwarn ... %T.
2ae7bada 12274
7a8b1375
NS
122752000-08-18 Nathan Sidwell <nathan@codesourcery.com>
12276
12277 * decl2.c (grokfield): Set CLASSTYPE_GOT_SEMICOLON on class
0e5921e8 12278 TYPE_DECLs.
7a8b1375 12279
19420d00
NS
122802000-08-18 Nathan Sidwell <nathan@codesourcery.com>
12281
12282 * cp-tree.h (PTRMEM_OK_P): New macro.
12283 (itf_ptrmem_ok): New enumeration value.
12284 * class.c (resolve_address_of_overloaded_function): Add PTRMEM
12285 argument. Diagnose implicit pointer to member.
12286 (instantiate_type): Don't diagnose implicit pointer to member
12287 here. Pass itf_ptrmem_ok if ok. Adjust calls to
12288 resolve_address_of_overloaded_function.
12289 * init.c (build_offset_ref): Set PTRMEM_OK_P.
12290 (resolve_offset_ref): Don't diagnose implicit pointer to member here.
12291 * semantics.c (finish_parenthesized_expr): Clear OFFSET_REFs here.
12292 * typeck.c (build_x_unary_op): Calculate PTRMEM_OK_P.
12293 (build_unary_op): Deal with single non-static member in
12294 microsoft-land.
12295
66081283
NS
122962000-08-18 Nathan Sidwell <nathan@codesourcery.com>
12297
12298 * decl2.c (arg_assoc_type): Cope with TYPENAME_TYPE.
12299
fa40aa12
NS
123002000-08-18 Nathan Sidwell <nathan@codesourcery.com>
12301
12302 * cp-tree.h (enum_name_string): Remove prototype.
12303 (report_case_error): Remove prototype.
12304 * cp/typeck2.c (enum_name_string): Remove.
12305 (report_case_error): Remove.
12306 * error.c (dump_expr): Deal with enum values directly.
12307 Correctly negate integer constant.
12308
d13b34e9
NS
123092000-08-17 Nathan Sidwell <nathan@codesourcery.com>
12310
12311 * inc/cxxabi.h (__cxa_vec_new2, __cxa_vec_new3): Declare.
12312 (__cxa_vec_delete2, __cxa_vec_delete3): Declare.
12313 * vec.cc (__cxa_vec_new2, __cxa_vec_new3): Implement.
12314 (__cxa_vec_delete2, __cxa_vec_delete3): Implement.
12315 (__cxa_vec_new): Use __cxa_vec_new2.
12316 (__cxa_vec_delete): Use __cxa_vec_delete2.
12317
2f1b80af
NS
123182000-08-17 Nathan Sidwell <nathan@codesourcery.com>
12319
12320 * vec.cc (__cxa_vec_new): Set "C" linkage.
12321 (__cxa_vec_ctor): Likewise.
12322 (__cxa_vec_cctor): Likewise.
12323 (__cxa_vec_dtor): Likewise.
12324 (__cxa_vec_delete): Likewise.
12325 * inc/cxxabi.h (__cxa_vec_new): Set "C" linkage.
12326 (__cxa_vec_ctor): Likewise.
12327 (__cxa_vec_cctor): Likewise.
12328 (__cxa_vec_dtor): Likewise.
12329 (__cxa_vec_delete): Likewise.
12330
105d8e1f
NS
123312000-08-17 Nathan Sidwell <nathan@codesourcery.com>
12332
12333 * class.c (instantiate_type): Reinstate local variable
12334 deleted in previous change.
0e5921e8 12335
f1819d9a
NS
12336 * cvt.c (cp_convert_to_pointer): Pass itf_complain, not
12337 itf_no_attributes.
105d8e1f 12338
5e76004e
NS
123392000-08-17 Nathan Sidwell <nathan@codesourcery.com>
12340
12341 * cp-tree.h (instantiate_type_flags): New enumeration.
12342 (instantiate_type): Change parameter.
12343 * class.c (instantiate_type): Adjust prototype. Adjust.
12344 * call.c (standard_conversion): Adjust instantiate_type call.
12345 (reference_binding): Likewise.
12346 (build_op_delete_call): Likewise.
12347 (convert_like_real): Likewise.
12348 * cvt.c (cp_convert_to_pointer): Likewise.
12349 (convert_to_reference): Likewise.
12350 * pt.c (convert_nontype_argument): Likewise.
12351 * typeck.c (build_binary_op): Likewise.
12352 (build_ptrmemfunc): Likewise.
12353 (convert_for_assignment): Likewise.
12354
4b054b80
NS
123552000-08-17 Nathan Sidwell <nathan@codesourcery.com>
12356
12357 * cp-tree.h (CPTR_AGGR_TAG): New global tree node.
12358 (current_aggr): Define.
12359 * decl.c (grokdeclarator): Make sure a friend class is an
12360 elaborated type specifier.
12361 * parse.y (current_aggr): Remove static definition.
12362 (cp_parse_init): Adjust.
12363 (structsp): Clear and restore current_aggr.
12364 (component_decl_list): Clear current_aggr.
0e5921e8 12365
4b054b80
NS
12366 * error.c (dump_type, case TYPENAME_TYPE): Don't emit the
12367 aggregate tag on the typename's context.
0e5921e8 12368
321cba97
NS
12369 * pt.c (tsubst_friend_class): Return error_mark_node, if
12370 parms becomes NULL.
12371 (instantiate_class_template): Ignore error_mark_node friend types.
4b054b80 12372
08aead78
NS
123732000-08-14 Nathan Sidwell <nathan@codesourcery.com>
12374
12375 * cvt.c (warn_ref_binding): New static function, broken out of ...
0e5921e8 12376 (convert_to_reference): ... here. Use it.
08aead78 12377
fa1f3ebc
KL
123782000-08-11 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu>
12379
12380 * parse.y (template_arg): Add rule for template qualified with
12381 global scope.
12382
9845b52b
TP
123832000-08-11 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
12384
12385 * decl2.c (add_function): Reorganize.
12386 (arg_assoc): Do not consider function template decls.
12387
e69c8072
JM
123882000-08-11 Jason Merrill <jason@redhat.com>
12389
12390 * decl.c (lookup_name_real): Don't forget the TYPENAME_TYPE we're
12391 looking inside.
12392
5c1e5476
NS
123932000-08-11 Nathan Sidwell <nathan@codesourcery.com>
12394
12395 * cp-tree.h (resolve_scope_to_name): Remove unused prototype.
12396 (lookup_nested_tag): Likewise.
0e5921e8 12397
5c1e5476
NS
12398 * decl2.c (grokfield): Fix comment to reflect many types of _DECLs
12399 can be produced.
12400
5426aa7f
NS
124012000-08-11 Nathan Sidwell <nathan@codesourcery.com>
12402
12403 * parse.y (named_complex_class_head_sans_basetype): Remove
12404 always true if.
12405
fd037e0d
NS
124062000-08-11 Nathan Sidwell <nathan@codesourcery.com>
12407
12408 * decl2.c (build_expr_from_tree, case METHOD_CALL_EXPR): Build
12409 explicit TEMPLATE_ID_EXPR args.
12410 (build_expr_from_tree, case CALL_EXPR): Likewise.
12411
73ae5c34
NS
124122000-08-11 Nathan Sidwell <nathan@codesourcery.com>
12413
12414 * decl.c (check_tag_decl): Diagnose typename's which don't
12415 declare anything.
12416
aa54df09
NS
124172000-08-10 Nathan Sidwell <nathan@codesourcery.com>
12418
12419 * init.c (build_aggr_init): Reject bogus array initializers
12420 early.
12421
7e8dad18
NS
124222000-08-09 Nathan Sidwell <nathan@codesourcery.com>
12423
12424 * rtti.c (build_dynamic_cast_1): Set "C" linkage for new abi
12425 runtime.
12426 * cp/tinfo.cc (__dynamic_cast): Likewise.
0e5921e8 12427 * cp/inc/cxxabi.h (__dynamic_cast): Likewise.
7e8dad18 12428
0f586b9b
NS
124292000-08-09 Nathan Sidwell <nathan@codesourcery.com>
12430
12431 * cvt.c (convert_to_pointer_force): Fix error message when
0e5921e8 12432 attempting to cast from ambiguous base.
0f586b9b 12433
08e72a19
JM
124342000-08-08 Jason Merrill <jason@redhat.com>
12435
12436 * pt.c (tsubst_aggr_type): Bail if creating the argvec fails.
12437 (tsubst_template_arg_vector): Likewise.
12438
12439 * decl2.c (build_anon_union_vars): Choose the largest field; don't
12440 assume that one will be as large as the union.
12441
0811ea8f
KH
124422000-08-07 Kazu Hirata <kazu@hxi.com>
12443
12444 * cp-tree.h (CLASSTYPE_HAS_PRIMARY_BASE_P): Fix a comment typo.
12445 * decl.c (pop_labels): Likewise.
12446
f9fcf62b
JO
124472000-08-04 Jeffrey Oldham <oldham@codesourcery.com>
12448
12449 * inc/cxxabi.h (__pbase_type_info): Changed member names to match
12450 specifications.
12451 (__pointer_to_member_type_info): Likewise.
12452 (__base_class_info): Likewise.
12453 (__class_type_info): Likewise.
12454 (__si_class_type_info): Likewise.
12455 (__vmi_class_type_info): Likewise.
12456 * tinfo.cc (__si_class_type_info::__do_find_public_src):
12457 Changed member names to match specifications.
12458 (__vmi_class_type_info::__do_find_public_src): Likewise.
12459 (__si_class_type_info::__do_dyncast): Likewise.
12460 (__vmi_class_type_info::__do_dyncast): Likewise.
12461 (__si_class_type_info::__do_upcast): Likewise.
12462 (__vmi_class_type_info::__do_upcast): Likewise.
12463 * tinfo2.cc (__pbase_type_info::__do_catch): Likewise.
12464 (__pbase_type_info::__pointer_catch): Likewise.
12465 (__pointer_type_info::__pointer_catch): Likewise.
12466 (__pointer_to_member_type_info::__pointer_catch): Likewise.
12467
a36556a8
ZW
124682000-08-04 Zack Weinberg <zack@wolery.cumb.org>
12469
0e5921e8
ZW
12470 * Make-lang.in (cc1plus): Depend on $(BACKEND), not stamp-objlist.
12471 * Makefile.in: Add C_OBJS, BACKEND; delete OBJS, OBJDEPS.
12472 (cc1plus): Link with $(BACKEND) and $(C_OBJS).
a36556a8 12473
452a394b
MM
124742000-08-04 Mark Mitchell <mark@codesourcery.com>
12475
12476 * cp-tree.h (add_method): Change prototype.
12477 * class.c (add_method): Remove FIELDS parameter. Add ERROR_P.
12478 Don't double the size of the method vector in the error case.
12479 (handle_using_decl): Adjust call to add_method.
12480 (add_implicitly_declared_members): Likewise.
12481 (clone_function_decl): Likewise.
12482 * decl2.c (check_classfn): Likewise.
12483 * semantics.c (finish_member_declaration): Likewise.
0e5921e8 12484
b8458e3e
JM
124852000-08-04 Joseph S. Myers <jsm28@cam.ac.uk>
12486
12487 * decl.c (flag_isoc94): New variable.
12488
a1bcc528
JM
124892000-08-02 Jason Merrill <jason@redhat.com>
12490
12491 * pt.c (do_type_instantiation): Add complain parm; don't complain
12492 if called recursively.
12493 * cp-tree.h, parse.y: Adjust.
12494
50e60bc3
ZW
124952000-08-02 Zack Weinberg <zack@wolery.cumb.org>
12496
eae51189
ZW
12497 * decl2.c: Silently ignore -Wstrict-prototypes; warn about
12498 -Wno-strict-prototypes.
12499
37620334
ZW
12500 * g++spec.c: Adjust type of second argument to
12501 lang_specific_driver, and update code as necessary.
12502
50e60bc3
ZW
12503 * cp-tree.h: Don't prototype min_precision here.
12504 (my_friendly_assert): Cast expression to void.
12505 * semantics.c (do_poplevel): Initialize scope_stmts.
12506
3f954fc3
MM
125072000-08-02 Mark Mitchell <mark@codesourcery.com>
12508
12509 * cp-tree.h (DECL_NEEDED_P): Tweak.
12510
ab4fa7ed
JM
125112000-07-28 Jason Merrill <jason@redhat.com>
12512
12513 * lang-specs.h: Use %i in rule for .ii files.
12514
4871239e
ZW
125152000-07-31 Zack Weinberg <zack@wolery.cumb.org>
12516
12517 * lang-specs.h: Rename cpp to cpp0 and/or tradcpp to tradcpp0.
12518
911a71a7
MM
125192000-07-30 Mark Mitchell <mark@codesourcery.com>
12520
12521 Allow indirect primary bases.
12522 * cp-tree.h (struct lang_type): Remove vfield_parent. Add
12523 primary_base.
12524 (CLASSTYPE_VFIELD_PARENT): Remove.
12525 (CLASSTYPE_PRIMARY_BINFO): Reimplement.
12526 (BINFO_PRIMARY_BINFO): Remove.
12527 (CLASSTYPE_HAS_PRIMARY_BASE_P): Reimplement.
12528 (BINFO_VBASE_PRIMARY_P): Likewise.
12529 (BINFO_PRIMARY_BASE_OF): New macro.
12530 (BINFO_INDIRECT_PRIMARY_P): Likewise.
12531 (get_primary_binfo): New function.
12532 * decl.c (lang_mark_tree): Make lang_type::primary_base.
12533 * class.c (vcall_offset_data_s): Rename to ...
12534 (vtbl_init_data_s): ... this. Rename primary_p to primary_vtbl_p,
12535 and add ctor_vtbl_p.
12536 (get_derived_offset): Use get_primary_binfo.
12537 (dfs_mark_primary_bases): Adjust handling of virtual primary
12538 bases.
12539 (mark_primary_bases): Likewise.
12540 (set_primary_base): Take a binfo, not an integer, as a
12541 representation of the primary base.
12542 (indirect_primary_base_p): Remove.
12543 (determine_primary_base): Adjust for indirect primary bases.
12544 (dfs_find_final_overrider): Fix typo in coment.
12545 (update_vtable_entry_for_fn): Use get_primary_binfo.
12546 (layout_nonempty_base_or_field): Tweak.
12547 (build_base_fields): Adjust for new primary base semantics.
12548 (dfs_propagate_binfo_offsets): Remove.
12549 (propagate_binfo_offsets): Rewrite.
12550 (dfs_set_offset_for_shared_vbases): Remove.
12551 (layout_virtual_bases): Don't use it.
12552 (layout_class_type): Set CLASSTYPE_SIZE correctly under the new
12553 ABI.
12554 (finish_struct_1): Set CLASSTYPE_PRIMARY_BINFO, not
12555 CLASSTYPE_VFIELD_PARENT.
12556 (dfs_get_primary_binfo): New function.
12557 (get_primary_binfo): Likewise.
12558 (dump_class_hierarchy_r): Tweak printing of primary bases.
12559 (build_vtbl_initializer): Fix typo in comments. Use
12560 vtbl_init_data.
12561 (build_vcall_and_vbase_vtbl_entries): Likewise.
12562 (build_vbaes_offset_vtbl_entries): Likewise.
12563 (dfs_build_vcall_offset_vtbl_entries): Adjust setting of
12564 BV_VCALL_INDEX to handle indirect primary bases.
12565 (build_vcall_offset_vtbl_entries): Use vtbl_init_data.
12566 (build_rtti_vtbl_entries): Likewise.
12567 * search.c (get_shared_vbase_if_not_primary): Tweak.
12568 (find_vbase_instance): Likewise.
12569 (binfo_for_vtable): Simplify.
12570 * tree.c (unshare_base_binfos): Clear BINFO_PRIMARY_BASE_OF.
12571 (make_binfo): Make it have 11 entries.
0e5921e8 12572
722bed0f
AS
125732000-07-30 Alex Samuel <samuel@codesourcery.com>
12574
12575 * mangle.c (DECL_TEMPLATE_ID_P): Remove.
12576 (CLASSTYEP_TEMPLATE_ID_P): Check template info, and context when
12577 ascertaining primaryness.
12578 (G): Remove template_args.
12579 (decl_is_template_id): New function.
12580 (write_encoding): Use decl_is_template_id.
12581 (write_name): Likewise. Handle type_decls. Get main variant of
12582 type decls.
12583 (write_nested_name): Likewise.
12584 (write_prefix): Likewise.
12585 (write_template_prefix): Likewise.
12586 (write_special_name_constructor): Remove defunct production from
12587 comment.
12588 (write_bare_function_type): Remove comment about absent parameter.
12589 (write_template_template_arg): Add missing grammar production to
12590 comment.
12591
9076e292
JM
125922000-07-27 Jason Merrill <jason@redhat.com>
12593
12594 * decl.c (duplicate_decls): If common_type produces a non-typedef
12595 type for a typedef, just use the old type.
12596
b2244c65
MM
125972000-07-27 Mark Mitchell <mark@codesourcery.com>
12598
12599 * cp-tree.h (function_depth): Declare.
12600 (verify_stmt_tree): Likewise.
12601 (find_tree): Likewise.
12602 * decl.c (function_depth): Give it external linkage.
12603 * optimize.c (optimize_function): Increment and decrement it.
12604 * tree.c (verify_stmt_tree_r): New function.
12605 (verify_stmt_tree): Likewise.
12606 (find_tree_r): Likewise.
12607 (find_tree): Likewise.
12608
62e3bf54
JM
126092000-07-27 Jason Merrill <jason@redhat.com>
12610
9076e292
JM
12611 * pt.c (for_each_template_parm_r, case RECORD_TYPE): Use
12612 TYPE_PTRMEMFUNC_P.
12613 * cp-tree.h (TYPE_TEMPLATE_INFO): Check for TYPE_LANG_SPECIFIC.
62e3bf54 12614
5a728aca
MM
126152000-07-26 Mark Mitchell <mark@codesourcery.com>
12616
12617 * decl.c (start_cleanup_fn): Mark the function as `inline'.
12618 * decl2.c (get_guard): Call cp_finish_decl, not
12619 rest_of_decl_compilation, for local guards.
12620 * lex.c (do_identifier): Remove unused variable.
12621
d2a6f3c0 126222000-07-26 Marc Espie <espie@cvs.openbsd.org>
6a1fa5f9
ME
12623
12624 * parse.y: Add missing ';'.
12625
0c10a805
MM
126262000-07-26 Mark Mitchell <mark@codesourcery.com>
12627
12628 * parse.y (empty_parms): Use `()', not `(...)', when in the scope
12629 of `extern "C++"'.
12630
8b27e9ef
NS
126312000-07-25 Nathan Sidwell <nathan@codesourcery.com>
12632
12633 Kill strict_prototype. Backwards compatibility only for
12634 non NO_IMPLICIT_EXTERN_C systems.
12635 * cp-tree.h (flag_strict_prototype): Remove.
12636 (strict_prototype): Remove.
12637 (strict_prototypes_lang_c, strict_prototypes_lang_cplusplus): Remove.
12638 * decl.c (maybe_push_to_top_level): Adjust.
12639 (pop_from_top_level): Adjust.
12640 (decls_match): Only allow sloppy parm matching for ancient
12641 system headers.
12642 (init_decl_processing): Adjust.
12643 (grokdeclarator): Adjust.
12644 * decl2.c (flag_strict_prototype): Remove.
12645 (strict_prototype): Remove.
12646 (strict_prototypes_lang_c, strict_prototypes_lang_cplusplus): Remove.
12647 (lang_f_options): Remove "strict-prototype".
12648 (unsupported-options): Add "strict-prototype".
12649 * lex.c (do_identifier): Adjust.
12650 (do_scoped_id): Adjust.
12651 * parse.y (empty_parms): Adjust.
12652 * class.c (push_lang_context): Adjust.
12653 (pop_lang_context): Adjust.
12654 * typeck.c (comp_target_parms): Adjust.
12655
c3783399
NS
126562000-07-25 Nathan Sidwell <nathan@codesourcery.com>
12657
12658 * decl.c (poplevel): Deal with anonymous variables at for scope.
12659 (maybe_inject_for_scope_var): Likewise.
12660
a7023245
ZW
126612000-07-25 Zack Weinberg <zack@wolery.cumb.org>
12662
12663 * decl.c: Remove all signal handling code, now done in toplev.c.
12664
95ee998c
MM
126652000-07-23 Mark Mitchell <mark@codesourcery.com>
12666
12667 * decl.c (make_rtl_for_nonlocal_decl): Rework.
12668
12669 * pt.c (lookup_template_class): Ensure that TYPE_CONTEXT is set
12670 correctly.
12671
1b493b81
ZW
126722000-07-20 Zack Weinberg <zack@wolery.cumb.org>
12673
12674 * cp-tree.h: Use __FUNCTION__ not __PRETTY_FUNCTION__.
12675 Define my_friendly_assert and my_friendly_abort as macros
12676 which may call friendly_abort. Prototype friendly abort, not
12677 my_friendly_abort or my_friendly_assert.
12678 * decl.c (signal_catch): Report the signal caught in the error
12679 message. Call fatal directly.
12680 * typeck2.c (ack, my_friendly_assert): Delete.
12681 (my_friendly_abort): Rename to friendly_abort. Expect file,
12682 line, and function parameters. Report the abort code, then
12683 call fancy_abort. Do not mask an abort if errors have
12684 already occurred.
12685
a306451c
NS
126862000-07-18 Nathan Sidwell <nathan@codesourcery.com>
12687
12688 * typeck.c (comp_target_parms): Remove obsolete parameter.
12689 (comp_target_types): Adjust.
12690
f49fad00
JM
126912000-07-17 Jason Merrill <jason@redhat.com>
12692
12693 * typeck.c (mark_addressable): Never set TREE_USED.
12694 * call.c (build_call): Don't abort on calls to library functions
12695 that have been declared normally.
12696
12697 * typeck.c (build_binary_op): Fix grammar in warning.
12698
12699 * exception.cc (__eh_free): Fix prototype.
12700
12701 * decl2.c (finish_decl_parsing): Handle TEMPLATE_ID_EXPR.
12702
0e5921e8 12703 * decl.c (pushdecl): Handle seeing an OVERLOAD in
f49fad00
JM
12704 IDENTIFIER_NAMESPACE_VALUE.
12705
69690d98
MM
127062000-07-16 Mark Mitchell <mark@codesourcery.com>
12707
12708 * cp-tree.h (THUNK_VCALL_OFFSET): Update documentation.
12709 * method.c (use_thunk): Correct handling of vcall offsets.
12710
bfbbc080
ZW
127112000-07-14 Zack Weinberg <zack@wolery.cumb.org>
12712
12713 * .cvsignore: parse.h and parse.c have no cp- prefix.
12714
83a90717
MM
127152000-07-13 Mark Mitchell <mark@codesourcery.com>
12716
12717 * .cvsignore: New file.
12718
ea414c97
ZW
127192000-07-13 Zack Weinberg <zack@wolery.cumb.org>
12720
12721 * lang-specs.h: Use the new named specs. Remove unnecessary braces.
12722
792abd35
MM
127232000-07-12 Mark Mitchell <mark@codesourcery.com>
12724
12725 * Makefile.in ($(PARSE_H)): Depend directly on parse.y.
12726 * parse.c: Remove.
12727 * parse.h: Likewise.
12728
72a50ab0
MM
127292000-07-11 Mark Mitchell <mark@codesourcery.com>
12730
12731 * class.c (layout_class_type): Add pointers to virtual bases after
12732 base classes under the old ABI.
12733
0dfdeca6
BC
127342000-07-10 Benjamin Chelf <chelf@codesourcery.com>
12735
12736 * semantics.c (finish_for_stmt): Remove call to emit_line_note.
12737 (finish_continue_stmt): Likewise.
12738 (begin_for_stmt): Remove call to note_level_for_for.
12739 (finish_goto_stmt): Change call from build_min_nt
12740 to build_stmt.
12741 (finish_expr_stmt): Likewise.
12742 (begin_if_stmt): Likewise.
12743 (begin_while_stmt): Likewise.
12744 (finish_while_stmt): Likewise.
12745 (finish_return_stmt): Likewise.
12746 (begin_for_stmt): Likewise.
12747 (finish_for_stmt): Likewise.
12748 (finish_break_stmt): Likewise.
12749 (begin_switch_stmt): Likewise.
12750 (finish_case_label): Likewise.
12751 (genrtl_try_block): Likewise.
12752 (begin_try_block): Likewise.
12753 (begin_handler): Likewise.
12754 (begin_compound_stmt): Likewise.
12755 (finish_asm_stmt): Likewise.
12756 (finish_label_stmt): Likewise.
12757 (add_decl_stmt): Likewise.
12758 (finish_subobject): Likewise.
12759 (finish_decl_cleanup): Likewise.
12760 (finish_named_return_value): Likewise.
12761 (setup_vtbl_ptr): Likewise.
12762 (add_scope_stmt): Likewise.
12763 * decl.c (finish_constructor_body): Likewise.
12764 (finish_destructor_body): Likewise.
12765 * optimize.c (copy_body_r): Likewise.
12766 (initialize_inlined_parameters): Likewise.
12767 (declare_return_variable): Likewise.
12768 (expand_call_inline): Likewise.
0e5921e8 12769
f12eef58
JJ
127702000-07-10 Jakub Jelinek <jakub@redhat.com>
12771
12772 * semantics.c (expand_body): Sync interface information
12773 at the end of function body expansion.
12774
2bb5d995
JM
127752000-07-09 Jason Merrill <jason@redhat.com>
12776
12777 * init.c (build_new_1): Bail early if the call to new fails.
12778
0e5921e8 12779 * decl.c (compute_array_index_type): Check specifically for
2bb5d995
JM
12780 an INTEGER_CST, not just TREE_CONSTANT.
12781
0e5921e8 12782 * decl.c (duplicate_decls): Don't call duplicate_decls on
2bb5d995
JM
12783 the DECL_TEMPLATE_RESULT.
12784 (decls_match): Return 0 if the DECL_TEMPLATE_RESULTs have different
12785 codes.
12786
12787 * error.c (dump_template_bindings): Don't crash if we had an
12788 invalid argument list.
12789
12790 * typeck.c (c_expand_start_case): Do narrowing here.
12791 * semantics.c (finish_switch_cond): Not here.
12792
127932000-07-09 Hidvegi Zoli <hzoli@austin.ibm.com>
12794
12795 * parse.y (asm_clobbers): Do string concatenation.
12796
089acd57
MM
127972000-07-09 Mark Mitchell <mark@codesourcery.com>
12798
12799 * decl.c (pushtag): Don't put local classes in template functions
12800 on the local_classes list.
12801
128022000-07-04 Scott Snyder <snyder@fnal.gov>
12803
12804 * decl2.c (get_guard): Add missing return for old ABI local
12805 variable case.
12806
7b019c19
MM
128072000-07-09 Mark Mitchell <mark@codesourcery.com>
12808
12809 * cp-tree.h (char_type_p): New function.
12810 * decl.c (init_decl_processing): Don't initialize
12811 signed_wchar_type_node or unsigned_wchar_type_node.
12812 (complete_array_type): Handle brace-enclosed string-constants.
12813 * rtti.c (emit_support_tinfos): Remove #if 0'd code.
12814 * tree.c (char_type_p): New function.
12815 * typeck2.c (digest_init): Use char_type_p.
12816
a5f1c5f8
NS
128172000-07-06 Nathan Sidwell <nathan@codesourcery.com>
12818
12819 * pt.c (tsubst): Don't layout type, if it's error_mark.
12820
84e5ca0f
NS
128212000-07-06 Nathan Sidwell <nathan@codesourcery.com>
12822
12823 * pt.c (instantiate_pending_templates): Reset template level.
12824
ab785305
JM
128252000-07-05 Jason Merrill <jason@redhat.com>
12826
12827 * call.c (joust): Don't complain about `operator char *()' beating
12828 `operator const char *() const'.
12829
90418208
JM
128302000-07-04 scott snyder <snyder@fnal.gov>
12831 Jason Merrill <jason@redhat.com>
12832
0e5921e8 12833 * repo.c (repo_get_id): Handle the case where a class with virtual
90418208
JM
12834 bases has a null TYPE_BINFO_VTABLE.
12835
128362000-07-04 Kevin Buhr <buhr@stat.wisc.edu>
12837 Jason Merrill <jason@redhat.com>
12838
12839 * parse.y (member_init): Just pass in the type.
12840 * init.c (expand_member_init): Handle getting a type.
12841
12842