]> gcc.gnu.org Git - gcc.git/blame - gcc/cp/ChangeLog
re PR c++/14360 (Overeager argument dependent name lookup)
[gcc.git] / gcc / cp / ChangeLog
CommitLineData
1c09c5e5
GDR
12004-03-01 Gabriel Dos Reis <gdr@integrable-solutions.net>
2
3 PR c++/14369
4 * error.c (dump_expr): Handle THROW_EXPR.
5
676e33ca
MM
62004-03-01 Mark Mitchell <mark@codesourcery.com>
7
8 PR c++/14360
9 * parser.c (cp_parser_postfix_expression): Do not perform Koenig
10 lookup if ordinary name-lookup finds a non-function.
11 * pt.c (tsubst_copy_and_build): Likewise.
12
13 PR c++/14361
14 * parser.c (cp_parser_late_parsing_default_args): Check that there
15 are no extra tokens after the end of the default-argument
16 expression.
17
ab73670a
MM
182004-03-01 Mark Mitchell <mark@codesourcery.com>
19
20 PR c++/14324
21 * lex.c (retrofit_lang_decl): Treat entities with no linkage as
22 having C++ linkage for name-mangling purposes.
23
24 PR c++/14260
25 * parser.c (cp_parser_direct_declarator): Recognize constructor
26 declarators that use a template-id to name the class being
27 constructed.
28
29 PR c++/14337
30 * pt.c (tsubst_qualified_id): Handle dependent qualifying scopes.
31 (tsubst_expr): Do not call tsubst_copy, even when
32 processing_template_decl.
33
9bf793f9
JL
342004-03-01 Jeff Law <law@redhat.com>
35
36 * init.c (build_vec_delete_1): Convert 2nd argument to NE_EXPR to
37 the proper type.
38
91b004e5
MM
392004-02-29 Mark Mitchell <mark@codesourcery.com>
40
41 PR c++/14138
42 * name-lookup.h (push_scope): Change prototype.
43 * name-lookup.c (push_scope): Do not reenter the current class
44 scope.
45 * decl.c (grokfndecl): Check return code from push_scope before
46 calling pop_scope.
47 * decl2.c (check_classfn): Likewise.
48 * parser.c (cp_parser_conversion_function_id): Likewise.
49 (cp_parser_init_declarator): Likewise.
50 (cp_parser_direct_declarator): Likewise.
51 (cp_parser_class_specifier): Likewise.
52 (cp_parser_class_head): Likewise.
53 (cp_parser_lookup_name): Likewise.
54 (cp_parser_constructor_declarator_p): Likewise.
55 * pt.c (instantiate_class_template): Likewise.
56 (resolve_typename_type): Likewise.
57
39876352
MM
582004-02-29 Mark Mitchell <mark@codesourcery.com>
59
719f407a
MM
60 PR c++/14267
61 * typeck.c (build_modify_expr): Remove more of the cast-as-lvalue
62 extension.
63
39876352
MM
64 PR debug/12103
65 * class.c (update_vtable_entry_for_fn): Do not go through
66 covariance machinery if the type returned by an overrider is the
67 same as the original.
68
4ee31f1e
KH
692004-02-29 Kazu Hirata <kazu@cs.umass.edu>
70
71 * call.c: Fix a comment typo.
72
b1009a5d
ZL
732004-02-27 Ziemowit Laski <zlaski@apple.com>
74
75 * tree.c (pod_type_p): Treat VECTOR_TYPEs as PODs.
76
4d5fe289
MM
772004-02-26 Mark Mitchell <mark@codesourcery.com>
78
79 PR c++/14278
80 * parser.c (cp_parser_parameter_declaration_list): Commit
81 to fewer tentative parses.
82
6bf92cb6
GB
832004-02-26 Giovanni Bajo <giovannibajo@gcc.gnu.org>
84
85 PR c++/14284
86 * pt.c (dependent_type_p_r): A template template parameter is a
87 dependent type.
88
3cc8f587
GB
892004-02-26 Giovanni Bajo <giovannibajo@gcc.gnu.org>
90
91 PR c++/14246
92 * mangle.c (write_template_arg_literal): Don't rely on identity for
93 boolean constants.
94
134084ff
JM
952004-02-24 Jason Merrill <jason@redhat.com>
96
97 * tree.c (build_exception_variant): Use check_qualified_type.
98
3521b33c
ZW
992004-02-23 Zack Weinberg <zack@codesourcery.com>
100 Kazu Hirata <kazu@cs.umass.edu>
101
102 * decl.c (cxx_init_decl_processing): Don't check
103 flag_writable_strings.
104
a2f1f4c3
AP
1052004-02-23 Andrew Pinski <pinskia@physics.uc.edu>
106
107 PR c++/14156
108 * typeck.c (maybe_warn_about_returning_address_of_location):
109 Change check for VAR_DECL to use DECL_P instead.
110
29f4ceab
GB
1112004-02-23 Giovanni Bajo <giovannibajo@gcc.gnu.org>
112
113 PR c++/14250
114 * cvt.c (build_expr_type_conversion): Type must be complete before
115 looking up for conversions.
116
146d3c99
GB
1172004-02-23 Giovanni Bajo <giovannibajo@gcc.gnu.org>
118
119 PR c++/14143
120 * name-lookup.c (arg_assoc_class): Don't look into template
121 arguments if it is not a primary template.
122
7a3e01c4
JDA
1232004-02-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
124
146d3c99 125 PR c++/12007
7a3e01c4
JDA
126 * method.c (use_thunk): Always clone function argument tree.
127
c0694c4b
MM
1282004-02-20 Mark Mitchell <mark@codesourcery.com>
129
130 PR c++/14199
131 * pt.c (tsubst_copy): Call mark_used for a PARM_DECL.
132
133 PR c++/14173
134 * semantics.c (begin_class_definition): Set TYPE_PACKED correctly
135 for all type variants.
136
a6567a0f
MM
1372004-02-19 Mark Mitchell <mark@codesourcery.com>
138
c0694c4b
MM
139 PR c++/13927
140 * decl.c (duplicate_decls): Return error_mark_node for invalid
141 redeclarations.
142 * name-lookup.c (push_namespace): Ignore the return value from
143 pushdecl.
144 * pt.c (push_template_decl_real): Robustify.
145
a6567a0f
MM
146 PR c++/14186
147 * name-lookup.c (push_class_level_binding): Do not complain about
148 adding a binding for a member whose name is the same as the
149 enclosing class if the member is located in a base class of the
150 current class.
151
063e900f
GB
1522004-02-19 Giovanni Bajo <giovannibajo@gcc.gnu.org>
153
154 PR c++/14181
155 * parser.c (cp_parser_new_expression): Parse an ill-formed
156 direct-new-declarator after a parenthesized type-id to emit good
157 diagnostic.
158
aa335b76
KH
1592004-02-18 Kazu Hirata <kazu@cs.umass.edu>
160
161 * cp-tree.def, cvt.c: Update copyright.
162
57782ad8
MM
1632004-02-17 Mark Mitchell <mark@codesourcery.com>
164
165 PR c++/11326
166 * cp-tree.h (abi_version_at_least): Remove.
167 * mangle.c: Include flags.h.
168
d2f2c87b
MM
1692004-02-15 Mark Mitchell <mark@codesourcery.com>
170
171 PR c++/13971
172 * call.c (build_conditional_expr): Handle conversions between
173 class types which result in differently cv-qualified type
174 variants.
175
176 PR c++/14086
177 * class.c (delete_duplicate_fields_1): Remove.
178 (delete_duplicate_fields): Likewise.
179 (finish_struct_anon): Remove check for members with the same name
180 as their enclosing class.
181 (check_field_decls): Do not call duplicate_fields.
182 * decl.c (grokdeclarator): Remove check for static data members
183 with the same name as their enclosing class.
184 * name-lookup.c (push_class_level_binding): Check for members with
185 the same name as their enclosing class.
186
bf3e8283
GDR
1872004-02-15 Gabriel Dos Reis <gdr@integrable-solutions.net>
188
189 PR c++/14085
190 * error.c (dump_decl): Handle TEMPLATE_TYPE_PARM.
191
28ba38e3
KL
1922004-02-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
193
194 PR c++/13635
195 * pt.c (push_template_decl_real): Make sure DECL_TI_ARGS of DECL
196 has full set of arguments.
197
7162281a
GB
1982004-02-13 Giovanni Bajo <giovannibajo@gcc.gnu.org>
199
200 PR c++/13927
201 * error.c (dump_decl) <ALIAS_DECL>: Dump as simple declarations.
202
41dffe62
MM
2032004-02-13 Mark Mitchell <mark@codesourcery.com>
204
0e8c9b28
MM
205 PR c++/14122
206 * cp-tree.h (delete_sanity): Change prototype.
207 * decl2.c (delete_sanity): Make doing_vec a bool, not an int.
208 Remove dead code. Adjust code to warn about deleting an array.
209 * typekc.c (decay_conversion): Use build_address and build_nop.
210
211 PR c++/14108
212 * search.c (accessible_p): Do not check access in thunks.
213
41dffe62
MM
214 PR c++/14083
215 * call.c (build_conditional_expr): Call force_rvalue on the
216 non-void operand in the case that one result is a throw-expression
217 and the other is not.
218
d6e57462
ILT
2192004-02-13 Ian Lance Taylor <ian@wasabisystems.com>
220
221 PR c++/9851
222 * parser.c (cp_parser_pseudo_destructor_name): Check for errors on
223 the type name and look ahead for ::~, and bail out early with a
224 better error message if the parse is going to fail.
225
5bd61841
MM
2262004-02-12 Mark Mitchell <mark@codesourcery.com>
227
228 * call.c (conversion_kind): New type.
229 (conversion_rank): Likewise.
230 (conversion): Likewise.
231 (CONVERSION_RANK): New macro.
232 (conversion_obstack): New variable.
233 (obstack_initialized): Likewise.
234 (z_candidate): Change type of convs and second_conv.
235 (candidate_warning): New type.
236 (IDENTITY_RANK): Remove.
237 (EXACT_RANK): Likewise.
238 (PROMO_RANK): Likewise.
239 (STD_RANK): Likewise.
240 (PBOOL_RANK): Likewise.
241 (USER_RANK): Likewise.
242 (ELLIPSIS_RANK): Likewise.
243 (BAD_RANK): Likewise.
244 (ICS_RANK): Likewise.
245 (ICS_STD_RANK): Likewise.
246 (ICS_USER_FLAG): Likewise.
247 (ICS_ELLIPSIS_FLAG): Likewise.
248 (ICS_THIS_FLAG): Likewise.
249 (ICS_BAD_FLAG): Likewise.
250 (NEED_TEMPORARY_P): Likewise.
251 (CHECK_COPY_CONSTRUCTOR_P): Likewise.
252 (USER_CONV_CAND): Likewise.
253 (USER_CONV_FN): Likewise.
254 (conversion_obstack_alloc): New function.
255 (alloc_conversion): Likewise.
256 (validate_conversion_obstack): Likewise.
257 (alloc_conversions): Likewise.
258 (build_conv): Adjust to deal with new conversion data structures.
259 (build_identity_conv): New function.
260 (build_ambiguous_conv): Likewise.
261 (standard_conversion): Adjust to deal with new conversion data
262 structures.
263 (convert_class_to_reference): Likewise.
264 (direct_reference_binding): Likewise.
265 (reference_binding): Likewise.
266 (implicit_conversion): Likewise.
267 (add_candidate): Likewise.
268 (add_function_candidate): Likewise.
269 (add_conv_candidate): Likewise.
270 (build_builtin_candidate): Likewise.
271 (print_z_candidate): Likewise.
272 (merge_conversion_sequences): Likewise.
273 (build_user_type_conversion_1): Likewise.
274 (build_user_type_conversion): Likewise.
275 (build_new_function_call): Likewise.
276 (build_object_call): Likewise.
277 (conditional_conversion): Likewise.
278 (build_conditional_expr): Likewise.
279 (build_new_op): Likewise.
280 (build_op_delete_call): Likewise.
281 (convert_like_real): Likewise.
282 (build_over_call): Likewise.
283 (build_new_method_call): Likewise.
284 (is_subseq): Likewise.
285 (maybe_handle_implicit_object): Likewise.
286 (maybe_handle_ref_bind): Likewise.
287 (compare_ics): Likewise.
288 (source_type): Likewise.
289 (add_warning): Likewise.
290 (joust): Likewise.
291 (can_convert_arg): Likewise.
292 (can_convert_arg_bad): Likewise.
293 (perform_implicit_conversion): Likewise.
294 (perform_direct_initialization_if_possible): Likewise.
295 (initialize_reference): Likewise.
296 * cp-lang.c (cp_tree_size): Do not handle WRAPPER.
297 * cp-tree.def (WRAPPER): Likewise.
298 (IDENTITY_CONV): Remove.
299 (LVALUE_CONV): Likewise.
300 (QUAL_CONV): Likewise.
301 (STD_CONV): Likewise.
302 (PTR_CONV): Likewise.
303 (PMEM_CONV): Likewise.
304 (BASE_CONV): Likewise.
305 (REF_BIND): Likewise.
306 (USER_CONV): Likewise.
307 (AMBIG_CONV): Likewise.
308 (RVALUE_CONV): Likewise.
309 * cp-tree.h (tree_wrapper): Remove.
310 (WRAPPER_ZC): Remove.
311 (lang_tree_node): Remove wrapper.
312 (LOOKUP_SPECULATIVELY): Remove.
313 (build_op_delete_call): Adjust prototype.
314 (validate_conversion_obstack): Declare.
315 (build_zc_wrapper): Remove.
316 * cvt.c (convert_to_reference): Remove dead code.
317 (ocp_convert): Likewise.
318 * decl.c (redeclaration_error_message): Correct handling of
319 templates.
320 (finish_destructor_body): Do not use LOOKUP_SPECULATIVELY.
321 (cp_tree_node_structure): Remove WRAPPER case.
322 * decl2.c (finish_file): Call validate_conversion_obstack.
323 * init.c (build_new_1): Remove use of LOOKUP_SPECULATIVELY.
324 (build_op_delete_call): Likewise.
325 (build_x_delete): Likewise.
326 (build_delete): Adjust call to build_op_delete_call.
327 * pt.c (tsubst_friend_declaration): Adjust code to determine
328 whether or not a friend template is a definition.
329 (tsubst_decl): Clear DECL_INITIAL for new FUNCTION_DECLs.
330 * tree.c (build_zc_wrapper): Remove.
331
21d13d83
ZW
3322004-02-12 Zack Weinberg <zack@codesourcery.com>
333
334 * cp-lang.c: Don't define LANG_HOOKS_BUILTIN_TYPE_DECLS.
335 * cp-tree.h: Don't declare cxx_builtin_type_decls.
336 * decl.c (builtin_type_decls, cxx_builtin_type_decls): Delete.
337 (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
338
3d2dbfbb
MM
3392004-02-10 Mark Mitchell <mark@codesourcery.com>
340
341 * typeck.c (lookup_destructor): Fix typo in error message.
342
77077b39
KH
3432004-02-09 Kazu Hirata <kazu@cs.umass.edu>
344
345 * call.c, parser.c, tree.c: Fix comment typos.
346
a6f78652
ZW
3472004-02-07 Zack Weinberg <zack@codesourcery.com>
348
349 Bug 13856
350 * optimize.c (maybe_clone_body): Don't update DECL_ESTIMATED_INSNS.
351 * decl.c (duplicate_decls, start_function): Likewise.
352
3532004-02-07 Zack Weinberg <zack@codesourcery.com>
354
355 * name-lookup.c (pushdecl): Issue shadow warnings directly.
356 * parser.c (free_parser_stacks): Delete.
357
0ea5865c
KH
3582004-02-07 Kazu Hirata <kazu@cs.umass.edu>
359
360 * rtti.c: Update copyright.
361
2500bbb6
GB
3622003-02-06 Giovanni Bajo <giovannibajo@gcc.gnu.org>
363
364 PR c++/14033
365 * decl.c (require_complete_types_for_parms): Do not insert
366 error_mark_node in the parameter list.
367
6c0cc713
GB
3682003-02-06 Giovanni Bajo <giovannibajo@gcc.gnu.org>
369
370 PR c++/14028
371 * parser.c (cp_parser_enclosed_template_argument_list): Emit straight
372 error when terminator can not be found.
373
02ba6b22
KC
3742004-02-05 Kelley Cook <kcook@gcc.gnu.org>
375
376 Make-lang.in (po-generated): Delete.
377
136e64db
KH
3782004-02-05 Kazu Hirata <kazu@cs.umass.edu>
379
380 * call.c (type_passed_as): Replace PROMOTE_PROTOTYPES with
381 targetm.calls.promote_prototypes.
382
839ee4bc
RO
3832004-02-05 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
384
385 PR middle-end/13750
386 Revert:
387 2004-01-15 Geoffrey Keating <geoffk@apple.com>
388 PR pch/13361
389 * cp/lex.c (handle_pragma_interface): Duplicate string from tree.
390 (handle_pragma_implementation): Likewise.
391
fca00ffb
MM
3922004-02-05 Mark Mitchell <mark@codesourcery.com>
393
394 PR c++/13714
395 * typeck.c (lookup_destructor): Tweak error message.
396
6039a93d
JH
3972004-02-05 Jan Hubicka <jh@suse.cz>
398
399 * tree.c (cp_cannot_inline_tree_fn): Allow inlining of comdat
400 functions.
401
2097b5f2
GB
4022003-02-05 Giovanni Bajo <giovannibajo@gcc.gnu.org>
403
404 PR c++/14008
a6f78652 405 * parser.c (cp_parser_diagnose_invalid_typename): Removed parsing
2097b5f2
GB
406 code, only emits the diagnostic now. Added lookup of the identifier
407 and support for qualified ids.
408 (cp_parser_parse_and_diagnose_invalid_type_name): New function.
409 Parse an (invalid) type name as id-expression within a declarator.
410 (cp_parser_simple_declaration): Use it.
411 (cp_parser_member_declaration): Likewise.
412 (cp_parser_make_typename_type): New function. Handle errors through
413 cp_parser_diagnose_invalid_typename.
414 (cp_parser_elaborated_type_specifier): Use it.
415
f583e452
MM
4162004-02-04 Mark Mitchell <mark@codesourcery.com>
417
418 PR c++/13932
419 * call.c (convert_like_real): Use "converting" rather than
420 "argument" as the descriptive keyword to
421 dubious_conversion_warnings.
422 * typeck.c (convert_for_assignment): Do not call
423 dubious_conversion_warnings.
424
b1e5b86c
GB
4252004-02-04 Giovanni Bajo <giovannibajo@gcc.gnu.org>
426
427 PR c++/13086
428 * init.c (build_delete): Emit a more informative error message in
429 case of an incomplete type, and on the correct source line.
430
e146f815
KH
4312004-02-04 Kazu Hirata <kazu@cs.umass.edu>
432
433 * error.c, search.c: Update copyright.
434
6f3d0d2f
MM
4352004-02-04 Mark Mitchell <mark@codesourcery.com>
436
437 PR c++/9941
438 * rtti.c (tinfo_base_init): Use import_export_tinfo to decide the
439 linkage for the typeinfo name string.
440
9baa27a9
MM
4412004-02-04 Mark Mitchell <mark@codesourcery.com>
442
443 PR c++/13969
444 * cp-tree.h (fold_non_dependent_expr): New function.
445 * parser.c (cp_parser_fold_non_dependent_expr): Remove.
446 (cp_parser_template_argument): Use fold_non_dependent_expr.
447 (cp_parser_direct_declarator): Likewise.
448 * pt.c (fold_non_dependent_expr): New function.
449 (convert_nontype_argument): Use it.
450 (tsubst_qualified_id): Simplify.
451 (tsubst_copy_and_build): Likewise.
452
dd292d0a
MM
4532004-02-04 Mark Mitchell <mark@codesourcery.com>
454
455 * decl.c (cxx_push_function_context): Do not set
456 current_function_is_thunk.
457 * method.c (use_thunk): Set CALL_FROM_THUNK on the call to the
458 actual function.
459
baa49730
GB
4602003-02-04 Giovanni Bajo <giovannibajo@gcc.gnu.org>
461
18d0ecb6 462 PR c++/13997
baa49730
GB
463 * pt.c (more_specialized_class): Increase processing_template_decl
464 while partial ordering.
465
18f5be99
MM
4662004-02-03 Mark Mitchell <mark@codesourcery.com>
467
468 PR c++/13925
469 * decl.c (start_function): Do not call pushdecl for any
470 instantiation or specialization of a primary template.
471
3c398f34
MM
4722004-02-03 Mark Mitchell <mark@codesourcery.com>
473
4bfb8bba
MM
474 PR c++/13950
475 * parser.c (cp_parser_class_name): Robustify.
476
477 PR c++/13970
478 * parser.c (cp_parser_cache_group): Do not consume the EOF token.
479
3c398f34
MM
480 PR c++/14002
481 * semantics.c (finish_id_expression): Do not return an
482 IDENTIFIER_NODE when lookup finds a PARM_DECL.
483
5a98fa7b
MM
4842004-02-03 Mark Mitchell <mark@codesourcery.com>
485
486 PR c++/13978
487 * pt.c (build_non_dependent_expr): Do not build
488 NON_DEPENDENT_EXPRs for FUNCTION_DECLs or TEMPLATE_DECLs.
489
490 PR c++/13968
491 * semantics.c (finish_id_expression): Do not return an
492 IDENTIFIER_NODE when lookup finds a VAR_DECL.
493
494 PR c++/13975
495 * parser.c (cp_parser_simple_declaration): When skipping to the
496 end of the statement swallow the terminating semicolon.
497
e9525111
MM
4982004-02-02 Mark Mitchell <mark@codesourcery.com>
499
500 PR c++/13113
501 * init.c (build_offset_ref): Improve error recovery for invalid
502 uses of non-static member functions.
503
504 PR c++/13854
505 * cp-tree.h (cp_build_type_attribute_variant): New function.
506 * class.c (build_clone): Use cp_build_type_attribute_variant.
507 * decl.c (duplicate_decls): Likewise.
508 * pt.c (copy_default_args_to_explicit_spec): Likewise.
509 (tsubst_function_type): Likewise.
510 * tree.c (build_exception_variant): Check attributes before
511 concluding that two types are the same.
512 (cp_build_type-attribute_variant): New method.
513 * typeck.c (merge_types): Use cp_build_type_attribute_variant.
514
515 PR c++/13907
516 * call.c (convert_class_to_reference): Keep better track of
517 pedantically invalid user-defined conversions.
518
84b683c1
GB
5192004-02-01 Giovanni Bajo <giovannibajo@gcc.gnu.org>
520
521 PR c++/13957
522 * pt.c (tsubst_qualified_id): Improved error message when a type
523 is expected but not found.
524
852dcbdd
KH
5252004-01-31 Kazu Hirata <kazu@cs.umass.edu>
526
527 * class.c: Fix comment typos.
528 * decl.c: Likewise.
529 * error.c: Likewise.
530 * parser.c: Likewise.
531 * pt.c: Likewise.
532 * search.c: Likewise.
533 * typeck.c: Likewise.
534
59445d74
RH
5352004-01-30 Richard Henderson <rth@redhat.com>
536
a6f78652
ZW
537 PR c++/13693
538 * method.c (use_thunk): Don't force_target_expr for void thunks.
539 * tree.c (build_target_expr_with_type): Assert non-void type.
540 (force_target_expr): Likewise.
59445d74 541
98ce043b
MM
5422004-01-30 Michael Matz <matz@suse.de>
543
544 * parser.c (cp_parser_labeled_statement): Accept case ranges.
545
a9f46cbb
GB
5462004-01-30 Giovanni Bajo <giovannibajo@gcc.gnu.org>
547
548 DR206
549 PR c++/13813
550 * decl.c (grokdeclarator): Check immediatly type completeness for
551 non-dependent types.
552
5840af0f
GB
5532004-01-30 Giovanni Bajo <giovannibajo@gcc.gnu.org>
554
555 PR c++/13683
556 * call.c (convert_arg_to_ellipsis): Don't emit a warning if within
557 a sizeof expression.block
558
4a5e0ed9
MM
5592004-01-29 Mark Mitchell <mark@codesourcery.com>
560
561 PR c++/13883
562 * mangle.c (write_encoding): Correct encoding of member template
563 constructors.
564
f4abade9
GB
5652004-01-28 Giovanni Bajo <giovannibajo@gcc.gnu.org>
566
a6f78652 567 * parser.c (cp_parser_template_id): Parse tentatively `[:' after a
f4abade9
GB
568 template name as it was `<::' (digraph typo).
569 (cp_parser_nth_token_starts_template_argument_list_p): New function.
570 (cp_parser_id_expression): Use it.
571 (cp_parser_nested_name_specifier_opt): Likewise.
572 (cp_parser_template_name): Likewise.
573 (cp_parser_class_name): Likewise.
574 (cp_lexer_get_preprocessor_token): Use c_lex_with_flags.
575
a7324e75
MM
5762004-01-28 Mark Mitchell <mark@codesourcery.com>
577
b1a95e0b
MM
578 PR c++/13791
579 * typeck.c (merge_types): Do not merge attributes into
580 TYPENAME_TYPEs.
581
a7324e75
MM
582 PR c++/13736
583 * parser.c (cp_parser_direct_declarator): Do not prevent
584 backtracking inside a parenthesized declarator.
585 (cp_parser_parameter_declaration): Fix typo in comment.
586
de81ffd4
JH
5872004-01-28 Jan Hubicka <jh@suse.cz>
588
589 * semantics.c (expand_body) Do emit_associated_thunks before
590 expansion.
591
6097b0c3
DP
5922004-01-27 Devang Patel <dpatel@apple.com>
593
594 * name-lookup.c: Include "debug.h"
595 (do_namespace_alias): Invoke debug_hooks to emit debug info
596 for namespace alias.
a6f78652 597 (do_local_using_decl): Invoke debug_hooks to emit debug info
6097b0c3
DP
598 for using decl.
599 (do_class_using_decl): Same.
600 (do_toplevel_using_decl): Same.
601 (do_using_directive): Same.
602 (cp_emit_debug_info_for_using): New function.
603 * Make-lang.in (cp/parser.o): Depend on debug.h
604 (cp/name-lookup.o): Same.
605
1c62e7b2
KG
6062004-01-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
607
608 * cp-tree.h (language_function, lang_type_header): Use
609 BOOL_BITFIELD.
610 * name-lookup.h (cp_binding_level): Likewise.
611
c353b8e3
MM
6122004-01-26 Mark Mitchell <mark@codesourcery.com>
613
6f69173e
MM
614 PR c++/13663
615 * semantics.c (finish_for_expr): Check for unresolved overloaded
616 functions.
617
c353b8e3
MM
618 * class.c (add_method): Just check processing_template_decl to
619 determine whether or not we are within a template.
620 * decl2.c (maybe_retrofit_in_chrg): Likewise.
621 * init.c (decl_constant_value): Check the type of the declaration,
622 not TREE_READONLY.
623 * name-lookup.c (maybe_push_to_top_level): Rename to ...
624 (push_to_top_level): ... this.
625 * name-lookup.h (maybe_push_to_top_level): Do not declare it.
626 * pt.c (push_template_decl_real): Reorder condition for speed.
627 (convert_template_argument): Use dependency-checking functions in
628 place of uses_template_parms.
629 (lookup_template_class): Avoid calling uses_template_parms more
630 than once.
631 (uses_template_parms): Reimplement, using dependency-checking
632 functions.
633 (instantiate_class_template): Use push_to_top_level, not
634 maybe_push_to_top_level.
635 (type_unification_real): Simplify.
636 (type_dependent_expression_p): Handle OFFSET_REFs and
637 TEMPLATE_DECLs.
638 (any_dependent_template_arguments_p): Handle multiple levels of
639 template argument.
640 * semantics.c (expand_or_defer_fn): Do not check
641 uses_template_parms for template instantiations.
642 * typeck.c (comptypes): Avoid calling cp_type_quals.
643
b7c707d1
MM
6442004-01-25 Mark Mitchell <mark@codesourcery.com>
645
646 PR c++/13833
647 * call.c (build_over_call): Do not convert arguments when
648 processing a template.
649 * pt.c (build_non_dependent_expr): Do not build a
650 NON_DEPENDENT_EXPR for arithmetic constants.
651
a3a503a5
GB
6522004-01-25 Giovanni Bajo <giovannibajo@gcc.gnu.org>
653
654 PR c++/13810
a6f78652 655 * parser.c (cp_parser_type_parameter): When cp_parser_id_expression
a3a503a5
GB
656 returns a TYPE_DECL. no further lookup is required.
657 * semantics.c (check_template_template_default_arg): A TYPE_DECL
658 is invalid. Rework to give better diagnostics.
659
ad2768d0 6602004-01-25 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
2620d095
KL
661
662 PR c++/13797
663 * pt.c (instantiate_class_template): Add an error_mark_node
664 check.
665 (tsubst_decl) <TEMPLATE_DECL case>: Likewise.
666
279883ed
AP
6672004-01-23 Andrew Pinski <pinskia@physics.uc.edu>
668
669 PR c++/13701
670 * decl.c (finish_function): Move the call to
671 finish_fname_decls below the call to
672 finish_eh_spec_block.
673
3c2426b9
KH
6742004-01-21 Kazu Hirata <kazu@cs.umass.edu>
675
676 * optimize.c, typeck2.c: Update copyright.
677
521cc508
KH
6782004-01-21 Kazu Hirata <kazu@cs.umass.edu>
679
680 * Make-lang.in, call.c, class.c, decl2.c, except.c, expr.c,
681 init.c, mangle.c, typeck.c: Update copyright.
682
4543ee47
ZD
6832004-01-21 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
684
685 * parser.c (cp_parser_class_specifier): Prevent garbage collection.
686
a541f69d
KC
6872004-01-20 Kelley Cook <kcook@gcc.gnu.org>
688
689 * Make-lang.in: Replace $(docdir) with doc.
690 (c++.info, c++.srcinfo): Dummy entry.
691 (c++.man, c++.srcman): New rules.
692 (c++.install-man): Revamp rule.
693
e165d61b
KC
6942004-01-20 Kelley Cook <kcook@gcc.gnu.org>
695
a6f78652 696 * Make-lang.in (CXX_INSTALL_NAME, GXX_INSTALL_NAME,
e165d61b
KC
697 CXX_TARGET_INSTALL_NAME, GXX_TARGET_INSTALL_NAME): Define via a
698 immediate $(shell) instead of deferred backquote.
699
9f880ef9
MM
7002004-01-19 Mark Mitchell <mark@codesourcery.com>
701
be799b1e
MM
702 PR c++/13651
703 * parser.c (cp_parser_postfix_expression): When encountering
704 incomplete type on left-hand side of "->" or ".", treat the entire
705 expression as erroneous.
706
9f880ef9
MM
707 PR c++/13592
708 * call.c (build_field_call): Remove.
709 (n_build_method_call): Likewise.
710 (build_method_call): Likewise.
711 (build_new_method_call): Do not call build_field_call.
712 * class.c (n_build_method_call): Remove.
713 (print_class_statistics): Do not print it.
714 * cp-tree.h (build_method_call): Remove declaration.
715 (finish_object_call_expr): Likewise.
716 (build_new_1): Do not use build_method_call.
717 * parser.c (cp_parser_postfix_expression): Use finish_call_expr
718 when the function appearing on the right-hand-side of "." or "->"
719 is not actually a function.
720 * pt.c (tsubst_copy_and_build): Likewise.
721 * semantics.c (finish_object_call_expr): Remove.
722
b830b74c
MM
7232004-01-18 Mark Mitchell <mark@codesourcery.com>
724
0f18efe3 725 PR c++/13710
b830b74c
MM
726 * pt.c (tsubst): Use finish_typeof.
727
0fed9ec7 7282004-01-18 Jason Merrill <jason@redhat.com>
aff5c451
JM
729
730 PR c++/11725
731 * except.c (build_throw): In a template, set
732 current_function_returns_abnormally.
733
4bfaff4d 7342004-01-17 Fred Fish <fnf@intrinsity.com>
6f27961a
AP
735
736 PR c++/11895
737 * decl.c (reshape_init): Handle VECTOR_TYPE like ARRAY_TYPE,
738 except don't call array_type_nelts() with a VECTOR_TYPE.
739
965514bd
JH
7402004-01-16 Jan Hubicka <jh@suse.cz>
741
742 * mangle.c (write_mangled_name): Remove inline modifier.
743
ab8ffc79
MM
7442004-01-16 Mark Mitchell <mark@codesourcery.com>
745
a8e6c82a
MM
746 PR c++/13574
747 * decl.c (compute_array_index_type): Fix grammar in comment.
748 * init.c (build_zero_init): Handle zero-sized arrays correctly.
749
144e414d
MM
750 PR c++/13178
751 * call.c (name_as_c_string): Print conversion operator names
752 correctly.
753
ab8ffc79 754 PR c++/13478
1b6bfcd2
MM
755 * call.c (initialize_reference): Pass -1 for inner parameter to
756 convert_like_real.
ab8ffc79 757
1ed53ef3
GB
7582004-01-15 Giovanni Bajo <giovannibajo@gcc.gnu.org>
759
760 PR c++/13407
761 * parser.c (cp_parser_base_specifier): Check for an invalid
762 keyword `typename' and emit an user-friendly error message.
763
a6dd4094
GK
7642004-01-15 Geoffrey Keating <geoffk@apple.com>
765
766 PR pch/13361
767 * cp/lex.c (handle_pragma_interface): Duplicate string from tree.
768 (handle_pragma_implementation): Likewise.
769
21b34b9c
GB
7702004-01-15 Giovanni Bajo <giovannibajo@gcc.gnu.org>
771
772 PR c++/9259
773 * typeck.c (build_class_member_access_expr): Allow to access members
774 of the currently open class.
775 (finish_class_member_access_expr): Likewise.
776
ed5f054f
AO
7772004-01-15 Alexandre Oliva <aoliva@redhat.com>
778
779 PR c++/13659
780 * name-lookup.c (validate_nonmember_using_decl): Take scope and
781 name by value, instead of computing them.
782 (do_local_using_decl, do_toplevel_using_decl): Add scope and name
783 arguments. Pass them to validate_nonmember_using_decl.
784 * name-lookup.h (do_local_using_decl): Adjust.
785 (do_toplevel_using_decl): Likewise.
786 * parser.c (cp_parser_using_declaration): Likewise.
787 * pt.c (tsubst_expr): Likewise.
788
dc55c941
AO
7892004-01-15 Alexandre Oliva <aoliva@redhat.com>
790
791 PR c++/13594
792 PR c++/13658
793 * name-lookup.c (qualified_lookup_using_namespace): Search
794 strongly-associated namespaces first, and only then try other
795 namespaces.
796
03787dfd
KC
7972004-01-15 Kelley Cook <kcook@gcc.gnu.org>
798
799 * Make-lang.in (c++.srcextra): Dummy entry.
800
0d956474
GB
8012004-01-15 Giovanni Bajo <giovannibajo@gcc.gnu.org>
802
803 PR c++/8856
a6f78652 804 * parser.c (cp_parser_template_name): Don't try to parse a
0d956474
GB
805 conversion-function-id, as it cannot be a template-name.
806 (cp_parser_simple_type_specifier): Check for invalid template-ids
807 even after a built-in type.
808
7ec4deda
JH
8092004-01-14 Jan Hubicka <jh@suse.cz>
810
811 PR c++/12850
812 * pt.c (instantiate_decl): Do not increase function_depth.
813
e0fed25b
DS
8142004-01-14 Danny Smith <dannysmith@users,sourceforge.net>
815
816 PR c++/9021
817 PR c++/11005
818 * parser.c (cp_parser_elaborated_type_specifier): Warn about
819 attributes and discard.
820 * decl.c (xref_tag): Don't overwite existing attributes with
821 NULL_TREE.
822
fd6e3cce
GB
8232004-01-14 Giovanni Bajo <giovannibajo@gcc.gnu.org>
824
825 PR c++/12335
826 * parser.c (cp_parser_lookup_name): Return error_mark_node if there
827 is no destructor while looking up a BIT_NOT_EXPR.
828
f18056ff
ILT
8292004-01-13 Ian Lance Taylor <ian@wasabisystems.com>
830
831 * cxxfilt.c: Remove unused file.
832
d34cb6a1
JH
8332004-01-14 Jan Hubicka <jh@suse.cz>
834
835 Partial fix to PR c++/12850
836 * decl2.c (mark_used): Do not proactively instantiate templates
837 when compiling in unit-at-a-time or not optimizing.
838 * optimize.c (maybe_clone_body): Do not increase function depth.
839
cdf4ac6f
GB
8402004-01-13 Giovanni Bajo <giovannibajo@gcc.gnu.org>
841
842 PR c++/13474
843 * pt.c (tsubst) <INTEGER_TYPE>: Remove obsolete array index tweaking.
844
fdd09134
SB
8452003-01-12 Steven Bosscher <stevenb@suse.de>
846
847 PR c++/13558
848 * parser.c (cp_parser_member_declaration): Any non-type is also
849 not a class or a function.
850
7b25f6e5
JM
8512004-01-12 Jason Merrill <jason@redhat.com>
852
853 PR c++/12815
854 * class.c (build_base_path): Do not mark vtable references as
855 TREE_CONSTANT.
856 (build_vtbl_ref_1): Likewise.
857
25ebb82a
RH
8582004-01-12 Richard Henderson <rth@redhat.com>
859
860 PR opt/10776
861 * typeck2.c (split_nonconstant_init_1, split_nonconstant_init): New.
862 (store_init_value): Use it.
863 * decl.c (check_initializer): Expect full initialization code
864 from store_init_value.
865 * init.c (expand_aggr_init_1): Likewise.
866 * decl2.c (maybe_emit_vtables): Abort if runtime init needed.
867
4f0a2b81
MM
8682004-01-12 Mark Mitchell <mark@codesourcery.com>
869
870 * class.c (layout_class_type): For non-POD class types, also copy
871 the DECL_SIZE and DECL_MODE of fields to the base class type.
872
66e0c440
KL
8732004-01-12 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
874
875 PR c++/13289
876 * pt.c (instantiate_decl): Set DECL_TEMPLATE_INSTANTIATED before
877 calling regenerate_decl_from_template.
878
0426c4ca
SB
8792004-01-12 Scott Brumbaugh <scottb.lists@verizon.net>
880
881 PR c++/4100
882 * parser.c (cp_parser_decl_specifier_seq): Add check for a friend
883 decl-specifier occurring along with a class definition.
884
543ca912
ILT
8852004-01-12 Ian Lance Taylor <ian@wasabisystems.com>
886
887 * parser.c (cp_parser_decl_specifier_seq): Add parenthetical
888 clauses to comments describing declares_class_or_enum.
889 (cp_parser_type_specifier): Set *declares_class_or_enum to 0, not
890 false.
891
c1e39976
JH
8922004-01-12 Jan Hubicka <jh@suse.cz>
893
894 * pt.c (for_each_template_parm): Do not check for duplicates.
895 (for_each_template_parm): Use walk_tree duplicate checking code.
896
e90c7b84
ILT
8972004-01-11 Ian Lance Taylor <ian@wasabisystems.com>
898
899 PR c++/3478
900 * parser.c (cp_parser_decl_specifier_seq): If the first decl_spec
901 is error_mark_node, don't add any more decl_specs.
902 (cp_parser_init_declarator): After committing to a declaration, if
903 the decl_specifiers start with error_mark_node, issue an error and
904 change the type to "int".
905
c90501d0
NN
9062004-01-09 Nathanael Nerode <neroden@gcc.gnu.org>
907
908 PR bootstrap/7817
909 * Make-lang.in: Copy gcc.1 to g++.1 rather than using .so.
910
cfb91b67
GB
9112004-01-10 Giovanni Bajo <giovannibajo@gcc.gnu.org>
912
913 DR 337
914 PR c++/9256
a6f78652 915 * pt.c (tsubst): Substitution must fail if we are attempting to
cfb91b67
GB
916 create an array with element type that is an abstract class type.
917 * decl.c (cp_finish_decl): Strip pointers and array types recursively
918 before calling abstract_virtuals_error.
919
c404ab02
AO
9202004-01-09 Alexandre Oliva <aoliva@redhat.com>
921
922 * name-lookup.c (qualified_lookup_using_namespace): Consider
923 strong using directives even if we've already found a binding.
924
0fab64a3
MM
9252004-01-09 Mark Mitchell <mark@codesourcery.com>
926
927 * cp-tree.h (cxx_expand_expr): Change prototype.
928 * expr.c (cxx_expand_expr): Add alt_rtl parameter.
929
3d5ddced
GB
9302004-01-08 Giovanni Bajo <giovannibajo@gcc.gnu.org>
931
932 PR c++/12573
933 * pt.c (value_dependent_expression_p): Handle COMPONENT_REFs by
934 looking into them recursively. They can be there because of the
935 new __offsetof__ extension.
936
7ce27103
ZW
9372004-01-07 Zack Weinberg <zack@codesourcery.com>
938
939 * parser.c (cp_parser_save_member_function_body): Mark the
940 definition static.
941
88081599
MM
9422004-01-05 Mark Mitchell <mark@codesourcery.com>
943
221bfb03
MM
944 PR c++/13057
945 * class.c (build_clone): Copy type attributes from the original
946 function to the clone.
7ce27103 947
856363c8 948 PR c++/12815
962c0823
MM
949 * class.c (build_vtbl_ref_1): Do not unconditionally mark vtable
950 references as constant.
951
216bb6e1
MM
952 PR c++/12132
953 * parser.c (cp_parser_explicit_instantiation): Improve error
954 recovery.
955 (cp_parser_require): Improve indication of the error location.
956
88081599
MM
957 PR c++/13451
958 * parser.c (cp_parser_class_head): Reorder logic to check for
959 invalid qualification.
960
543ebd4a
MM
9612004-01-04 Mark Mitchell <mark@codesourcery.com>
962
963 PR c++/13157
964 * name-lookup.c (lookup_using_namespace): Remove spacesp
965 parameter.
966 (unqualified_namespace_lookup): Likewise.
967 (lookup_qualified_name): Adjust accordingly.
968 (lookup_name_real): Likewise.
969 (lookup_arg_dependent): Do not eliminate the namespace of the
970 functions found by unqualified name lookup unless that is the
971 current namespace.
972
572c2b17
AP
9732004-01-04 Andrew Pinski <pinskia@physics.uc.edu>
974
975 * semantics.c (push_deferring_access_checks): Fix format.
976 (resume_deferring_access_checks): Likewise.
977 (stop_deferring_access_checks): Likewise.
978 (pop_deferring_access_checks): Likewise.
979 (get_deferred_access_checks): Likewise.
980 (pop_to_parent_deferring_access_checks): Likewise.
981 (perform_deferred_access_checks): Likewise.
982 (perform_or_defer_access_check): Likewise.
983
88401f73
RH
9842004-01-04 Richard Henderson <rth@redhat.com>
985
986 * call.c (build_over_call): Don't create a save_expr of an
987 aggregate, but rather its address.
988
4f8163b1
MM
9892004-01-04 Mark Mitchell <mark@codesourcery.com>
990
955d0234
MM
991 PR c++/13529
992 * parser.c (cp_parser_postfix_expression): Allow "." to appear in
993 an offsetof expression.
994
643aee72
MM
995 * parser.c (cp_parser_parameter_declaration): Fix comment.
996
4f8163b1
MM
997 PR c++/12226
998 * call.c (CHECK_COPY_CONSTRUCTOR_P): New macro.
999 (reference_binding): Set it when appropriate.
1000 (build_temp): New function, split out from ...
1001 (convert_like_real): ... here. Honor CHECK_COPY_CONSTRUCTOR_P.
1002 (initialize_reference): Likewise.
1003
1004 PR c++/13536
1005 * parser.c (cp_parser): Add in_type_id_in_expr_p.
1006 (cp_parser_new): Initialize it.
1007 (cp_parser_postfix_expression): Set it.
1008 (cp_parser_sizeof_operand): Likewise.
1009 (cp_parser_parameteR_declaration): Do not commit early to tenative
1010 parsers when in_type_id_in_expr_p is set.
1011
5b4acce1
KL
10122004-01-03 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
1013
1014 PR c++/13094
1015 * parser.c (cp_parser_template_argument): Don't call
1016 make_unbound_class_template directly.
1017 (cp_parser_lookup_name): Don't extract TEMPLATE_DECL from
1018 UNBOUND_CLASS_TEMPLATE tree node.
1019
8748dc22
RS
10202004-01-02 Richard Sandiford <rsandifo@redhat.com>
1021
1022 PR target/12729
1023 * method.c (use_thunk): Pass the CALL_EXPR through force_target_expr.
1024
b0bc6e8e
KL
10252004-01-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
1026
1027 PR c++/13520
1028 * cp-tree.h (DECL_UNBOUND_CLASS_TEMPLATE_P): New macro.
1029 (DECL_FUNCTION_TEMPLATE_P): Use it.
1030 (DECL_CLASS_TEMPLATE_P): Likewise.
1031 * parser.c (cp_parser_lookup_name): Add is_template parameter.
1032 (cp_parser_type_parameter): Adjust call to cp_parser_lookup_name.
1033 (cp_parser_template_name): Likewise.
1034 (cp_parser_elaborated_type_specifier): Likewise.
1035 (cp_parser_namespace_name): Likewise.
1036 (cp_parser_class_name): Likewise.
1037 (cp_parser_lookup_name_simple): Likewise.
58496de1 1038
837b8417 1039See ChangeLog.3 for earlier changes.
This page took 0.220965 seconds and 5 git commands to generate.