re PR debug/66691 (ICE on valid code at -O3 with -g enabled in simplify_subreg, at...
[gcc.git] / gcc / cp / ChangeLog-2005
1 2005-12-30 Gabriel Dos Reis <gdr@integrable-solutions.net>
2
3 * cxx-pretty-print.c (pp_cxx_constant): New. Print
4 string-literal in parens if input program says so.
5 (pp_cxx_primary_expression): Hand off constant printing to
6 pp_cxx_constant.
7 (pp_cxx_pretty_printer_init): Set pp->c_base.constant.
8 (pp_cxx_expression): Use pp_cxx_constant for literals.
9 * error.c (dump_expr): Use pp_constant for literals.
10
11 2005-12-29 Nathan Sidwell <nathan@codesourcery.com>
12
13 * method.c (make_thunk): Don't set comdat_linkage here.
14 (use_thunk): Make thunk one only here, if thunk target is
15 DECL_ONE_ONLY.
16
17 2005-12-26 Mark Mitchell <mark@codesourcery.com>
18
19 PR c++/25439
20 * decl.c (grokdeclarator): Remove dead code.
21 * ptree.c (cxx_print_xnode): Handle BASELINK.
22 * parser.c (make_id_declarator): Add sfk parameter.
23 (cp_parser_direct_declarator): Do not pass TYPE_DECLs to
24 make_id_declarator.
25 (cp_parser_declarator_id): Simplify BASELINKs here.
26 (cp_parser_member_declaration): Adjust calls to
27 make_id_declarator.
28
29 2005-12-26 Mark Mitchell <mark@codesourcery.com>
30
31 PR c++/23171, c++/23172, c++/25417.
32 * typeck.c (build_unary_op): Create temporary variables for
33 compound literals whose addresses are taken.
34 * init.c (expand_aggr_init_1): Use COMPOUND_LITERAL_P.
35 * decl.c (reshape_init_vector): Likewise.
36 (reshape_init): Give it external linkage.
37 (check_initializer): Use COMPOUND_LITERAL_P.
38 (initialize_artificial_var): Allow the initializer to be a
39 CONSTRUCTOR.
40 * call.c (make_temporary_var_for_ref_to_temp): Use
41 create_temporary_var.
42 * cp-tree.h (COMPOUND_LITERAL_P): New macro.
43 (rehape_init): Declare.
44 * typeck2.c (digest_init): Use COMPOUND_LITERAL_P.
45 * semantics.c (finish_compound_literal): Use reshape_init.
46
47 2005-12-23 Mark Mitchell <mark@codesourcery.com>
48
49 PR c++/24671
50 * pt.c (instantiate_template): Handle SFINAE.
51
52 2005-12-23 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
53
54 * decl.c (grokdeclarator): Improve diagnostic for friend
55 declarations of class members.
56
57 2005-12-22 Mark Mitchell <mark@codesourcery.com>
58
59 PR c++/25369
60 * tree.c (really_overloaded_fn): Tweak comment.
61 * pt.c (tsubst_call_declarator_parms): Remove.
62 (tsubst_copy): Call mark_used on the member referenced by an
63 OFFSET_REF.
64 * semantics.c (finish_qualified_id_expr): Simplify.
65 * decl2.c (mark_used): Accept BASELINKs.
66
67 PR c++/25364
68 * typeck.c (build_unary_op): Pass DECLs not names to
69 build_offset_refs.
70 * init.c (build_offset_ref): Do not do name lookup. Do not call
71 mark_used.
72 * call.c (build_call): Simplify and tidy.
73 * semantics.c (finish_qualified_id_expr): Call mark_used.
74
75 2005-12-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
76
77 PR c++/23333
78 * parser.c (cp_parser_pure_specifier): Check for PURE_ZERO to
79 identify a single '0'.
80
81 2005-12-20 Mark Mitchell <mark@codesourcery.com>
82
83 PR c++/21228
84 * decl.c (use_eh_spec_block): New function.
85 (store_parm_decls): Use it.
86 (finish_function): Likewise.
87
88 2005-12-19 Mark Mitchell <mark@codesourcery.com>
89
90 PR c++/24278
91 * init.c (expand_member_init): Print messages about baseclasses
92 using %T rather than %D.
93
94 PR c++/24915
95 * class.c (add_method): Do not treat templates as identical unless
96 their return types are the same.
97
98 2005-12-12 Mark Mitchell <mark@codesourcery.com>
99
100 PR c++/25300
101 * tree.c (build_qualified_name): Return error_mark_node for
102 erroneous input.
103
104 2005-12-10 Mark Mitchell <mark@codesourcery.com>
105
106 PR c++/25337
107 * pt.c (tsubst_copy_and_build): Permit dependent types for the
108 object in a class member access expression.
109
110 2005-12-10 Terry Laurenzo <tlaurenzo@gmail.com>
111
112 PR java/9861
113 * mangle.c (write_bare_function_type): Mangle return type for
114 methods of Java classes
115
116 2005-12-08 Théodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
117
118 * call.c (build_conditional_expr): Print types in error messages.
119
120 2005-12-07 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
121
122 * expr.c (cxx_expand_expr): Call gcc_unreachable instead of abort.
123
124 2005-12-07 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
125
126 * cp-gimplify.c (gimplify_cp_loop): Use fold_build3.
127
128 2005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
129
130 * Make-lang.in (c++.all.build, c++.install-normal): Remove.
131
132 2005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
133
134 * Make-lang.in: Remove all dependencies on s-gtype.
135
136 2005-12-06 Aldy Hernandez <aldyh@redhat.com>
137
138 PR C++/24138
139 * decl.c (reshape_init_array_1): Handle max_index of -1.
140
141 2005-12-06 Roger Sayle <roger@eyesopen.com>
142
143 * typeck.c (build_binary_op): Issue warning if either operand of a
144 comparison operator is a string literal, except for testing equality
145 or inequality against NULL.
146
147 2005-12-06 Roger Sayle <roger@eyesopen.com>
148
149 PR c++/25263
150 * decl.c (compute_array_index_type): Check that itype is an
151 INTEGER_CST node before testing/clearing TREE_OVERFLOW.
152
153 2005-12-05 Daniel Berlin <dberlin@dberlin.org>
154
155 * ptree.c (cxx_print_decl): Update to check for decl_common
156 structure.
157
158 2005-12-02 Mark Mitchell <mark@codesourcery.com>
159
160 PR c++/24173
161 * decl.c (duplicate_decls): Don't rely on DECL_TEMPLATE_INFO after
162 clobbering newdecl.
163
164 2005-12-02 Richard Guenther <rguenther@suse.de>
165
166 * semantics.c (simplify_aggr_init_expr): Use buildN instead
167 of build.
168
169 2005-12-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
170
171 * parser.c (cp_lexer_new_main): Usr GGC_RESIZEVEC instead of
172 ggc_realloc.
173 (cp_parser_template_argument_list): Use XRESIZEVEC instead of
174 xrealloc.
175 * class.c (pushclass): Likewise.
176
177 2005-12-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
178
179 * decl2.c (get_priority_info): Use XNEW, not xmalloc.
180 * decl.c (push_switch): Likewise.
181 * lex.c (handle_pragma_implementation): Likewise.
182 * cp-objcp-common.c (decl_shadowed_for_var_insert): Use GGC_NEW,
183 not ggc_alloc.
184 (cxx_initialize_diagnostics): Use XNEW, not xmalloc.
185 * class.c (init_class_processing): Use XNEWVEC, not xmalloc.
186 * g++spec.c (lang_specific_driver): Likewise.
187 * mangle.c (save_partially_mangled_name): Likewise.
188 * parser.c (cp_lexer_new_main): Use GGC_NEWVEC, not ggc_alloc.
189 (cp_parser_template_argument_list): Use XNEWVEC, nto xmalloc.
190 (cp_parser_sizeof_operand): Likewise.
191 * repo.c (open_repo_file, open_repo_file): Likewise.
192
193 2005-12-01 Gabriel Dos Reis <gdr@integrable-solutions.net>
194
195 * parser.c (cp_parser_make_typename_type): Call make_typename_type
196 with tf_none instead of magic value 0.
197 (cp_parser_explicit_instantiation): Call do_type_instantiation
198 with tf_error instead of magic value 1.
199 (cp_parser_elaborated_type_specifier): Call make_typename_type
200 with tf_error instead of magic value 1.
201 (cp_parser_class_name): Likewise.
202 (cp_parser_lookup_name): Likewise.
203
204 2005-12-01 Gabriel Dos Reis <gdr@integrable-solutions.net>
205
206 * parser.c (cp_parser_declaration): Set token2.type to CPP_EOF,
207 not RID_MAX.
208
209 2005-11-30 Jason Merrill <jason@redhat.com>
210
211 PR c++/21123
212 * cp-gimplify.c (cp_genericize_r): Don't dereference invisible reference
213 parms in a thunk.
214
215 2005-11-30 Ben Elliston <bje@au.ibm.com>
216
217 * typeck.c (build_x_unary_op): Correct spelling in error message.
218
219 2005-11-28 Nathan Sidwell <nathan@codesourcery.com>
220
221 PR c++/21166
222 * class.c (check_field_decls): Only set DECL_PACKED on a field
223 when its natural alignment is > BITS_PER_UNIT.
224
225 2005-11-27 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
226
227 PR c++/24979
228 * cp-tree.h (DECL_MAIN_P): Remove duplicate definition.
229
230 2005-11-26 Richard Henderson <rth@redhat.com>
231
232 * lex.c: Update for pragma_lex rename.
233 * parser.c: Likewise.
234
235 2005-11-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
236
237 PR c++/9278
238 * decl.c (grokparms): Do not allow typedef-names in a '(void)'
239 parmlist.
240
241 2005-11-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
242
243 * typeck2.c (process_init_constructor_union): Remove check for
244 unnamed union members.
245
246 2005-11-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
247
248 * name-lookup.c (lookup_name_real): Merge two if's.
249
250 2005-11-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
251
252 * pt.c (instantiate_class_template): Clean-up.
253
254 2005-11-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
255
256 * pt.c (template_class_depth_real): Remove. Move functionality to ...
257 (template_class_depth): ... here, replacing count_specializations
258 with 0. Adjust comment.
259
260 2005-11-24 Richard Guenther <rguenther@suse.de>
261 Dirk Mueller <dmueller@suse.de>
262
263 PR c++/14024
264 * typeck.c (build_reinterpret_cast_1): Use
265 strict_aliasing_warning.
266
267 2005-11-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
268
269 PR c++/24235
270 * pt.c (check_instantiated_args): Reword diagnostic message about
271 template argument involving local types.
272
273 2005-11-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
274
275 PR c++/21667
276 * typeck.c (build_array_ref): Avoid code duplicate. Use common
277 C/C++ diagnostic function warn_array_subscript_with_type_char.
278
279 2005-11-21 Gabriel Dos Reis <gdr@integrable-solutions.net>
280
281 PR c++/22238
282 * error.c (resolve_virtual_fun_from_obj_type_ref): New.
283 (dump_expr): Use it in <case CALL_EXPR>.
284
285 2005-11-21 Richard Henderson <rth@redhat.com>
286
287 * cp-objcp-common.h, name-lookup.c, name-lookup.h: Revert 11-18 patch.
288
289 * name-lookup.c (lookup_name): Remove prefer_type argument.
290 (lookup_name_prefer_type): New.
291 * decl.c (lookup_and_check_tag): Use them.
292 * pt.c (tsubst_friend_class): Likewise.
293 (lookup_template_class): Likewise.
294 (tsubst_copy_and_build): Likewise.
295 * name-lookup.h (lookup_name_prefer_type): New.
296 (lookup_name): Remove declaration.
297
298 2005-11-18 Mark Mitchell <mark@codesourcery.com>
299
300 PR c++/8355
301 * decl.c (grokfndecl): Set up DECL_TEMPLATE_INFO before calling
302 set_decl_namespace.
303 * name-lookup.c (set_decl_namespace):
304
305 2005-11-18 Mike Stump <mrs@apple.com>
306
307 * cp-objcp-common.h (LANG_HOOKS_LOOKUP_NAME): Add.
308 * name-lookup.c (lookup_name_two): Remove.
309 (lookup_name_one): Add.
310 * name-lookup.h (lookup_name_two): Remove.
311 (lookup_name_one): Add.
312
313 2005-11-15 Jason Merrill <jason@redhat.com>
314
315 PR c++/24580
316 * method.c (locate_copy): Also use skip_artificial_parms here.
317 (synthesize_exception_spec): Use CLASS_TYPE_P rather than checking
318 for RECORD_TYPE.
319 (locate_ctor): Abort if we fail to find a default constructor.
320
321 2005-11-15 Mike Stump <mrs@apple.com>
322
323 * name-lookup.c (lookup_name_two): Add.
324 * name-lookup.h: Likewise.
325
326 2005-11-15 Mark Mitchell <mark@codesourcery.com>
327
328 PR c++/24667
329 * typeck.c (check_for_casting_away_constness): Use the diag_fn.
330 (build_const_cast_1): Call it, for C-style casts.
331
332 2005-11-14 Mark Mitchell <mark@codesourcery.com>
333
334 PR c++/24687
335 * pt.c (check_explicit_specialization): Don't check for C linkage.
336 (push_template_decl_real): Likewise.
337 * parser.c (cp_parser_explicit_specialization): Check here.
338 (cp_parser_template_declaration_after_export): And here.
339
340 * parser.c (cp_lexer_get_preprocessor_token): Initialize keyword
341 field.
342
343 2005-11-14 Jason Merrill <jason@redhat.com>
344
345 PR c++/24580
346 * method.c (locate_ctor): Skip all artificial parms, not just
347 'this'.
348
349 2005-11-14 Mark Mitchell <mark@codesourcery.com>
350
351 * parser.c (eof_token): Add initializer for ambiguous_p.
352
353 2005-11-13 Mark Mitchell <mark@codesourcery.com>
354
355 PR c++/24817
356 * decl.c (check_redeclaration_exception_specification): New
357 function.
358 (duplicate_decls): Use it.
359 * error.c (fndecl_to_string): Print the template parameter list.
360
361 PR c++/20293
362 * cxx-pretty-print.c (pp_cxx_statement): Print qualifying scopes
363 for namespaces.
364 (pp_cxx_original_namespace_definition): Likewise.
365 * name-lookup.c (ambiguous_decl): Don't issue error messages;
366 instead return lists of ambiguous candidates.
367 (select_decl): Handle ambiguous namespace lookups.
368 * parser.c (cp_token): Add ambiguous_p.
369 (cp_lexer_get_preprocessor_token): Set it.
370 (cp_parser_diagnose_invalid_type_name): Avoid duplicate messages
371 when a qualified name uses an invalid scope.
372 (cp_parser_primary_expression): Print ambiguous candidates.
373 (cp_parser_type_parameter): Adjust comment to reflect new
374 parameter name for cp_parser_lookup_name.
375 (cp_parser_template_argument): Likewise.
376 (cp_parser_elaborated_type_specifier): Likewise.
377 (cp_parser_namespace_name): Likewise.
378 (cp_parser_class_name): Print ambiguous candidates.
379 (cp_parser_lookup_name): Rename ambiguous_p parameter to
380 ambiguous_decls. Use it to return a list of ambiguous candiates
381 when a lookup is ambiguous.
382 (cp_parser_lookup_name_simple): Adjust comment to reflect new
383 parameter name for cp_parser_lookup_name.
384
385 2005-11-12 Jakub Jelinek <jakub@redhat.com>
386
387 PR c++/24780
388 * typeck.c (complete_type): Set TYPE_NEEDS_CONSTRUCTING
389 and TYPE_HAS_NONTRIVIAL_DESTRUCTOR flags for all variants
390 of array type.
391
392 PR c++/24761
393 * pt.c (tsubst_copy_asm_operands): New function.
394 (tsubst_expr) <case ASM_EXPR>: Use it.
395
396 2005-11-08 Jakub Jelinek <jakub@redhat.com>
397
398 PR c++/19450
399 * decl.c (redeclaration_error_message): Issue diagnostics about
400 olddecl and newdecl disagreement on __thread property.
401 (grokdeclarator): Set DECL_TLS_MODEL on class static variables.
402
403 2005-11-08 Jason Merrill <jason@redhat.com>
404
405 PR c++/21123
406 * method.c (use_thunk): Use build_cplus_new instead of
407 force_target_expr.
408
409 2005-11-06 Jason Merrill <jason@redhat.com>
410 James A. Morrison <phython@gcc.gnu.org>
411
412 PR c++/17256
413 * decl2.c (cp_finish_file): Fix conditions for undefined warning.
414 Set TREE_NO_WARNING instead of TREE_PUBLIC.
415 * pt.c (instantiate_pending_templates): Set DECL_INITIAL to avoid
416 a warning on a function we didn't instantiate because of excessive
417 recursion.
418
419 2005-11-06 Mark Mitchell <mark@codesourcery.com>
420
421 * class.c (record_subobject_offsets): Don't record offsets past
422 biggest empty class for non-empty base classes.
423 (layout_class_type): Use TYPE_SIZE_UNIT, not TYPE_SIZE, when
424 keeping track of the size of emptyclasses.
425
426 PR c++/21308
427 * class.c (sizeof_biggest_empty_class): New variable.
428 (record_subobject_offsets): Don't record offsets past biggest
429 empty class for data members. Replace vbases_p parameter with
430 is_data_member parameter.
431 (build_base_field): Adjust call.
432 (layout_class_type): Likewise. Maintain
433 sizeof_biggest_empty_class.
434
435 2005-11-05 Kazu Hirata <kazu@codesourcery.com>
436
437 * decl2.c, init.c, typeck.c: Fix comment typos.
438
439 2005-11-04 Richard Guenther <rguenther@suse.de>
440
441 PR c++/22487
442 * init.c (build_vec_init): Build comparison of matching
443 types.
444
445 2005-11-03 Josh Conner <jconner@apple.com>
446
447 PR c++/19989
448 pt.c (tsubst): Accept zero-length array if tf_error is set
449 in complain flags. Change error message for negative-
450 length array.
451
452 2005-11-04 Joseph S. Myers <joseph@codesourcery.com>
453
454 * cp-tree.h (cp_cpp_error), error.c (cp_cpp_error): Take va_list*
455 parameter.
456
457 2005-11-03 Joseph S. Myers <joseph@codesourcery.com>
458
459 PR c++/17964
460 * error.c (cp_cpp_error): New function.
461 * cp-tree.h (cp_cpp_error): Declare.
462 * parser.c (cp_lexer_new_main): Set CPP option client_diagnostic
463 and error callback after lexing.
464
465 2005-11-03 Mark Mitchell <mark@codesourcery.com>
466
467 PR c++/21627
468 * pt.c (register_specialization): Update inline flags on clones.y
469
470 2005-11-03 Andrew Pinski <pinskia@physics.uc.edu>
471
472 PR c++/24582
473 * decl.c (declare_local_label): Return 0 for variables
474 with error_mark_node as their types.
475
476 2005-11-02 Mark Mitchell <mark@codesourcery.com>
477
478 PR c++/22434
479 * call.c (build_conditional_expr): Do bad conversions, if there's
480 no other choice.
481
482 PR c++/24560
483 * parser.c (cp_parser_postfix_dot_deref_expression): Improve error
484 message for use of overloaded functions on LHS of "." operator.
485
486 PR c++/19253
487 * parser.c (cp_parser_postfix_expression): Use
488 cp_parser_elaborated_type_specifier to handle typename-types in
489 functional casts.
490 (cp_parser_enclosed_argument_list): Skip ahead to the end of the
491 template argument list if the closing ">" is not found.
492
493 PR c++/24569
494 * pt.c (instantiate_decl): Use cp_finish_decl, not
495 finish_static_data_member_decl.
496
497 2005-10-28 Andrew Pinski <pinskia@physics.uc.edu>
498
499 * decl.c (grokfndecl): Remove the setting
500 of the return type of the function type
501 of main after erroring about must returning
502 int.
503
504 2005-10-28 Andrew Pinski <pinskia@physics.uc.edu>
505
506 PR C++/23229
507 * decl.c (grokfndecl): Create a new function type
508 after erroring out about main not returning int.
509
510 2005-10-28 Josh Conner <jconner@apple.com>
511
512 PR c++/22153
513 * parser.c (cp_parser_member_declaration): Detect and handle
514 a template specialization.
515
516 2005-10-28 Andrew Pinski <pinskia@physics.uc.edu>
517
518 PR C++/23426
519 * decl.c (start_decl): Check that the decl is an
520 error_mark_node before getting the type.
521 Remove the check for the decl's type being an
522 error_mark_node.
523
524 2005-10-21 Mark Mitchell <mark@codesourcery.com>
525
526 PR c++/24260
527 * parser.c (cp_parser_init_declarator): Pass attributes to
528 grokfield.
529
530 2005-10-20 Mark Mitchell <mark@codesourcery.com>
531
532 PR c++/22618
533 * search.c (accessible_p): Check access in the outermost set of
534 template parameters.
535
536 2005-10-20 Richard Guenther <rguenther@suse.de>
537
538 * decl.c (grokdeclarator): Fix ambiguous pedwarn message.
539
540 2005-10-18 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
541
542 PR c++/22293
543 * decl.c (grokdeclarator): Reject unqualified destructors in
544 friend declarations.
545
546 2005-10-18 Mark Mitchell <mark@codesourcery.com>
547
548 PR c++/23293
549 * pt.c (convert_template_argument): Use canonical type variants in
550 template specializations.
551
552 2005-10-18 Nathan Sidwell <nathan@codesourcery.com>
553
554 PR c++/21383
555 * name-lookup.c (arg_assoc): Template args can be null in a
556 template-id-expr.
557
558 PR c++/22604
559 * class.c (update_vtable_entry_for_fn): Don't process invalid
560 covariant overriders.
561
562 PR c++/23118
563 * cp-tree.h (add_method): Add return value.
564 * class.c (add_method): Return success indicator.
565 * semantics.c (finish_member_declaration): Don't add an invalid
566 method to the method list.
567
568 2005-10-17 Mark Mitchell <mark@codesourcery.com>
569
570 PR c++/21908
571 * call.c (build_new_method_call): Do not show VTT parameters to
572 the user.
573
574 2005-10-17 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
575
576 PR c++/23440
577 * parser.c (cp_parser_statement): If the parser reached CPP_EOF,
578 only complain about missing statement.
579
580 2005-10-17 Nathan Sidwell <nathan@codesourcery.com>
581
582 PR c++/24386
583 * cp-tree.h (BASELINK_QUALIFIED_P): New.
584 * pt.c (tsubst_copy_and_build): <CALL_EXPR case>: Use it.
585 * typeck.c (finish_class_member_access_expr): Set it.
586
587 PR c++/21353
588 * decl.c (check_default_argument): Don't check
589 processing_template_decl or uses_template_parms here.
590 (grokparms): Only call check_default_argument when not processing
591 a template decl.
592 * parser.c (cp_parser_late_parsing_default_arg): Call
593 check_default_argument when not processing a template decl.
594
595 2005-10-16 Mark Mitchell <mark@codesourcery.com>
596
597 PR c++/24389
598 * decl2.c (mark_used): Use uses_template_parms instead of
599 dependent_type_p.
600 * init.c (constant_value_1): Handle uninstantiated templates
601 specially.
602 * pt.c (instantiate_decl): Add sanity check.
603
604 2005-10-16 Mark Mitchell <mark@codesourcery.com>
605
606 PR c++/22173
607 * typeck.c (check_template_keyword): Fix thinko.
608
609 2005-10-16 Andrew Pinski <pinskia@physics.uc.edu>
610
611 PR c++/23959
612 * decl.c (pop_switch): Only call c_do_switch_warnings
613 when not processing templates.
614
615 2005-10-16 Mark Mitchell <mark@codesourcery.com>
616
617 PR c++/22173
618 * cp-tree.h (QUALIFIED_NAME_IS_TEMPLATE): New macro.
619 (check_template_keyword): New function.
620 (finish_id_expression): Change prototoype.
621 (finish_qualified_id_expr): Change prototype.
622 (build_qualified_name): New function.
623 (finish_class_member_access_expr): Change prototype.
624 * init.c (build_offset_ref): Use build_qualified_name.
625 * mangle.c (write_expression): Likewise.
626 * parser.c (cp_parser_primary_expression): Remove qualifying_class
627 parameter. Add address_p and template_arg_p. Use
628 build_qualified_name.
629 (cp_parser_id_expression): Default *template_p to
630 template_keyword_p. Check for invalid uses of the template
631 keyword.
632 (cp_parser_postfix_expression): Eliminate special handling for
633 qualified names. Adjust call to cp_parser_primary_expression.
634 (cp_parser_postfix_dot_deref_expression): Adjust call to
635 cp_parser_id_expression and finish_class_member_access_expr.
636 (cp_parser_template_argument_list): Add comment.
637 (cp_parser_template_argument): Adjust use of
638 cp_parser_primary_expression. Remove call to
639 finish_qualified_id_expr.
640 (cp_parser_lookup_name): Use build_qualified_name.
641 * pt.c (tsubst): Use build_qualified_name.
642 (tsubst_qualified_id): Likewise. Adjust call to
643 finish_qualified_id_expr.
644 (tsubst_copy): Use build_qualified_name.
645 (tsubst_copy_and_build): Adjusts call to finish_id_expression and
646 finish_class_member_access_expr.
647 * semantics.c (finish_non_static_data_member): Use
648 build_qualified_name.
649 (finish_qualified_id_expr): Add template_p and template_arg_p
650 parameters.
651 (finish_id_expression): Remove qualifiying_class parameter. Add
652 template_p, done, address_p, and template_arg_p. Use
653 build_qualified_name. Adjust calls to
654 finish_class_member_acess_expr.
655 * tree.c (build_qualified_name): New function.
656 * typeck.c (check_template_keyword): New function.
657 (finish_class_member_access_expr): Add template_p argument. Check
658 for invalid uses of the template keyword.
659
660 2005-10-15 Mark Mitchell <mark@codesourcery.com>
661
662 PR c++/21347
663 * class.c (maybe_warn_about_overly_private_class): Lazy
664 constructors are public.
665
666 2005-10-14 Mark Mitchell <mark@codesourcery.com>
667
668 PR c++/19565
669 * call.c (convert_like_real): Rely on convert_and_check to issue
670 warnings about overflow and conversion to unsigned.
671 * decl.c (finish_enum): Use the location of the enumerators, not
672 the closing brace of the enumeration, when reporting warnings
673 about conversions.
674 (build_enumerator): Use error_mark_node for erroneous values.
675 * typeck2.c (digest_init): Remove reference to "signature pointer"
676 from comment.
677
678 2005-10-14 Nathan Sidwell <nathan@codesourcery.com>
679
680 PR c++/17796
681 * optimize.c (update_cloned_parm): Add FIRST parameter. Use it.
682 (maybe_clone_body): Track the first clone.
683
684 2005-10-13 Nathan Sidwell <nathan@codesourcery.com>
685
686 PR c++/23984
687 * class.c (build_base_path): The vtable is always the first thing
688 in the vtt.
689
690 2005-10-13 Mark Mitchell <mark@codesourcery.com>
691
692 PR c++/20721
693 * cp-tree.h (DECL_NONTRIVIALLY_INITIALIZED_P): New macro.
694 * decl.c (duplicate_decls): Merge it into new declarations.
695 (decl_jump_unsafe): Use it, rather than DECL_INITIAL.
696 (cp_finish_decl): Set it, when appropriate.
697
698 PR c++/22180
699 * call.c (build_new_method_call): Correct pretty-printing of
700 destructor names.
701 * pt.c (tsubst_qualified_id): Recognize invalid uses of "~T" as an
702 identifier.
703
704 PR c++/23694
705 * decl.c (start_method): Return error_mark_node for errors.
706
707 PR c++/23307
708 * pt.c (push_template_decl_real): Complain about attempts to
709 declare template variables.
710
711 PR c++/22352
712 * pt.c (tsubst_template_parms): Set processing_template_decl while
713 processing the parameters.
714 (tsubst_decl): Set processing_template_decl when substituting into
715 a TEMPLATE_DECL.
716
717 PR c++/22405
718 * pt.c (most_specialized_instantiation): Robustify.
719
720 PR c++/22464
721 * semantics.c (finish_id_expression): Issue errors about uses of
722 local variables in containing functions even in templates.
723
724 2005-10-12 Danny Smith <dannysmith@users.sourceforge.net>
725
726 PR target/21801
727 PR target/23589
728 * class.c (finish_struct_1): Call
729 targetm.cxx.adjust_class_at_definition.
730
731
732 2005-10-12 Nathan Sidwell <nathan@codesourcery.com>
733
734 PR c++/21592
735 * pt.c (build_non_dependent_expr): Don't wrap a COMPONENT_REF
736 with already looked up member functions. Assert we're not
737 returning a NON_DEPENDENT_EXPR with unknown type.
738 * typeck.c (finish_class_member_access_expr): We can get
739 non-template-id-expr baselinks. If the lookup finds a baselink,
740 remember it even inside templates.
741
742 PR c++/23797
743 * parser.c (cp_parser_functional_cast): Cope when TYPE is not a
744 TYPE_DECL. Use dependent_type_p to check type.
745 * pt.c (uses_template_parms_p): Use dependent_type_p for a
746 TYPE_DECL.
747 (type_dependent_expression_p): Assert we've not been given a
748 TYPE_DECL.
749
750 PR c++/21117
751 * decl.c (check_function_type): Correctly overwrite incomplete
752 return type with void type.
753 * typeck.c (check_return_expr): If the function's return type is
754 void, don't try and convert a return expr.
755
756 2005-10-12 David Edelsohn <edelsohn@gnu.org>
757
758 PR c++/23730
759 * call.c (build_object_call): If BINFO is NULL, bypass
760 lookup_fnfields and set fns to NULL_TREE.
761
762 2005-10-12 Paolo Bonzini <bonzini@gnu.org>
763
764 PR c++/24052
765 * error.c (dump_expr): Pass LABEL_DECL to dump_decl. Print
766 an ADDR_EXPR of a LABEL_DECL as &&.
767
768 2005-10-12 Nathan Sidwell <nathan@codesourcery.com>
769
770 PR c++/19964
771 * class.c (walk_subobject_offsets): Don't walk error_mark_node.
772
773 2005-10-11 Ian Lance Taylor <ian@airs.com>
774
775 PR c++/8057
776 * cvt.c (convert_to_void): Don't warn about unused values when
777 processing a template declaration.
778
779 2005-10-11 Mark Mitchell <mark@codesourcery.com>
780
781 PR c++/21089
782 * call.c (convert_like_real): Use decl_constant_value, not
783 integral_constant_value.
784 * init.c (constant_value_1): New function.
785 (integral_constant_value): Use it.
786 (decl_constant_value): Likewise.
787 * typeck.c (decay_conversion): Use decl_constant_value, not
788 integral_constant_value.
789
790 PR c++/21369
791 * parser.c (cp_parser_elaborated_type_specifier): Don't treat
792 class types as templates if the type is not appearing as part of a
793 type definition or declaration.
794
795 2005-10-10 Mark Mitchell <mark@codesourcery.com>
796
797 PR c++/24277
798 * pt.c (instantiate_decl): Call finish_static_data_member_decl for
799 static data members.
800
801 2005-10-10 Giovanni Bajo <giovannibajo@gcc.gnu.org>
802 Mark Mitchell <mark@codesourcery.com>
803
804 PR c++/23437
805 * parser.c (cp_parser_template_argument_list): Do not treat
806 contents of argument list as part of a constant expression.
807
808 2005-10-10 Mark Mitchell <mark@codesourcery.com>
809
810 PR c++/24139
811 * decl.c (grokdeclarator): Do not require template parameter lists
812 for explicitly specialized class.
813 * error.c (dump_aggr_type): Do not dump template arguments for
814 non-primary specializations.
815 (dump_function_name): Likewise.
816
817 PR c++/24275
818 * pt.c (instantiate_decl): Instantiate the initializer of
819 a static data member in the namespace containing the class
820 containing the static data member.
821
822 2005-10-08 James A. Morrison <phython@gcc.gnu.org>
823
824 PR c++/22172
825 * parser.c (cp_parser_postfix_expression) <RID_TYPENAME>: Treat nontype
826 scopes as nondependent.
827
828 2005-10-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
829
830 * call.c (resolve_args): Remove redundant test.
831
832 2005-10-05 Paolo Bonzini <bonzini@gnu.org>
833
834 PR tree-optimization/21419
835 PR tree-optimization/24146
836 PR tree-optimization/24151
837
838 * semantics.c (finish_asm_stmt): Call readonly_error if outputs are
839 read-only. Set ASM_VOLATILE_P for asms without outputs.
840
841 2005-10-05 Nathan Sidwell <nathan@codesourcery.com>
842
843 PR c++/23513
844 * call.c (joust): Adjust length count to more_specialized_fn.
845 * pt.c (more_specialized_fn): Cope with non-static member vs
846 non-member.
847
848 2005-10-04 Andrew Pinski <pinskia@physics.uc.edu>
849
850 PR middle-end/23125
851 * decl.c (make_rtl_for_nonlocal_decl): Use set_user_assembler_name
852 instead of change_decl_assembler_name.
853
854 2005-10-03 Alexandre Oliva <aoliva@redhat.com>
855
856 * error.c (dump_type) <UNKNOWN_TYPE>: Print reworded message.
857
858 2005-10-03 Mark Mitchell <mark@codesourcery.com>
859
860 PR c++/17775
861 * repo.c: Include flags.h.
862 (finish_repo): Add -frandom-seed to the arguments.
863
864 2005-10-02 Mark Mitchell <mark@codesourcery.com>
865
866 PR c++/22621
867 * parser.c (cp_parser_template_argument): Don't turn "T::f" into
868 "(*this).T::f".
869 * pt.c (convert_nontype_argument): Remove ??? comment.
870
871 PR c++/23840
872 * tree.c (lvalue_p_1): A VA_ARG_EXPR with class type is an lvalue,
873 when class rvalues are lvalues.
874
875 2005-09-28 Mark Mitchell <mark@codesourcery.com>
876
877 PR c++/16782
878 * decl.c (grokdeclarator): Always pedwarn about overqualified
879 member names.
880
881 2005-09-27 Mark Mitchell <mark@codesourcery.com>
882
883 PR c++/22147
884 * name-lookup.c (maybe_process_template_type_declaration): Don't
885 treat forward declarations of classes as templates just because
886 we're processing_template_decl.
887 * pt.c (tsubst_decl): Clear DECL_TEMPLATE_INFO for friend
888 functions.
889
890 2005-09-26 Jason Merrill <jason@redhat.com>
891
892 PR c++/13764
893 * cp-tree.h (FUNCTION_NEEDS_BODY_BLOCK): New macro.
894 * name-lookup.c (pushdecl_maybe_friend): Check it.
895 * decl.c (begin_function_body): Do nothing if it's false.
896 (finish_function_body): Ditto.
897 (outer_curly_brace_block): New fn.
898 (finish_function): Use it.
899
900 2005-09-26 Richard Guenther <rguenther@suse.de>
901
902 PR middle-end/15855
903 * decl2.c (do_static_destruction): Remove.
904 (finish_static_initialization_or_destruction): Likewise.
905 (DECL_EFFECTIVE_INIT_PRIORITY): New macro.
906 (NEEDS_GUARD_P): Likewise.
907 (do_static_initialization): Rename to
908 do_static_initialization_or_destruction. Process all
909 initializers/destructors and handle common conditionalizing.
910 (start_static_initialization_or_destruction): Rename to
911 one_static_initialization_or_destruction. Handle only
912 decl-specific conditionalizing.
913 (cp_finish_file): Call do_static_initialization_or_destruction.
914
915 2005-09-22 Jakub Jelinek <jakub@redhat.com>
916
917 PR c++/21983
918 * class.c (find_final_overrider): Move diagnostic about no unique final
919 overrider to...
920 (update_vtable_entry_for_fn): ... here.
921
922 2005-09-21 Mark Mitchell <mark@codesourcery.com>
923
924 PR c++/23993
925 * init.c (integral_constant_value): Use DECL_INTEGRAL_CONSTANT_VAR_P.
926
927 2005-09-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
928
929 PR c++/23965
930 * call.c (resolve_args): Return error_mark_node on arguments
931 whose TREE_TYPE is error_mark_node.
932
933 2005-09-20 Jakub Jelinek <jakub@redhat.com>
934
935 PR c++/23947
936 * rtti.c (get_pseudo_ti_init): Recompute ti pointer after
937 get_tinfo_ptr calls.
938
939 2005-09-16 Mark Mitchell <mark@codesourcery.com>
940
941 PR c++/23914
942 * parser.c (cp_parser_enclosed_template_argument_list): Make sure
943 skip_evaluation is false when processing template arguments.
944
945 PR c++/21514
946 * pt.c (check_instantiated_args): Treat uses of anonymous types as
947 causing type-deduction failure.
948
949 2005-09-15 Jason Merrill <jason@redhat.com>
950
951 PR c++/23357
952 * cp-tree.def (SIZEOF_EXPR, ALIGNOF_EXPR): Change code class to
953 tcc_expression.
954
955 2005-09-15 Mark Mitchell <mark@codesourcery.com>
956
957 PR c++/23896
958 * pt.c (tsubst_aggr_type): Make sure skip_evaluation is false when
959 processing template arguments.
960
961 * pt.c (check_explicit_instantiation_namespace): Fix typo.
962
963 PR c++/13140
964 * decl.c (check_class_member_definition_namespace): New function.
965 (grokfndecl): Use it.
966 (grokvardecl): Likewise.
967 (grokdecl): Improve documentation.
968 * pt.c (check_explicit_instantiation_namespace): New function.
969 (register_specialization): Call check_specialization_namespace
970 when replacing an implicitly instantiated function.
971 (check_explicit_specialization): Ensure that DECL_CONTEXT is set
972 correctly for namespace-scope specializations.
973 (do_decl_instantiation): Use
974 check_explicit_instantiation_namespace.
975 (do_type_instantiation): Likewise.
976
977 2005-09-15 Nathan Sidwell <nathan@codesourcery.com>
978
979 PR c++/23725
980 * error.c (dump_decl): <USING_DECL case> Use USING_DECL_SCOPE.
981
982 2005-09-13 Bastian Blank <waldi@debian.org>
983
984 PR c++/16171
985 * mangle.c (find_substitution): Do not use special substitutions
986 for identifiers not in std::.
987
988 2005-09-13 Mark Mitchell <mark@codesourcery.com>
989
990 PR c++/23839
991 * typeck.c (cxx_mark_addressable): Only check DECL_HARD_REGISTER
992 for VAR_DECLs.
993
994 2005-09-13 Mark Mitchell <mark@codesourcery.com>
995
996 PR c++/23842
997 * pt.c (tsubst_default_argument): Do treat default argument
998 expressions as occurring in the context of the function called.
999
1000 2005-09-12 Mark Mitchell <mark@codesourcery.com>
1001
1002 PR c++/23841
1003 * parser.c (cp_parser_primary_expression): Recognize the closing
1004 ">" of a template-argument-list after a floating-point literal as
1005 the end of a cast expression.
1006
1007 2005-09-12 Mark Mitchell <mark@codesourcery.com>
1008
1009 PR c++/23789
1010 * cvt.c (perform_qualification_conversions): Don't create
1011 unnecessary NOP_EXPRs.
1012 * pt.c (tsubst_template_arg): Use fold_non_dependent_expr.
1013
1014 2005-09-12 Ian Lance Taylor <ian@airs.com>
1015
1016 PR g++/7874
1017 * cp-tree.h (struct lang_decl_flags): Add hidden_friend_p
1018 bitfield. Make dummy bitfield one bit smaller.
1019 (DECL_HIDDEN_FRIEND_P): Define.
1020 (pushdecl_maybe_friend): Declare.
1021 (pushdecl_top_level_maybe_friend): Declare.
1022 * decl.c (duplicate_decls): Add newdecl_is_friend parameter.
1023 Change prototype and all callers. Add assertion that a
1024 DECL_ARTIFICIAL FUNCTION_DECL is not DECL_HIDDEN_FRIEND_P. Set
1025 DECL_ANTICIPATED and DECL_HIDDEN_FRIEND_P in duplicated decl if
1026 appropriate.
1027 * name-lookup.c (supplement_binding): Don't ignore a
1028 DECL_HIDDEN_FRIEND_P.
1029 (pushdecl_maybe_friend): Break out contents of pushdecl. Add
1030 is_friend parameter. Set DECL_ANTICIPATED and
1031 DECL_HIDDEN_FRIEND_P for a friend function.
1032 (pushdecl): Just call pushdecl_maybe_friend.
1033 (pushdecl_with_scope): Add is_friend parameter. Change prototype
1034 and all callers.
1035 (pushdecl_namespace_level): Likewise.
1036 (push_overloaded_decl): Likewise. Check DECL_HIDDEN_FRIEND_P as
1037 well as DECL_ANTICIPATED when checking for a builtin.
1038 (do_nonmember_using_decl): Check DECL_HIDDEN_FRIEND_P as well as
1039 DECL_ANTICIPATED when checking for a builtin.
1040 (do_nonmember_using_decl): Likewise.
1041 (pushdecl_top_level_1): Add is_friend parameter. Change all
1042 callers.
1043 (pushdecl_top_level_maybe_friend): New function.
1044 (remove_hidden_names): New function.
1045 (struct arg_lookup): Add args field.
1046 (friend_of_associated_class_p): New static function.
1047 (arg_assoc_namespace): Ignore hidden functions which are not
1048 friends of an associated class of some argument.
1049 (lookup_arg_dependent): Remove hidden functions from list passed
1050 in. Initialize k.args.
1051 * name-lookup.h (remove_hidden_names): Declare.
1052 * friend.c (do_friend): Call pushdecl_maybe_friend instead of
1053 pushdecl.
1054 * call.c (add_function_candidate): Change DECL_ANTICIPATED test to
1055 an assertion, with a check for DECL_HIDDEN_FRIEND_P.
1056 (build_new_function_call): Add koenig_p parameter. Change
1057 prototype and callers.
1058 * pt.c (register_specialization): Add is_friend parameter. Change
1059 all callers.
1060 (push_template_decl_real): Change is_friend parameter to bool.
1061 Change prototype and all callers.
1062 (tsubst_friend_class): Call pushdecl_top_level_maybe_friend
1063 instead of pushdecl_top_level.
1064
1065 2005-09-11 Richard Henderson <rth@redhat.com>
1066
1067 * decl2.c (build_anon_union_vars): Copy attributes from the base addr.
1068 * pt.c (tsubst_decl): Substitute in DECL_VALUE_EXPR.
1069
1070 2005-09-09 Gabriel Dos Reis <gdr@integrable-solutions.net>
1071
1072 * parser.c (cp_parser_translation_unit): Simplify. The while-block
1073 was actually executed at most once.
1074
1075 2005-09-09 Richard Henderson <rth@redhat.com>
1076
1077 PR debug/20998
1078 * cp-tree.def (ALIAS_DECL): Remove.
1079 * cp-lang.c (cp_init_ts): Remove support for it.
1080 * error.c (dump_decl): Likewise.
1081 * name-lookup.c (pushdecl): Likewise.
1082 * semantics.c (finish_id_expression): Likewise.
1083 * decl2.c (build_anon_union_vars): Use a VAR_DECL with
1084 DECL_VALUE_EXPR instead.
1085
1086 2005-09-09 Mark Mitchell <mark@codesourcery.com>
1087
1088 PR c++/22252
1089 * decl.c (start_preparsed_function): Do not pay attention to
1090 #pragma interface for implicitly-defined methods.
1091 * decl2.c (cp_finish_file): Do not complain about uses of inline
1092 functions that have bodies, even if we decided not to emit the
1093 body in this translation unit.
1094 * semantics.c (note_decl_for_pch): Do not mess with linkage.
1095 (expand_or_defer_fn): Make inline, non-template functions COMDAT
1096 at this point.
1097
1098 2005-09-08 Richard Henderson <rth@redhat.com>
1099
1100 PR debug/23190
1101 * decl.c (wrapup_globals_for_namespace): Call
1102 emit_debug_global_declarations.
1103 * decl2.c (cp_finish_file): Likewise.
1104
1105 2005-09-08 Mark Mitchell <mark@codesourcery.com>
1106
1107 PR c++/23691
1108 * decl2.c (mark_used): Instantiate static data members initialized
1109 by constants, even in a template.
1110
1111 2005-09-08 Andrew Pinski <pinskia@physics.uc.edu>
1112
1113 PR obj-c++/16816
1114 * parser.c (cp_parser_objc_selector_expression): Treat CPP_SCOPE as
1115 two CPP_COLON.
1116
1117 2005-09-07 Richard Guenther <rguenther@suse.de>
1118
1119 * cp-gimplify.c (cp_gimplify_expr): Create empty CONSTRUCTOR
1120 for EMPTY_CLASS_EXPR.
1121
1122 2005-09-06 Jakub Jelinek <jakub@redhat.com>
1123
1124 PR c/23075
1125 * typeck.c (check_return_expr): Add no_warning argument. Set
1126 *no_warning to true if "return-statement with no value, in function
1127 returning" warning has been issued.
1128 * cp-tree.h (check_return_expr): Adjust prototype.
1129 * semantics.c (finish_return_stmt): Set TREE_NO_WARNING if
1130 check_return_expr set *no_warning to true.
1131
1132 2005-09-06 Mark Mitchell <mark@codesourcery.com>
1133
1134 * cp-tree.h (rvalue): New function.
1135 * call.c (build_conditional_expr): Use it.
1136 * init.c (build_new_1): Likewise.
1137 * rtti.c (build_dynamic_cast_1): Likewise.
1138 * tree.c (rvalue): New function.
1139 * typeck.c (build_unary_op): Use it.
1140 (build_static_cast_1): Likewise.
1141
1142 PR c++/9782
1143 * init.c (build_new_1): Make sure the entire array type is
1144 complete, not just its element types.
1145
1146 2005-09-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1147
1148 * decl.c (check_elaborated_type_specifier): Remove redundant check.
1149
1150 2005-09-06 Jakub Jelinek <jakub@redhat.com>
1151
1152 PR c++/23056
1153 * typeck.c (ignore_overflows): New helper function.
1154 (build_static_cast_1): Use it.
1155
1156 2005-09-06 Kazu Hirata <kazu@codesourcery.com>
1157
1158 * cp-tree.h, decl.c, decl2.c, semantics.c: Fix comment typos.
1159 Follow spelling conventions.
1160
1161 2005-09-05 Mark Mitchell <mark@codesourcery.com>
1162
1163 PR c++/23667
1164 * pt.c (tsubst_decl): Clear DECL_TEMPLATE_INSTANTIATED when
1165 copying a VAR_DECL.
1166
1167 2005-09-05 Mark Mitchell <mark@codesourcery.com>
1168
1169 PR c++/21440
1170 * semantics.c (finish_stmt_expr_expr): Add an explicit
1171 initialization to the last statement in the statement-expression.
1172 * (finish_stmt_expr): Adjust accordingly.
1173
1174 2005-09-03 Mark Mitchell <mark@codesourcery.com>
1175
1176 PR c++/23699
1177 * decl2.c (mark_used): Always instantiate static data members
1178 initialized by constant expressions.
1179 * pt.c (instantiate_decl): Instantiate the initializers for static
1180 data members initialized by constant expressions.
1181
1182 PR c++/21687
1183 * semantics.c (expand_or_defer_fn): Do not call ggc_collect when
1184 finishing processing for a template function in a local class.
1185 Revert:
1186 2005-09-02 Mark Mitchell <mark@codesourcery.com>
1187 * parser.c (cp_parser_class_specifier): Push/pop GC contexts
1188 around functions in local classes.
1189
1190 2005-09-02 Mark Mitchell <mark@codesourcery.com>
1191
1192 PR c++/21687
1193 * parser.c (cp_parser_class_specifier): Push/pop GC contexts
1194 around functions in local classes.
1195
1196 2005-08-31 Andrew Pinski <pinskia@physics.uc.edu>
1197
1198 PR obj-c++/23640
1199 * decl2.c (cp_finish_file): If this is obj-c++ and we need a static
1200 init, call generate_ctor_or_dtor_function.
1201
1202 2005-08-31 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1203
1204 PR c++/13377
1205 * parser.c (cp_parser_lookup_name): Pass LOOKUP_COMPLAIN to
1206 lookup_name_real on final parse.
1207
1208 2005-08-31 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1209
1210 PR c++/23639
1211 * semantics.c (qualified_name_lookup_error): Do not complain again
1212 on invalid scope.
1213
1214 2005-08-30 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1215
1216 PR c++/23586
1217 * parser.c (cp_parser_namespace_name): Move diagnostic for
1218 invalid namespace-name to here from ...
1219 * name-lookup.c (do_namespace_alias): ... here and ...
1220 (do_using_directive): ... here. Remove dead code.
1221
1222 2005-08-28 Mark Mitchell <mark@codesourcery.com>
1223
1224 PR c++/23099
1225 * cp-tree.h (saved_scope): Add skip_evaluation.
1226 * decl.c (start_decl): Use DECL_INITIALIZED_IN_CLASS_P, not
1227 DECL_INITIAL, to determine whether or not a static data member was
1228 initialized in the class-specifier.
1229 (cp_finish_decl): Add comment.
1230 * init.c (integral_constant_value): Subtitute into the
1231 initializers for static data members in templates.
1232 * name-lookup.c (push_to_top_level): Save skip_evaluation.
1233 (pop_from_top_level): Restore it.
1234 * pt.c (instantiate_class_template): Do not substitute into the
1235 intializers of static data members when instantiating a class.
1236 (regenerate_decl_from_template): Simplify.
1237 (instantiate_decl): Tidy. Substitute into the initializer for a
1238 static data member even when the definition of the data member is
1239 not available.
1240
1241 2005-08-26 Mark Mitchell <mark@codesourcery.com>
1242
1243 PR c++/19004
1244 * pt.c (uses_template_parms): Handle IDENTIFIER_NODE.
1245 (type_dependent_expression_p): Allow BASELINKs whose associated
1246 functions are simply a FUNCTION_DECL.
1247
1248 PR c++/23491
1249 * cp-tree.h (build_vec_init): Adjust prototype.
1250 * init.c (perform_member_init): Adjust call to build_vec_init.
1251 (build_aggr_init): Likewise.
1252 (build_new_1): Do not call build_default_init for array types.
1253 (build_vec_init): Add explicit_default_init_p parameter. Perform
1254 default initialization of vector elements when set.
1255 * typeck.c (build_modify_expr): Adjust call to build_vec_init.
1256
1257 2005-08-25 Nathan Sidwell <nathan@codesourcery.com>
1258
1259 PR c++/20817
1260 * typeck.c (build_x_unary_op): Make sure OFFSET_REF is not for a
1261 ->*.
1262
1263 2005-08-24 Nathan Sidwell <nathan@codesourcery.com>
1264
1265 PR c++/22454
1266 * parser.c (cp_lexer_peek_nth_token): Relax assert.
1267
1268 2005-08-23 Nathan Sidwell <nathan@codesourcery.com>
1269
1270 PR c++/23044
1271 * pt.c (tsubst_qualified_id): A SCOPE_REF can still remain.
1272
1273 2005-08-22 James E Wilson <wilson@specifix.com>
1274
1275 PR tree-optimization/23426
1276 * decl.c (grokdeclarator): Use TYPE_SIZE_UNIT not TYPE_SIZE for
1277 array size check.
1278
1279 2005-08-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1280
1281 PR c++/22233
1282 * pt.c (push_template_decl_real): Return error_mark_node if the
1283 number of template parameters does not match previous definition.
1284
1285 2005-08-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1286
1287 PR c++/23089
1288 * decl.c (require_complete_types_for_parms): Mark incomplete types
1289 as invalid.
1290
1291 2005-08-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1292
1293 * parser.c (cp_parser_nth_token_starts_template_argument_list_p):
1294 Fix typo in leading comment.
1295
1296 2005-08-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1297
1298 * name-lookup.c, ptree.c: Delete HOST_PTR_PRINTF.
1299
1300 2005-08-15 Fariborz Jahanian <fjahanian@apple.com>
1301
1302 * cp-tree.h (can_convert_arg, fn_type_unification): New argument.
1303 * call.c (add_template_candidate_real): Pass down 'flags' to
1304 fn_type_unification.
1305 (can_convert_arg): New 'flags' argument. Pass it to call to
1306 implicit_conversion instead of LOOKUP_NORMAL.
1307 (can_convert): Add LOOKUP_NORMAL to call to can_convert_arg.
1308 * class.c (resolve_address_of_overloaded_function): Ditto.
1309 (resolve_address_of_overloaded_function): Ditto.
1310 * decl.c (reshape_init, check_default_argument): Ditto.
1311 * typeck.c (build_ptrmemfunc): Ditto.
1312 * pt.c (type_unification_real): Add 'flags' argument.
1313 (fn_type_unification): Pass 'flags' to type_unification_real.
1314 (type_unification_real): Pass new 'flags' argument to call to
1315 can_convert_arg.
1316
1317 2005-08-12 Giovanni Bajo <giovannibajo@libero.it>
1318 Nathan Sidwell <nathan@codesourcery.com>
1319
1320 PR c++/21799
1321 PR c++/8271
1322 * pt.c (unify) <METHOD_TYPE>: Check this-pointer cv-qualifiers
1323 explicitly.
1324
1325 2005-08-12 Nathan Sidwell <nathan@codesourcery.com>
1326
1327 PR c++/21799
1328 Revert my 2005-07-08 patch
1329 * pt.c (type_unification_real): Remove is_method_argument and
1330 assoicated checks.
1331 (fn_type_unification, unify): Adjust type_unification_real calls.
1332
1333 2005-08-11 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1334
1335 PR c++/23266
1336 * decl2.c (grokfield): Check that method is not static before
1337 marking it as pure.
1338
1339 2005-08-11 Nathan Sidwell <nathan@codesourcery.com>
1340
1341 PR c++/23219
1342 * name-lookup.c (pushtag): Process the template type before
1343 altering the identifier lookup fields. Remove unreachable code
1344 creating an empty stub decl.
1345
1346 2005-08-10 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1347
1348 PR c++/20646
1349 * decl.c (grokdeclarator): Reset storage_class after error.
1350
1351 2005-08-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1352
1353 PR c++/22508
1354 * init.c (build_new_1): Check for empty candidate list.
1355
1356 2005-08-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1357
1358 PR c++/23191
1359 * pt.c (tsubst) <case METHOD_TYPE>: Check for error_mark_node
1360 before calling build_exception_variant.
1361
1362 2005-08-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1363
1364 PR c++/19498
1365 * pt.c (tsubst_decl) <case TEMPLATE_DECL>: Return ERROR_MARK_NODE
1366 if substitution of template args did not succeed.
1367
1368 2005-08-06 Michael Matz <matz@suse.de>
1369
1370 * method.c (use_thunk): Call init_insn_lengths.
1371
1372 2005-08-05 James A. Morrison <phython@gcc.gnu.org>
1373
1374 PR c++/22514
1375 * name-lookup.c (cp_emit_debug_info_for_using): Do nothing if
1376 sorrycount or errorcount are nonzero.
1377
1378 2005-08-05 Mark Mitchell <mark@codesourcery.com>
1379
1380 * name-lookup.c (pushtag): Remove accidental commit from:
1381 2004-12-21 Mark Mitchell <mark@codesourcery.com>
1382 PR c++/19063
1383 * decl.c (grokdeclarator): Return error_mark_node, not
1384 void_type_node, to indicate errors.
1385 * parser.c (cp_parser_template_parameter_list): Robustify.
1386 (cp_parser_template_parameter): Likewise.
1387
1388 2005-08-01 Kazu Hirata <kazu@codesourcery.com>
1389
1390 * class.c, decl.c, name-lookup.c, pt.c, typeck.c, typeck2.c:
1391 Fix comment typos.
1392
1393 2005-07-29 Kazu Hirata <kazu@codesourcery.com>
1394
1395 * method.c: Fix a comment typo.
1396
1397 2005-07-28 Mark Mitchell <mark@codesourcery.com>
1398
1399 PR c++/22545
1400 * call.c (add_builtin_candidate): Adjust for changes in
1401 representation of pointer-to-member types.
1402
1403 2005-07-28 Mike Stump <mrs@apple.com>
1404
1405 * pt.c (check_explicit_specialization): Add visibility logic.
1406 (lookup_template_class): Likewise.
1407 (instantiate_class_template): Likewise.
1408
1409 2005-07-27 Devang Patel <dpatel@apple.com>
1410
1411 * name-lookup.c (pushtag): Do no set DECL_IGNORED_P bit.
1412
1413 2005-07-25 Ian Lance Taylor <ian@airs.com>
1414
1415 * ptree.c (cxx_print_identifier): Print a leading space if the
1416 indent level is 0.
1417
1418 2005-07-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1419
1420 * call.c (convert_for_arg_passing): Check function pointers when
1421 -Wmissing-format-attribute is activated.
1422 * typeck.c (convert_for_assignment): Likewise.
1423
1424 2005-07-22 Manfred Hollstein <mh@suse.com>
1425
1426 * parser.c (cp_parser_declaration): Fix unitialised warnings.
1427
1428 2005-07-21 Andrew Pinski <pinskia@physics.uc.edu>
1429
1430 * class.c (build_base_path): Fix typo.
1431
1432 2005-07-21 Andrew Pinski <pinskia@physics.uc.edu>
1433
1434 PR C++/22358
1435 * class.c (build_base_path): Convert BINFO_OFFSET to the correct type.
1436
1437 2005-07-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1438
1439 * call.c: Fix comment typo(s).
1440 * cxx-pretty-print.h: Likewise.
1441 * name-lookup.c: Likewise.
1442 * parser.c: Likewise.
1443
1444 2005-07-20 Douglas Gregor <doug.gregor@gmail.com>
1445
1446 PR c++/2922
1447 * semantics.c (perform_koenig_lookup): For dependent calls, just
1448 return the set of functions we've found so far. Later, it will be
1449 augmented by those found through argument-dependent lookup.
1450 * name-lookup.c (lookup_arg_dependent): Implement DR 164 by removing
1451 the optimization that skips namespaces where the functions were
1452 originally found.
1453
1454 2005-07-20 Giovanni Bajo <giovannibajo@libero.it>
1455
1456 Make CONSTRUCTOR use VEC to store initializers.
1457 * call.c (convert_default_arg): Update call to digest_init.
1458 * class.c (dump_class_hierarchy, dump_array): Update to cope with
1459 VEC in CONSTRUCTOR_ELTS.
1460 * cp-tree.h (EMPTY_CONSTRUCTOR_P): Likewise.
1461 (finish_compound_literal, digest_init): Update declaration.
1462 * decl.c (struct reshape_iter): New data type.
1463 (reshape_init_array): Rename to...
1464 (reshape_init_array_1): Update to cope with VEC in CONSTRUCTOR_ELTS.
1465 (reshape_init): Rewrite from scratch. Split parts into...
1466 (reshape_init_array, reshape_init_vector, reshape_init_class,
1467 reshape_init_r): New functions.
1468 (check_initializer): Update call to reshape_init. Remove obsolete
1469 code.
1470 (initialize_artificial_var, cp_complete_array_type): Update to cope
1471 with VEC in CONSTRUCTOR_ELTS.
1472 * decl2.c (grokfield): Update calls to digest_init.
1473 (mark_vtable_entries): Update to cope with VEC in CONSTRUCTOR_ELTS.
1474 * error.c (dump_expr_init_vec): New function.
1475 (dump_expr): Use dump_expr_init_vec.
1476 * init.c (build_zero_init, build_vec_init): Update to cope with VEC
1477 in CONSTRUCTOR_ELTS.
1478 (expand_default_init): Update call to digest_init.
1479 * parser.c (cp_parser_postfix_expression): Use a VEC for the
1480 initializers.
1481 (cp_parser_initializer_list): Build a VEC of initializers.
1482 * pt.c (tsubst_copy, tsubst_copy_and_build): Update to cope with VEC
1483 in CONSTRUCTOR_ELTS.
1484 * rtti.c (tinfo_base_init, generic_initializer, ptr_initializer,
1485 ptm_initializer, class_initializer, get_pseudo_ti_init): Use
1486 build_constructor_from_list instead of build_constructor.
1487 * semantics.c (finish_compound_literal): Update call to digest_init.
1488 * tree.c (stabilize_init): Update to cope with VEC in
1489 CONSTRUCTOR_ELTS.
1490 * typeck.c (build_ptrmemfunc1): Likewise.
1491 * typeck2.c: (cxx_incomplete_type_error, split_nonconstant_init_1):
1492 Likewise.
1493 (store_init_value): Use build_constructor_from_list and update call
1494 to digest_init.
1495 (digest_init): Rewrite.
1496 (process_init_constructor): Rewrite from scratch. Split into...
1497 (process_init_constructor_array, picflag_from_initializer,
1498 process_init_constructor_record, process_init_constructor_union):
1499 New functions.
1500 (PICFLAG_ERRONEOUS, PICFLAG_NOT_ALL_CONSTANT, PICFLAG_NOT_ALL_SIMPLE):
1501 New macros.
1502 (build_functional_cast): Use build_constructor_from_list instead of
1503 build_constructor.
1504
1505 2005-07-18 Mark Mitchell <mark@codesourcery.com>
1506
1507 PR c++/22263
1508 * cp-tree.h (instantiate_decl): Change prototype.
1509 * decl2.c (mark_used): Adjust accordingly.
1510 * pt.c (do_decl_instantiation): Likewise.
1511 (instantiate_class_member): Likewise.
1512 (instantiate_decl): Rename undefined_ok as expl_inst_class_mem_p.
1513 Clear DECL_INTERFACE_KNOWN for an explicitly instantiated template
1514 that has no definition available.
1515 (instantiate_pending_templates): Adjust call to instantiate_decl.
1516
1517 2005-07-17 Mark Mitchell <mark@codesourcery.com>
1518
1519 PR c++/22139
1520 * cp-tree.h (DECL_TEMPLATE_INFO): Improve documentation.
1521 * decl.c (duplicate_decls): Re-register template specializations
1522 for functions that have DECL_TEMLPLATE_INFO, even if they do not
1523 have DECL_TEMPLATE_INSTANTIATION set.
1524
1525 2005-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1526
1527 * call.c (diagnostic_fn_t): New.
1528 (build_temp, convert_like_real): Use diagnostic_fn_t.
1529
1530 2005-07-15 Mark Mitchell <mark@codesourcery.com>
1531
1532 PR c++/22204
1533 * repo.c (repo_emit_p): Robustify.
1534
1535 2005-07-14 Daniel Berlin <dberlin@dberlin.org>
1536
1537 Fix PR c++/22452
1538 * tree.c (decl_linkage): Don't check DECL_COMDAT on CONST_DECL.
1539
1540 2005-07-15 Mark Mitchell <mark@codesourcery.com>
1541
1542 PR c++/22132
1543 * call.c (implicit_conversion): Add c_cast_p parameter.
1544 (standard_conversion): Likewise. Allow conversions between
1545 differently-qualified pointer types when performing a C-style
1546 cast.
1547 (add_function_candidate): Adjust callee.
1548 (build_builtin_candidate): Likewise.
1549 (build_user_type_conversion_1): Likewise.
1550 (conditional_conversion): Likewise.
1551 (can_convert_arg): Likewise.
1552 (can_convert_arg_bad): Likewise.
1553 (perform_implicit_conversion): Likewise.
1554 * cp-tree.h (comp_ptr_ttypes_const): Declare.
1555 * typeck.c (comp_ptr_ttypes_const): Give it external linkage.
1556 Return bool.
1557
1558 2005-07-12 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1559 Nathan Sidwell <nathan@codesourcery.com>
1560
1561 PR c++/20172
1562 * pt.c (tsubst_template_parms): Check for invalid non-type
1563 parameters.
1564
1565 2005-07-09 Andrew Pinski <pinskia@physics.uc.edu>
1566
1567 * cp-lang.c (shadowed_var_for_decl, decl_shadowed_for_var_lookup,
1568 decl_shadowed_for_var_insert): Move over to cp-objcp-common.c.
1569 (cp_init_ts): Call init_shadowed_var_for_decl.
1570 Remove include of gt-cp-cp-lang.h.
1571 * cp-objcp-common.c (shadowed_var_for_decl,
1572 decl_shadowed_for_var_lookup, decl_shadowed_for_var_insert): Moved from
1573 cp-lang.c.
1574 (init_shadowed_var_for_decl): New function to initialize
1575 shadowed_var_for_decl.
1576 Include gt-cp-cp-objcp-common.h.
1577 * Make-lang.in (gt-cp-lang.h): Remove.
1578 (gt-cp-cp-objcp-common.h): Add.
1579 (cp/cp-lang.o): Remove dependancy on gt-cp-lang.h.
1580 (cp/cp-objcp-common.o): Add dependancy on gt-cp-cp-objcp-common.h.
1581 * config-lang.in (gtfiles): Remove cp-lang.c and Add cp-objcp-common.c.
1582 * cp-tree (init_shadowed_var_for_decl): Add prototype.
1583
1584 2005-07-08 Daniel Berlin <dberlin@dberlin.org>
1585
1586 * Make-lang.in: Add gt-cp-lang.h.
1587 (cp-lang.o): Ditto.
1588 * class.c (create_vtable_ptr): Stop setting DECL_ASSEMBLER_NAME on
1589 the field.
1590 * config-lang.in: Add cp-lang.c to gtfiles.
1591 * cp-lang.c: Include hashtab.h.
1592 (cp_init_ts): New function.
1593 (LANG_HOOK_INIT_TS): Use macro.
1594 (decl_shadowed_for_var_lookup): New function.
1595 (decl_shadowed_for_var_insert): Ditto.
1596 * cp-tree.h (THUNK_FUNCTION_CHECK): Use decl_common.
1597 (NON_THUNK_FUNCTION_CHECK): Ditto.
1598 (DECL_NAMESPACE_ASSOCIATIONS): Use decl_non_common.
1599 (DECL_INIT_PRIORITY): Ditto.
1600 (DECL_HAS_SHADOWED_FOR_VAR_P): Ditto.
1601 (DECL_SHADOWED_FOR_VAR): Use hashtable.
1602 (SET_DECL_SHADOWED_FOR_VAR): Ditto.
1603 * decl.c (duplicate_decls): Update for new/updated structures.
1604 (poplevel): Use SET_DECL_SHADOWED_FOR_VAR.
1605 * decl2.c (start_static_initialization_or_destruction): Deal with
1606 priority.
1607 * pt.c (tsubst_decl): Check TS_DECL_WRTL before doing
1608 SET_DECL_RTL.
1609 * tree.c (handle_init_priority_attribute): Handle priority.
1610
1611 2005-07-08 Nathan Sidwell <nathan@codesourcery.com>
1612
1613 PR c++/21799
1614 * pt.c (type_unification_real): Add is_method argument. Use it
1615 for this pointer unification.
1616 (fn_type_unification): Adjust type_unification_real call.
1617 (unify): Likewise.
1618
1619 2005-07-07 Nathan Sidwell <nathan@codesourcery.com>
1620
1621 * pt.c (type_unification_real): Remove allow_incomplete argument.
1622 Remove unreachable code.
1623 (fn_type_unification): Adjust call to type_unification_real.
1624 (unify): Likewise.
1625
1626 2005-07-05 Paolo Bonzini <bonzini@gnu.org>
1627
1628 * Makefile.in (class.o, decl2.o): Adjust dependencies.
1629 * class.c: Include tree-dump.h.
1630 * decl2.c: Include tree-dump.h.
1631
1632 2005-07-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
1633
1634 * dump.c: Use dump_string_field.
1635
1636 2005-07-03 Joseph S. Myers <joseph@codesourcery.com>
1637
1638 * cp-tree.h (GCC_DIAG_STYLE): #undef before defining. Change
1639 minimum GCC version for format checking to 4.1.
1640
1641 2005-07-02 Kazu Hirata <kazu@codesourcery.com>
1642
1643 * Make-lang.in (cc1plus-checksum.c): Use
1644 build/genchecksum$(build_exeext), not build/genchecksum$(exeext).
1645
1646 2005-07-02 Joseph S. Myers <joseph@codesourcery.com>
1647
1648 * name-lookup.c, parser.c: Use %q, %< and %> to quote in
1649 diagnostics.
1650
1651 2005-07-02 Zack Weinberg <zack@codesourcery.com>
1652 Joseph S. Myers <joseph@codesourcery.com>
1653
1654 * error.c (location_of): Add comment.
1655 (locate_error, cp_error_at, cp_warning_at, cp_pedwarn_at): Remove.
1656 * cp-tree.h (cp_error_at, cp_warning_at, cp_pedwarn_at): Remove.
1657 * call.c, class.c, decl.c, decl2.c, friend.c, init.c,
1658 name-lookup.c, parser.c, pt.c, search.c, semantics.c, typeck.c,
1659 typeck2.c: Use '+' flag instead of %J, cp_error_at, cp_warning_at
1660 or cp_pedwarn_at. Mark up some diagnostic strings with N_.
1661
1662 2005-06-30 Daniel Berlin <dberlin@dberlin.org>
1663
1664 * decl.c (require_complete_types_for_parms): Call relayout_decl
1665 instead of layout_decl.
1666
1667 2005-06-30 Zack Weinberg <zack@codesourcery.com>
1668 Jakub Jelinek <jakub@redhat.com>
1669
1670 * cp-lang.c: No need to include cxx-pretty-print.h.
1671 * error.c (cp_printer): Update signature. No need to process
1672 flags.
1673 (print_instantiation_partial_context): Output last newline
1674 with pp_base_newline.
1675 * Make-lang.in: Update dependencies.
1676
1677 2005-06-30 Steven Bosscher <stevenb@suse.de>
1678
1679 * decl.c (start_decl): Replace DECL_THREAD_LOCAL with
1680 DECL_THREAD_LOCAL_P.
1681 (cp_finish_decl): Likewise.
1682 (grokvardecl): Set the default DECL_TLS_MODEL here.
1683
1684 2005-06-28 Joseph S. Myers <joseph@codesourcery.com>
1685
1686 * cvt.c (ocp_convert): Use invalid_conversion hook.
1687 * typeck.c (build_binary_op): Use invalid_binary_op hook.
1688 (build_unary_op): Use invalid_unary_op hook.
1689
1690 2005-06-28 Paul Brook <paul@codesourcery.com>
1691
1692 * Make-lang.in (cp/except.o): Depend on $(TARGET_H)
1693 * except.c: Include target.h.
1694 (init_exception_processing): Initialize unwind_resume_libfunc.
1695 * doc/tm.texi: Document TARGET_ASM_TTYPE
1696
1697 2005-06-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1698
1699 * call.c (build_over_call): Pass in named argument list to
1700 `check_function_arguments'.
1701 * typeck.c (build_function_call): Likewise.
1702
1703 2005-06-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1704
1705 * cp-tree.h (lang_check_failed): Add noreturn attribute.
1706
1707 2005-06-25 Kelley Cook <kcook@gcc.gnu.org>
1708
1709 * all files: Update FSF address in copyright headers.
1710
1711 2005-06-23 Jason Merrill <jason@redhat.com>
1712
1713 PR c++/19317
1714 * semantics.c (simplify_aggr_init_expr): Use
1715 CALL_EXPR_RETURN_SLOT_OPT, not CALL_EXPR_HAS_RETURN_SLOT_ADDR.
1716
1717 2005-06-23 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1718
1719 * pt.c (register_specialization): Remove superfluous assertion.
1720
1721 2005-06-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1722
1723 * call.c (convert_like_real): Add format attribute.
1724 * typeck.c (check_for_casting_away_constness,
1725 build_static_cast_1): Likewise.
1726 * typeck2.c (readonly_error, cxx_incomplete_type_diagnostic):
1727 Likewise.
1728
1729 2005-06-17 Geoffrey Keating <geoffk@apple.com>
1730
1731 PR c++/17413
1732 * pt.c (type_unification_real): Apply template type deduction even
1733 to procedure parameters that are not dependent on a template
1734 parameter.
1735
1736 2005-06-16 Nathan Sidwell <nathan@codesourcery.com>
1737
1738 * rtti.c (get_tinfo_decl): Avoid caching tinfo_descs when it might
1739 change.
1740 (create_pseudo_type_info): First parameter is an int.
1741
1742 2005-06-15 Nathan Sidwell <nathan@codesourcery.com>
1743
1744 PR c++/20678
1745 * error.c (dump_expr) <COMPONENT_REF case>: Check DECL_NAME is not
1746 null.
1747
1748 * Make-lang.in: Reformat some long lines.
1749 (gt-cp-rtti.h): New target.
1750 (cp/rtti.o): Add dependency.
1751 * config-lang.in (gtfiles): Add cp/rtti.c.
1752 * cp-tree.h (CPTI_TI_DESC_TYPE, CPTI_BLTN_DESC_TYPE,
1753 CPTI_PTR_DESC_TYPE, CPTI_ARY_DESC_TYPE, CPTI_FUNC_DESC_TYPE,
1754 CPTI_ENUM_DESC_TYPE, CPTI_CLASS_DESC_TYPE,
1755 CPTI_SI_CLASS_DESC_TYPE, CPTI_VMI_CLASS_DESC_TYPE,
1756 CPTI_PTM_DESC_TYPE, CPTI_BASE_DESC_TYPE): Remove.
1757 (ti_desc_type_node, bltn_desc_type_node, ptr_desc_type_node,
1758 ary_desc_type_node, func_desc_type_node, enum_desc_type_node,
1759 class_desc_type_node, si_class_desc_type_node,
1760 vmi_class_desc_type_node, ptm_desc_type_node,
1761 base_desc_type_node): Remove.
1762 * decl.c: Adjust documentation of global trees.
1763 * rtti.c (TINFO_PSEUDO_TYPE, TINFO_VTABLE_DECL,
1764 TINFO_REAL_NAME): Remove.
1765 (struct tinfo_s): New.
1766 (enum tinfo_kind): New.
1767 (tinfo_descs): New.
1768 (get_tinfo_decl): Adjust use of tinfo descriptor.
1769 (tinfo_base_init, generic_initializer, ptr_initializer,
1770 ptm_initializer, class_initializer): Likewise.
1771 (get_pseudo_ti_init): Take descriptor index. Adjust.
1772 (create_pseudo_type_info): Likewise.
1773 (get_pseudo_ti_desc): Return descriptor index. Adjust.
1774 (create_tinfo_types): Adjust use of create_pseudo_type_info.
1775 (emit_tinfo_decl): Adjust use of tinfo descriptor.
1776
1777 2005-06-14 Roger Sayle <roger@eyesopen.com>
1778
1779 * decl.c (grokdeclarator): Only check TREE_OVERFLOW on INTEGER_CST.
1780
1781 2005-06-13 Geoffrey Keating <geoffk@apple.com>
1782
1783 * Make-lang.in (c++.install-man): Doesn't really depend on installdirs.
1784 (rule for installing g++.1 manpage): Does depend on installdirs.
1785
1786 2005-06-13 Nathan Sidwell <nathan@codesourcery.com>
1787
1788 PR c++/20789
1789 * decl.c (cp_finish_decl): Clear runtime runtime initialization if
1790 in-class decl's initializer is bad.
1791
1792 PR c++/21929
1793 * parser.c (struct cp_parser): Document that scope could be
1794 error_mark.
1795 (cp_parser_diagnose_invalid_type_name): Cope with error_mark for
1796 scope.
1797 (cp_parser_nested_name_specifier): Return NULL_TREE on error.
1798 (cp_parser_postfix_expression): Deal with null or error_mark
1799 scope.
1800 (cp_parser_elaborated_type_specifier): Adjust
1801 cp_parser_nested_name_specifier call.
1802
1803 * parser (cp_parser_skip_to_end_of_block_or_statement): Cleanup.
1804
1805 2005-06-12 Roger Sayle <roger@eyesopen.com>
1806
1807 PR c++/21930
1808 * error.c (dump_expr): UNARY_PLUS_EXPR need not handle void types.
1809 Treat CONVERT_EXPR identically to NOP_EXPR.
1810
1811 2005-06-10 Aldy Hernandez <aldyh@redhat.com>
1812
1813 PR c++/10611
1814 * cvt.c (build_expr_type_conversion): Same.
1815 * typeck.c (build_binary_op): Handle vectors.
1816 (common_type): Same.
1817 (type_after_usual_arithmetic_conversions): Same.
1818
1819 2005-06-08 Nathan Sidwell <nathan@codesourcery.com>
1820
1821 PR c++/19497
1822 * cp-tree.def (USING_DECL): Update documentation.
1823 * cp-tree.h (DECL_DEPENDENT_P): New.
1824 (USING_DECL_DECLS, USING_DECL_SCOPE): New.
1825 * class.c (handle_using_decl): Move most of the processing to ...
1826 * name-lookup.c (do_class_using_decl): ... here. Make stricter.
1827 (push_using_decl): Use USING_DECL_SCOPE.
1828 (cp_emit_debug_info_for_using): Make extern.
1829 * cxx-pretty-print.c (pp_cxx_statement) <USING_DECL case>: Adjust.
1830 * name-lookup.h (cp_emit_debug_info_for_using): Declare.
1831 * pt.c (tsubst_decl) <USING_DECL case>: Use do_class_using_decl
1832 when tsubsting.
1833 (tsubst_expr): Use USING_DECL_SCOPE.
1834 * search.c (lookup_field_1): Use DECL_DEPENDENT_P.
1835 * semantics.c (finish_member_declaration): Likewise.
1836
1837 2005-06-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1838
1839 PR c++/19894
1840 * pt.c (tsubst): Reject pointer-to-member of type void.
1841
1842 PR c++/20563
1843 * parser.c (cp_parser_label_declaration): Deal with invalid/missing
1844 identifiers.
1845
1846 2005-06-07 Nathan Sidwell <nathan@codesourcery.com>
1847
1848 * cp-tree.def (DEFAULT_ARG): Adjust documentation.
1849 * cp-tree.h (DEFARG_INSTANTIATIONS): New.
1850 (struct tree_default_arg): Add instantiations member.
1851 * parser.c (cp_parser_late_parsing_default_args): Adjust to use a
1852 VEC.
1853 * pt.c (tsubst_arg_types): Likewise.
1854
1855 * parser.c (cp_parser_late_parsing_default_args): Fix overeager
1856 assert in previous patch.
1857
1858 2005-06-06 Jakub Jelinek <jakub@redhat.com>
1859
1860 * error.c (locate_error): Use gmsgid instead of msgid for argument
1861 name.
1862 (cp_error_at, cp_warning_at, cp_pedwarn_at): Likewise.
1863
1864 2005-06-06 Nathan Sidwell <nathan@codesourcery.com>
1865
1866 PR 21903
1867 * cp-tree.def (DEFAULT_ARG): Document TREE_CHAIN use.
1868 * parser.c (cp_parser_late_parsing_default_args): Propagate parsed
1869 argument to any early instantiations.
1870 * pt.c (tsubst_arg_types): Chain early instantiation of default arg.
1871
1872 PR c++/20637
1873 * cp-tree.h (add_method): Add using_decl parameter.
1874 * class.c (add_method): Add using_decl parameter. Adjust error
1875 messages.
1876 (handle_using_decl): Pass the using decl to add_method.
1877 (clone_function_decl): Adjust add_member calls.
1878 * decl2.c (check_classfn): Likewise.
1879 * method.c (lazily_declare_fn): Likewise.
1880 * semantics.c (finish_member_declaration): Likewise.
1881
1882 * method.c (synthesize_method): Use inform, not warning.
1883
1884 2005-06-06 Hans-Peter Nilsson <hp@axis.se>
1885
1886 * config-lang.in (target_libs): Remove target-gperf.
1887
1888 2005-06-05 Mark Mitchell <mark@codesourcery.com>
1889
1890 PR c++/21619
1891 * cp-tree.h (DECL_IS_BUILTIN_CONSTANT_P): New macro.
1892 * parser.c (cp_parser_postfix_expression): Allow non-constant
1893 expressions as arguments to __builtin_constant_p.
1894 * tree.c (builtin_valid_in_constant_expr_p): Use
1895 DECL_IS_BUILTIN_CONSTANT_P.
1896
1897 2005-06-03 Mark Mitchell <mark@codesourcery.com>
1898
1899 PR c++/21853
1900 * typeck.c (casts_away_constness_r): Do not drop cv-qualifiers on
1901 the pointed-to type for a pointer-to-member.
1902
1903 PR c++/21336
1904 * cp-tree.h (grok_op_properties): Remove friendp parameter.
1905 * decl.c (grokfndecl): Adjust call.
1906 (grok_op_properties): Determine the class of which the function is
1907 a member by looking at its DECL_CONTEXT, not current_class_type.
1908 * pt.c (tsubst_decl): Adjust call to grok_op_properties.
1909
1910 2005-06-02 Nathan Sidwell <nathan@codesourcery.com>
1911
1912 * method.c (synthesize_method): Add addtional arg to warning call.
1913
1914 PR c++/21280
1915 * Make-lang.in (method.o): Add diagnostic.h
1916 * decl.c (start_preparsed_function): Use decl's location for file
1917 info.
1918 * decl2.c (cp_finish_file): Set input_location before synthesizing
1919 a function.
1920 (mark_used): When deferring a synthesized function, save current
1921 location. Do not set function's location when actually
1922 synthesizing it.
1923 * method.c: #include diagnostic.h.
1924 (synthesize_method): Set the functions source location. Show
1925 needed location if errors are emitted.
1926
1927 * decl.c (start_decl): Simplify specialization handling. Remove
1928 unneeded CLASSTYPE_TEMPLATE_INSTANTIATION check.
1929 * mangle.c (discriminator_for_local_entity): Use VEC_index.
1930
1931 PR c++/20350
1932 * decl.c (duplicate_decls): Copy all of DECL_USE_TEMPLATE.
1933
1934 PR c++/21151
1935 * name-lookup.c (pushtag): Push local class even in a template.
1936
1937 2005-05-31 Nathan Sidwell <nathan@codesourcery.com>
1938
1939 PR c++/21165
1940 * init.c (integral_constant_value): Check the type of the
1941 initializer, not the decl.
1942
1943 2005-05-30 Mark Mitchell <mark@codesourcery.com>
1944
1945 PR c++/21784
1946 * name-lookup.c (do_nonmember_using_decl): Ignore builtin
1947 functions, even when the used name is not a function.
1948
1949 2005-05-30 Kazu Hirata <kazu@cs.umass.edu>
1950
1951 * operators.def, optimize.c: Update copyright.
1952
1953 2005-05-28 Mark Mitchell <mark@codesourcery.com>
1954
1955 PR c++/21210
1956 * call.c (standard_conversion): Permit conversions to complex
1957 types if conversion to the corresponding scalar type would be
1958 permitted.
1959
1960 PR c++/21340
1961 * method.c (implicitly_declare_fn): Clear processing_template_decl
1962 when generating implicit declaration.
1963
1964 2005-05-27 Mark Mitchell <mark@codesourcery.com>
1965
1966 PR c++/21614
1967 * typeck.c (get_member_function_from_ptrfunc): Do not attempt
1968 conversions to base classes of incomplete types.
1969
1970 2005-05-27 Ian Lance Taylor <ian@airs.com>
1971
1972 * semantics.c (add_stmt): Add C++ frontend specific version.
1973 * cp-tree.h (STMT_IS_FULL_EXPR_P): Define.
1974 (stmts_are_full_exprs_p): Declare.
1975
1976 2005-05-27 Roger Sayle <roger@eyesopen.com>
1977 Giovanni Bajo <giovannibajo@gcc.gnu.org>
1978
1979 * cp-tree.def (UNARY_PLUS_EXPR): New C++ unary tree code.
1980 * parser.c (cp_parser_unary_expression): Use UNARY_PLUS_EXPR instead
1981 of CONVERT_EXPR.
1982 (cp_parser_unary_expression): Likewise.
1983 * typeck.c (build_unary_op): Likewise.
1984 * call.c (add_builtin_candidate, build_new_op): Likewise.
1985 * error.c (dump_expr): Likewise.
1986 * pt.c (tsubst_copy, tsubst_copy_and_build): Likewise.
1987 * decl.c (ambi_op_p, grok_op_properties): Likewise.
1988 * dump.c (dump_op): Likewise.
1989 * lex.c (init_operators): Likewise.
1990 * operators.def ("+"): Likewise.
1991 * cp-gimplify.c (cp_gimplify_expr): Handle UNARY_PLUS_EXPR like a
1992 conversion, if the result and argument types differ.
1993 * tree.c (fold_if_not_in_template): Fold UNARY_PLUS_EXPR much
1994 like a NOP_EXPR when !processing_template_decl.
1995
1996 * cxx-pretty-print.c (pp_cxx_cast_expression): Prototype.
1997 (pp_cxx_unary_expression): Handle new UNARY_PLUS_EXPR tree code.
1998
1999 2005-05-27 Nathan Sidwell <nathan@codesourcery.com>
2000
2001 PR c++/21455
2002 * typeck.c (get_delta_difference): Cope with incomplete but equal
2003 classes. Reorder if.
2004
2005 PR c++/21681
2006 * parser.c (cp_parser_late_parsing_for_member): Disable access
2007 checking for template functions.
2008
2009 2005-05-26 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2010
2011 PR c++/21768
2012 * pt.c (redeclare_class_template): Change error message according
2013 to coding conventions.
2014
2015 2005-05-26 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2016
2017 * call.c (build_op_delete_call): Fix quoting in error message.
2018
2019 2005-05-25 Richard Henderson <rth@redhat.com>
2020
2021 PR libgcj/21692
2022 * cp-tree.h (make_alias_for): Declare.
2023 * decl2.c (build_java_method_aliases): New.
2024 (cp_finish_file): Call it.
2025 * method.c (make_alias_for): Split out from ...
2026 (make_alias_for_thunk): ... here.
2027
2028 2005-05-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2029
2030 PR c++/21686
2031 * semantics.c (finish_id_expression): Fix quoting in error message.
2032
2033 2005-05-25 DJ Delorie <dj@redhat.com>
2034
2035 * decl.c (duplicate_decls): Move warning control from if() to
2036 warning(OPT_*).
2037 * name-lookup.c (parse_using_directive): Likewise.
2038 * parser.c (cp_parser_elaborated_type_specifier): Likewise.
2039 (cp_parser_init_declarator): Likewise.
2040 * tree.c (handle_com_interface_attribute): Likewise.
2041
2042 2005-05-24 Ziemowit Laski <zlaski@apple.com>
2043
2044 * class.c (layout_class_type): Do not issue C++ ABI warnings
2045 for ObjC structs.
2046 * decl.c (objc_mark_locals_volatile): Streamline by calling
2047 objc_volatilize_decl().
2048 * parser.c (cp_parser_objc_message_expression): Allow simple
2049 type specifiers (instead of merely type names) as message
2050 receivers.
2051 * pt.c (template_args_equal): Do not call objc_comptypes().
2052 * typeck.c (composite_pointer_type): If both pointers are
2053 ObjC-esque, arbitrarily choose the first; do not call
2054 objc_comptypes().
2055 (comptypes): Do not call objc_comptypes().
2056 (convert_for_assignment): Call objc_compare_types().
2057 (comp_ptr_ttypes_real): Call objc_type_quals_match() before
2058 concluding that types do not match.
2059
2060 2005-05-24 Andrew Pinski <pinskia@physics.uc.edu>
2061
2062 PR C++/21645
2063 * optimize.c (update_cloned_parm): Copy the TYPE also from the
2064 original one.
2065
2066 2005-05-19 Jakub Jelinek <jakub@redhat.com>
2067
2068 PR c++/21495
2069 * decl.c (grokdeclarator): Fix "storage class specified for"
2070 error reporting.
2071
2072 2005-05-19 Kazu Hirata <kazu@cs.umass.edu>
2073
2074 * parser.c: Fix comment typos.
2075
2076 2005-05-18 Geoffrey Keating <geoffk@apple.com>
2077
2078 * Make-lang.in (cc1plus-dummy): New.
2079 (cc1plus-checksum.c): New.
2080 (cc1plus-checksum.o): New.
2081 (cc1plus): Add cc1plus-checksum.o.
2082
2083 2005-05-17 H.J. Lu <hongjiu.lu@intel.com>
2084
2085 PR C++/19664
2086 * decl2.c (determine_visibility): Don't set visibility to
2087 hidden if it has been set explicitly by user.
2088
2089 2005-05-17 Ziemowit Laski <zlaski@apple.com>
2090 Mike Stump <mrs@apple.com>
2091
2092 Yet more Objective-C++...
2093
2094 * cp-objcp-common.h (cxx_get_alias_set): Move from
2095 here...
2096 (cxx_warn_unused_global_decl): Likewise.
2097 (cp_expr_size): Likewise.
2098 (cp_tree_size): Likewise.
2099 (cp_var_mod_type_p): Likewise.
2100 (cxx_initialize_diagnostics): Likewise.
2101 (cxx_types_compatible_p): Likewise.
2102 * cp-tree.h: to here.
2103 (do_poplevel): Add.
2104 * lex.c (D_OBJC): Add.
2105 (init_reswords): Add.
2106 * Make-lang.in (cp/pt.o): Add cp/cp-objcp-common.h.
2107 * parser.c: Add c-common.h include.
2108 * pt.c: Add c-common.h and cp-objcp-common.h includes.
2109 (template_args_equal): Use objc_comptypes as well.
2110 (tsubst_copy_and_build): Use objcp_tsubst_copy_and_build as well.
2111 * semantics.c (do_poplevel): Remove static.
2112
2113 * decl.c (objc_mark_locals_volatile): Don't change decls that are
2114 already ok.
2115 * decl2.c (generate_ctor_or_dtor_function): Add code to initialize
2116 Objective C++ early enough.
2117 * lex.c (struct resword reswords): Add Objective-C++ support.
2118 * parser.c (cp_lexer_get_preprocessor_token): Add Objective-C++.
2119 (cp_parser_objc_message_receiver): Add.
2120 (cp_parser_objc_message_args): Likewise.
2121 (cp_parser_objc_message_expression): Likewise.
2122 (cp_parser_objc_encode_expression): Likewise.
2123 (cp_parser_objc_defs_expression): Likewise.
2124 (cp_parser_objc_protocol_expression): Likewise.
2125 (cp_parser_objc_selector_expression): Likewise.
2126 (cp_parser_objc_expression): Likewise.
2127 (cp_parser_objc_visibility_spec): Likewise.
2128 (cp_parser_objc_method_type): Likewise.
2129 (cp_parser_objc_protocol_qualifiers): Likewise.
2130 (cp_parser_objc_typename): Likewise.
2131 (cp_parser_objc_selector_p): Likewise.
2132 (cp_parser_objc_selector): Likewise.
2133 (cp_parser_objc_method_keyword_params): Likewise.
2134 (cp_parser_objc_method_tail_params_opt): Likewise.
2135 (cp_parser_objc_interstitial_code): Likewise.
2136 (cp_parser_objc_method_signature): Likewise.
2137 (cp_parser_objc_method_prototype_list): Likewise.
2138 (cp_parser_objc_method_definition_list): Likewise.
2139 (cp_parser_objc_class_ivars): Likewise.
2140 (cp_parser_objc_identifier_list): Likewise.
2141 (cp_parser_objc_alias_declaration): Likewise.
2142 (cp_parser_objc_class_declaration): Likewise.
2143 (cp_parser_objc_protocol_declaration): Likewise.
2144 (cp_parser_objc_protocol_refs_opt): Likewise.
2145 (cp_parser_objc_superclass_or_category): Likewise.
2146 (cp_parser_objc_class_interface): Likewise.
2147 (cp_parser_objc_class_implementation): Likewise.
2148 (cp_parser_objc_end_implementation): Likewise.
2149 (cp_parser_objc_declaration): Likewise.
2150 (cp_parser_objc_try_catch_finally_statement): Likewise.
2151 (cp_parser_objc_synchronized_statement): Likewise.
2152 (cp_parser_objc_throw_statement): Likewise.
2153 (cp_parser_objc_statement): Likewise.
2154 (cp_parser_primary_expression): Add Objective-C++.
2155 (cp_parser_statement): Likewise.
2156 (cp_parser_declaration): Likewise.
2157 (cp_parser_simple_type_specifier): Likewise.
2158 (cp_parser_type_name): Likewise.
2159 (cp_parser_parameter_declaration_list): Likewise.
2160 (cp_parser_member_declaration) Likewise.
2161 * tree.c: Include debug.h.
2162 * typeck.c (composite_pointer_type): Add Objective-C++ support.
2163 (finish_class_member_access_expr): Likewise.
2164 (build_function_call): Allow objc to rewrite FUNCTION_DECLs.
2165 (build_modify_expr): Allow objc to generate write barriers.
2166
2167 * Make-lang.in (cp/tree.o): Add debug.h.
2168 * tree.c (lvalue_p_1, case CONST_DECL): Add.
2169
2170 2005-05-18 Jan Hubicka <jh@suse.cz>
2171
2172 * method.c: Include tree-pass.h
2173 (use_thunk): Lower body before expanding.
2174
2175 2005-05-17 Jakub Jelinek <jakub@redhat.com>
2176
2177 PR c++/21454
2178 * decl.c (maybe_deduce_size_from_array_init): Call
2179 cp_apply_type_quals_to_decl after completing array type.
2180
2181 2005-05-16 Richard Henderson <rth@redhat.com>
2182
2183 * decl.c (build_library_fn_1): Move setting TREE_NOTHROW ...
2184 (build_library_fn): ... here.
2185
2186 2005-05-12 Ian Lance Taylor <ian@airs.com>
2187
2188 * cp-tree.h (cp_stmt_codes): Don't define.
2189 (statement_code_p): Declare.
2190 (STATEMENT_CODE_P): Define.
2191 * lex.c (statement_code_p): Define.
2192 (cxx_init): Use actual codes in stmt_codes initializer, not
2193 cp_stmt_codes macro. Initialize statement_code_p directly, rather
2194 than using INIT_STATEMENT_CODES.
2195
2196 2005-05-09 Mark Mitchell <mark@codesourcery.com>
2197
2198 * typeck.c (build_unary_op): Do not resort to address arithmetic
2199 when taking the address of a COMPONENT_REF.
2200
2201 2005-05-08 Kazu Hirata <kazu@cs.umass.edu>
2202
2203 * class.c (vtbl_init_data_s): Change the type of fns to
2204 VEC(tree,gc)*.
2205 (build_vtbl_initializer, add_vcall_offset, add_vcall_offset):
2206 Use VEC instead of VARRAY.
2207
2208 2005-05-07 Richard Sandiford <rsandifo@redhat.com>
2209
2210 * mangle.c: Remove a reference to the MIPS -mint64 option.
2211
2212 2005-05-07 Kazu Hirata <kazu@cs.umass.edu>
2213
2214 * decl.c (wrapup_globals_for_namespace): Use VEC instead of
2215 VARRAY.
2216 * name-lookup.c (add_decl_to_level, begin_scope): Likewise.
2217 * name-lookup.h (cp_binding_level): Change the type of
2218 static_decls to VEC(tree,gc)*.
2219
2220 * mangle.c (globals): Change the type of substitutions to
2221 VEC(tree,gc)*.
2222 (dump_substitution_candidates, add_substitution,
2223 find_substitution, finish_mangling, init_mangle): Use VEC
2224 instead of VARRAY.
2225
2226 2005-05-06 Kazu Hirata <kazu@cs.umass.edu>
2227
2228 * decl2.c (spew_debug): Remove.
2229
2230 * decl2.c (ssdf_decls, start_static_storage_duration_function,
2231 generate_ctor_or_dtor_function): Use VEC instead of VARRAY.
2232
2233 * decl2.c (pending_statics, note_vague_linkage_var,
2234 cp_finish_file): Use VEC instead of VARRAY.
2235 (pending_statics_used): Remove.
2236
2237 2005-05-05 Kazu Hirata <kazu@cs.umass.edu>
2238
2239 * decl2.c (deferred_fns, note_vague_linkage_fn,
2240 cp_finish_file): Use VEC instead of VARRAY.
2241
2242 2005-05-05 Mark Mitchell <mark@codesourcery.com>
2243
2244 PR c++/21352
2245 * pt.c (build_non_dependent_expr): Use is_overloaded_fn.
2246
2247 2005-05-05 Kazu Hirata <kazu@cs.umass.edu>
2248
2249 * pt.c: Fix a comment typo.
2250
2251 2005-05-04 Kazu Hirata <kazu@cs.umass.edu>
2252
2253 * cp-tree.h (language_function): Change the type of
2254 x_local_names to VEC.
2255 * decl.c (push_local_name): Adjust uses of local_names.
2256
2257 2005-05-03 Kazu Hirata <kazu@cs.umass.edu>
2258
2259 * friend.c, lex.c, mangle.c, repo.c: Update copyright.
2260
2261 2005-05-02 Kazu Hirata <kazu@cs.umass.edu>
2262
2263 * class.c (local_classes, init_class_processing): Use VEC
2264 instead of VARRAY.
2265 * cp-tree.h (local_classes): Likewise.
2266 * mangle.c (discriminator_for_local_entity): Likewise.
2267 * name-lookup.c (pushtag): Likewise.
2268
2269 * class.c (current_lang_depth, push_lang_context,
2270 pop_lang_context): Use VEC instead of VARRAY.
2271 * cp-tree.h (saved_scope): Use VEC for lang_base instead of
2272 VARRAY.
2273 * name-lookup.c (push_to_top_level): Use VEC instead of
2274 VARRAY.
2275
2276 2005-05-02 Paolo Bonzini <bonzini@gnu.org>
2277
2278 * semantics.c (finish_call_expr): Call resolve_overloaded_builtin
2279 for BUILT_IN_MD built-ins.
2280
2281 2005-05-02 Michael Matz <matz@suse.de>
2282
2283 PR c++/19542
2284 * cp-tree.h (cp_tree_index): Remove CPTI_NULL, to be defined in C
2285 common frontend.
2286 (null_node): Remove.
2287 * lex.c (cxx_init): Move null_node initialisation to C common frontend.
2288
2289 2005-04-25 Ian Lance Taylor <ian@airs.com>
2290
2291 * cp-tree.def: Add EXPR_STMT.
2292 * cp-tree.h (cp_stmt_codes): Add EXPR_STMT.
2293 (EXPR_STMT_EXPR): Define.
2294 * cp-gimplify.c: Include "flags.h".
2295 (gimplify_expr_stmt): New static function.
2296 (cp_gimplify_expr): Handle EXPR_STMT.
2297 * cxx-pretty-print.c (pp_cxx_statement): Use pp_cxx_expression
2298 rather than pp_expression.
2299 (pp_cxx_statement): Handle EXPR_STMT.
2300 * dump.c (cp_dump_tree): Handle EXPR_STMT.
2301 * lex.c (cxx_init): Don't use c_common_stmt_codes in stmt_codes
2302 initializer.
2303
2304 2005-04-25 Andrew Pinski <pinskia@physics.uc.edu>
2305
2306 PR C++/21188
2307 * rtti.c (ifnonnull): Cast the zero comparison operand
2308 to the correct type.
2309
2310 2005-04-24 Jakub Jelinek <jakub@redhat.com>
2311
2312 PR middle-end/20991
2313 * class.c: Include cgraph.h.
2314 (cp_fold_obj_type_ref): Set node->local.vtable_method.
2315 * Make-lang.in (cgraph.o): Depend on $(CGRAPH_H).
2316
2317 2005-04-12 Markus F.X.J. Oberhumer <markus@oberhumer.com>
2318
2319 * mangle.c (write_builtin_type): Handle integer types which are
2320 not one of the shared integer type nodes and emit a "vendor
2321 extended builtin type" with an encoding in the form of "u5int96".
2322
2323 2005-04-24 Ian Lance Taylor <ian@airs.com>
2324
2325 * cp-tree.def (USING_STMT): Change class to tcc_statement.
2326 (TRY_BLOCK, EH_SPEC_BLOCK, HANDLER, CLEANUP_STMT): Likewise.
2327 (IF_STMT, FOR_STMT, WHILE_STMT, DO_STMT): Likewise.
2328 (BREAK_STMT, CONTINUE_STMT, SWITCH_STMT): Likewise.
2329
2330 2005-04-23 DJ Delorie <dj@redhat.com>
2331
2332 * call.c, class.c, cvt.c, decl.c, decl2.c, except.c, friend.c,
2333 init.c, lex.c, mangle.c, method.c, name-lookup.c, parser.c,
2334 repo.c, rtti.c, tree.c, typeck.c, typeck2.c: Adjust warning()
2335 callers.
2336
2337 2005-04-22 Per Bothner <per@bothner.com>
2338
2339 * decl.c (make_rtl_for_nonlocal_decl): Don't try get_fileinfo if
2340 input_filename is NULL, as it is for (say) __PRETTY_FUNCTION__.
2341
2342 2005-04-22 Alexandre Oliva <aoliva@redhat.com>
2343
2344 PR c++/21087
2345 * name-lookup.c (push_overloaded_decl): Do not overload with
2346 non-duplicate anticipated built-in.
2347
2348 2005-04-21 Kazu Hirata <kazu@cs.umass.edu>
2349
2350 * cp-tree.h (THROW_NAME, AUTO_VTABLE_NAME, AUTO_TEMP_FORMAT,
2351 VTABLE_BASE, VTABLE_NAME_PREFIX, STATIC_NAME_FORMAT): Remove.
2352
2353 2005-04-21 Nathan Sidwell <nathan@codesourcery.com>
2354
2355 * cp-tree.h: Adjust for new VEC API.
2356 Define VEC(tree_pair_s,gc).
2357 (struct save_scope): Adjust.
2358 (struct lang_type_class): Adjust.
2359 (unemitted_tinfo_decls): Adjust.
2360 * class.c (add_method, resort_type_method_vec,
2361 finish_struct_methods, struct find_final_overrider_data,
2362 dfs_find_final_overrider_pre, find_final_overrider,
2363 get_vcall_index, warn_hidden, walk_subobject_offsets,
2364 check_methods, fixup_inline_methods, end_of_class,
2365 warn_about_ambiguous_bases, finish_struct, build_vtbl_initializer,
2366 add_vcall_offset): Adjust.
2367 * decl.c (xref_basetypes, finish_method): Adjust.
2368 * decl2.c (check_classfn): Adjust.
2369 * init.c (sort_mem_initializers, push_base_cleanups): Adjust.
2370 * method.c (do_build_copy_constructor): Adjust.
2371 * name-lookup.c (new_class_binding, store_binding,
2372 store_bindings, store_class_bindings): Adjust.
2373 * name-lookup.h: Define VEC(cxx_saved_binding,gc),
2374 VEC(cp_class_binding,gc).
2375 (struct cp_binding_level): Adjust.
2376 * parser.c: Define VEC(cp_token_position,heap).
2377 (struct cp_lexer): Adjust.
2378 (cp_lexer_new_main, cp_lexer_new_from_tokens, cp_lexer_destroy,
2379 cp_lexer_save_tokens): Adjust.
2380 * pt.c (retrieve_specialization,
2381 check_explicit_specialization): Adjust.
2382 * rtti.c (unemitted_tinfo_decls): Adjust.
2383 (init_rtti_processing, get_tinfo_decl, get_pseudo_ti_init,
2384 get_pseudo_ti_desc): Adjust.
2385 * search.c (dfs_access_in_type, lookup_conversion_operator,
2386 lookup_fnfields_1, dfs_walk_once, dfs_walk_once_accessible,
2387 dfs_get_pure_virtuals, lookup_conversions_r, binfo_for_vbase): Adjust.
2388 * semantics.c: Define VEC(deferred_access,gc).
2389 (push_deferring_access_checks): Adjust.
2390 * typeck2.c (abstract_virtuals_error): Adjust.
2391
2392 2005-04-20 Ian Lance Taylor <ian@airs.com>
2393
2394 * cp-tree.def: Add STMT_EXPR.
2395 * cp-tree.h (STMT_EXPR_NO_SCOPE): Define.
2396 (STMT_EXPR_STMT): Define.
2397 * cxx-pretty-print.c (pp_cxx_primary_expression): Handle
2398 STMT_EXPR.
2399 (pp_cxx_expression): Likewise.
2400 (pp_cxx_statement): Call pp_cxx_statement, not pp_statement.
2401 * dump.c (cp_dump_tree): Handle STMT_EXPR.
2402
2403 2005-04-18 Kazu Hirata <kazu@cs.umass.edu>
2404
2405 * decl.c (expand_static_init): Call build2 and build3 instead
2406 of build.
2407
2408 * cp-tree.h (VPTR_NAME, VPTR_NAME_P): Remove.
2409
2410 2005-04-17 Ian Lance Taylor <ian@airs.com>
2411
2412 * cp-tree.def: Add SIZEOF_EXPR, ARROW_EXPR and ALIGNOF_EXPR.
2413 * cxx-pretty-print.c (pp_cxx_postfix_expression): Handle
2414 ARROW_EXPR.
2415 (pp_cxx_unary_expression): Handle SIZEOF_EXPR and ALIGNOF_EXPR.
2416 (pp_cxx_expression): Handle ARROW_EXPR, SIZEOF_EXPR, and
2417 ALIGNOF_EXPR.
2418 * typeck.c (cxx_sizeof_or_alignof_type): Update call to
2419 c_sizeof_or_alignof_type for change in parameter type.
2420
2421 2005-04-16 Mark Mitchell <mark@codesourcery.com>
2422
2423 PR c++/21025
2424 * typeck.c (cxx_sizeof_or_alignof_type): Check whether the type to
2425 which sizeof/alignof is dependent, rather than just whether we are
2426 processing_template_decl.
2427
2428 2005-04-17 Kazu Hirata <kazu@cs.umass.edu>
2429
2430 * cp-tree.h (LOOKUP_GLOBAL): Remove.
2431 (LOOKUP_ONLYCONVERTING, DIRECT_BIND, LOOKUP_NO_CONVERSION,
2432 LOOKUP_DESTRUCTOR, LOOKUP_NO_TEMP_BIND, LOOKUP_PREFER_TYPES,
2433 LOOKUP_PREFER_NAMESPACES, LOOKUP_CONSTRUCTOR_CALLABLE): Adjust
2434 their values.
2435
2436 2005-04-15 Richard Henderson <rth@redhat.com>
2437
2438 PR middle-end/14311
2439 * semantics.c (finish_call_expr): Call resolve_overloaded_builtin.
2440
2441 2005-04-15 Kazu Hirata <kazu@cs.umass.edu>
2442
2443 * cp-tree.h (lang_type_class): Remove redefined. Move
2444 java_interface into where redefined was. Increment the width
2445 of dummy.
2446 (TYPE_REDEFINED): Remove.
2447
2448 2005-04-14 Kazu Hirata <kazu@cs.umass.edu>
2449
2450 * cp-tree.h (SET_TMPL_ARG, ENUM_TI_TEMPLATE, ENUM_TI_ARGS,
2451 CLASSTYPE_TEMPLATE_LEVEL): Remove.
2452
2453 2005-04-11 Mark Mitchell <mark@codesourcery.com>
2454
2455 * decl2.c (determine_visibility): Don't use export_class_data.
2456 (import_export_decl): Honor TARGET_CXX_CLASS_DATA_ALWAYS_WEAK and
2457 TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY.
2458
2459 2005-04-09 Kazu Hirata <kazu@cs.umass.edu>
2460
2461 * cp-tree.h (cxx_alignof): Remove.
2462
2463 * cp-tree.h (DECL_ARRAY_DELETE_OPERATOR_P): Remove.
2464
2465 * cp-tree.h (EXCEPTION_CLEANUP_NAME, B_SET, B_CLR, B_TST,
2466 CONV_STATIC_CAST): Remove.
2467
2468 * pt.c (UNIFY_ALLOW_MAX_CORRECTION): Remove.
2469
2470 * cp-tree.h (VF_BINFO_VALUE, VF_BASETYPE_VALUE): Remove.
2471
2472 * cp-tree.h (cp_deprecated): Remove.
2473
2474 2005-04-08 Ian Lance Taylor <ian@airs.com>
2475
2476 * cp-tree.def: Define FOR_STMT, WHILE_STMT, DO_STMT, BREAK_STMT,
2477 CONTINUE_STMT, SWITCH_STMT.
2478 * cp-tree.h (cp_stmt_codes): Add FOR_STMT, WHILE_STMT, DO_STMT,
2479 BREAK_STMT, CONTINUE_STMT, SWITCH_STMT.
2480 (WHILE_COND, WHILE_BODY): Define.
2481 (DO_COND, DO_BODY): Define.
2482 (FOR_INIT_STMT, FOR_COND, FOR_EXPR, FOR_BODY): Define.
2483 (SWITCH_STMT_COND, SWITCH_STMT_BODY, SWITCH_STMT_TYPE): Define.
2484 * cp-gimplify.c (enum bc_t): Define.
2485 (struct cp_gimplify_ctx, ctxp): Define.
2486 (push_context, pop_context): New static functions.
2487 (begin_bc_block, finish_bc_block): New static functions.
2488 (build_bc_goto): New static function.
2489 (gimplify_cp_loop, gimplify_for_stmt): New static functions.
2490 (gimplify_while_stmt, gimplify_do_stmt): Likewise.
2491 (gimplify_switch_stmt): Likewise.
2492 (cp_gimplify_expr): Handle FOR_STMT, WHILE_STMT, DO_STMT,
2493 SWITCH_STMT, CONTINUE_STMT, BREAK_STMT.
2494 (cp_genericize): Call push_context and pop_context.
2495 * semantics.c (finish_break_stmt): Just call build_stmt
2496 (BREAK_STMT) rather than build_break_stmt.
2497 (finish_continue_stmt): Corresponding change.
2498 * decl.c (pop_switch): Update call to c_do_switch_warnings for new
2499 parameters.
2500 * cxx-pretty-print.c (pp_cxx_statement): Handle SWITCH_STMT,
2501 WHILE_STMT, DO_STMT, FOR_STMT, BREAK_STMT, CONTINUE_STMT.
2502 * dump.c (cp_dump_tree): Likewise.
2503
2504 2005-04-08 Mark Mitchell <mark@codesourcery.com>
2505
2506 PR c++/20905
2507 * parser.c (cp_parser_type_specifier_seq): Add is_condition
2508 parameter.
2509 (cp_parser_new_type_id): Pass it.
2510 (cp_parser_condition): Likewise.
2511 (cp_parser_conversion_type_id): Likewise.
2512 (cp_parser_type_id): Likewise.
2513 (cp_parser_type_specifier_seq): In a condition, do not allow
2514 invalid type-specifier combinations.
2515 (cp_parser_exception_declaration): Adjust call to
2516 cp_parser_type_specifier_seq.
2517
2518 * cp-tree.def (TINST_LEVEL): Document TINST_IN_SYSTEM_HEADER_P.
2519 * cp-tree.h (struct tinst_level): Add in_system_header_p.
2520 (TINST_IN_SYSTEM_HEADER_P): New macro.
2521 (make_tinst_level): Remove.
2522 * pt.c (lookup_template_class): Preserve DECL_IN_SYSTEM_HEADER on
2523 the instantiated class.
2524 (push_tinst_level): Do not use make_tinst_level. Set
2525 TINST_IN_SYSTEM_HEADER_P.
2526 (pop_tinst_level): Likewise.
2527 (instantiate_class_template): Set in_system_header.
2528 (instantiate_pending_templates): Likewise.
2529 * tree.c (make_tinst_level): Remove.
2530
2531 2005-04-06 Joseph S. Myers <joseph@codesourcery.com>
2532
2533 * decl.c (start_decl): Apply pending #pragma weak regardless of
2534 scope.
2535
2536 2005-04-06 Mark Mitchell <mark@codesourcery.com>
2537
2538 PR c++/20212
2539 * pt.c (regenerate_decl_from_template): Copy attributes for
2540 parameters from the pattern to the instantiation.
2541
2542 2005-04-05 Mark Mitchell <mark@codesourcery.com>
2543
2544 PR c++/20734
2545 * cp-tree.def (OFFSET_REF): Correct comments.
2546 * init.c (build_offset_ref): Remove misleading comment.
2547 * typeck.c (build_unary_op): Handle pointer-to-member creation
2548 here, rather than ...
2549 (unary_complex_lvalue): ... here.
2550
2551 2005-04-06 Jason Merrill <jason@redhat.com>
2552
2553 PR c++/19312
2554 * tree.c (stabilize_init): Don't bother trying to stabilize
2555 something with no side-effects.
2556
2557 2005-04-05 Mark Mitchell <mark@codesourcery.com>
2558
2559 PR c++/20763
2560 * decl.c (grokdeclarator): Correct attribute handling.
2561
2562 2005-04-05 Mark Mitchell <mark@codesourcery.com>
2563
2564 PR c++/19159
2565 * decl2.c (import_export_decl): Use non-COMDAT external linkage
2566 for virtual tables, typeinfo, etc. that will be emitted in only
2567 one translation unit on systems without weak symbols.
2568
2569 2005-04-04 Mark Mitchell <mark@codesourcery.com>
2570
2571 PR c++/20679
2572 * parser.c (cp_parser_template_name): Fix thinko.
2573
2574 2005-04-04 Nathan Sidwell <nathan@codesourcery.com>
2575
2576 PR c++/20746
2577 * method.c (use_thunk): Protect covariant pointer return
2578 adjustments from NULL pointers.
2579
2580 2005-04-04 Jan Hubicka <jh@suse.cz>
2581
2582 * decl2.c (finish_objects): Revert my previous patch.
2583 (cp_finish_file): Likewise.
2584
2585 2005-04-03 Kazu Hirata <kazu@cs.umass.edu>
2586
2587 * pt.c: Fix comment typos.
2588
2589 2005-04-03 Nathan Sidwell <nathan@codesourcery.com>
2590
2591 PR c++/20723
2592 * pt.c (more_specialized_fn): Member functions are unordered wrt
2593 non-members. Conversion operators are unordered wrt other
2594 functions.
2595
2596 2005-04-01 Nathan Sidwell <nathan@codesourcery.com>
2597
2598 * call.c (add_template_candidates_real): Remove length parameter
2599 from fn_type_unification call.
2600 * class.c (resolve_address_of_overloaded_function): Likewise
2601 * cp-tree.h (fn_type_unification): Remove length parameter.
2602 * pt.c (get_bindings_overload): Remove.
2603 (get_bindings_real): Rename to ...
2604 (get_bindings): ... here. Remove length and strict
2605 parameters. Change return type flag to boolean. Remove original
2606 forwarding function.
2607 (determine_specialization): Adjust get_bindings call.
2608 (fn_type_unification): Remove length parameter. Adjust.
2609 (type_unification_real): Remove length parameter. Adjust.
2610 (resolve_overloaded_unification): Adjust get_bindings call.
2611 (try_one_overload): Simplify confusing cascaded if control flow.
2612 (unify): Remove length paramter from type_unification_real call.
2613 (most_specialized_instantiation): Adjust get_bindings calls.
2614 (most_specialized): Likewise.
2615
2616 2005-03-31 Nathan Sidwell <nathan@codesourcery.com>
2617
2618 PR c++/19203, implement DR 214
2619 * call.c (joust): Use more_specialized_fn.
2620 * cp-tree.h (DEDUCE_ORDER): Remove.
2621 (more_specialized): Replace with ...
2622 (more_specialized_fn): ... this.
2623 * pt.c (maybe_adjust_types_for_deduction): Remove DEDUCE_ORDER
2624 case.
2625 (type_unification_real): Remove DEDUCE_ORDER case.
2626 (more_specialized): Replace with ...
2627 (more_specialized_fn): ... this. Implement DR 214.
2628 (most_specialized_instantiation): Use get_bindings_real directly.
2629
2630 2005-03-31 Gabriel Dos Reis <gdr@integrable-solutions.net>
2631
2632 PR c++/18644
2633 * call.c (build_new_op): Remove check for -Wsynth.
2634
2635 2005-03-31 Jan Hubicka <jh@suse.cz>
2636
2637 * decl2.c (finish_objects): Mark ctor as needed.
2638 (cp_finish_file): Output variables only in nonunit-at-a-time.
2639
2640 2005-03-29 Richard Henderson <rth@redhat.com>
2641
2642 PR c/20519
2643 * decl.c (cp_complete_array_type): Rename from complete_array_type.
2644 Use the new complete_array_type in c-common.c. Update all callers.
2645 * cp-tree.h (cp_complete_array_type): Update to match.
2646
2647 2005-03-24 Geoffrey Keating <geoffk@apple.com>
2648
2649 * typeck.c (build_static_cast_1): Allow scalar_cast between
2650 any integral, floating, or enumeration type.
2651
2652 2005-03-24 Steven Bosscher <stevenb@suse.de>
2653
2654 * typeck.c (comptypes): First determine if the types are compatible
2655 from a target-independent point of view. Check target attributes
2656 last.
2657
2658 * class.c (build_base_path):
2659 (build_vbase_offset_vtbl_entries):
2660 (add_vcall_offset): Replace fold (buildN (...)) with fold_buildN.
2661 * error.c (dump_expr): Likewise.
2662 * init.c (build_zero_init, expand_cleanup_for_base,
2663 build_vec_delete_1): Likewise.
2664 * mangle.c (write_integer_cst): Likewise.
2665 * method.c (thunk_adjust): Likewise.
2666 * pt.c (convert_nontype_argument, tsubst, unify): Likewise.
2667 * tree.c (cxx_print_statistics, array_type_nelts_total): Likewise.
2668 * typeck.c (build_ptrmemfunc_access_expr,
2669 (get_member_function_from_ptrfunc): Likewise.
2670
2671 2005-03-23 Joseph S. Myers <joseph@codesourcery.com>
2672
2673 * cp-objcp-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
2674
2675 2005-03-23 Joseph S. Myers <joseph@codesourcery.com>
2676
2677 * cp-tree.h (perform_integral_promotions): Remove.
2678 (default_conversion): Add.
2679
2680 2005-03-22 Mark Mitchell <mark@codesourcery.com>
2681
2682 * parser.c (cp_parser_warn_min_max): New function.
2683 (cp_parser_binary_expression): Use it.
2684 (cp_parser_assignment_operator_opt): Likewise.
2685 (cp_parser_operator): Likewise.
2686
2687 2005-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2688
2689 PR c++/19980
2690 * decl.c (start_preparsed_function): Robustify.
2691
2692 2005-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2693
2694 PR c++/20499
2695 * parser.c (cp_parser_class_head): Return NULL_TREE when
2696 encountering a redefinition.
2697
2698 2005-03-22 Nathan Sidwell <nathan@codesourcery.com>
2699
2700 PR c++/20465
2701 PR c++/20381
2702 * typeck.c (build_ptrmemfunc): Allow OFFSET_REF when processing a
2703 template.
2704
2705 2005-03-21 Paolo Carlini <pcarlini@suse.de>
2706
2707 PR c++/20461
2708 PR c++/20536
2709 * init.c (emit_mem_initializers): Don't crash on undefined
2710 types.
2711
2712 2005-03-21 Paolo Carlini <pcarlini@suse.de>
2713
2714 PR c++/20147
2715 * semantics.c (finish_stmt_expr_expr): Return immediately
2716 if error_operand_p (expr).
2717
2718 2005-03-21 Joseph S. Myers <joseph@codesourcery.com>
2719
2720 * cp-tree.h (lvalue_or_else, lvalue_p): New.
2721 * typeck.c (lvalue_or_else): New. Call lvalue_error.
2722
2723 2005-03-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
2724
2725 PR c++/20240
2726 * decl.c (decls_match): Compare context of VAR_DECL.
2727
2728 2005-03-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
2729
2730 PR c++/20333
2731 * parser.c (cp_parser_postfix_expression) <case RID_TYPENAME>:
2732 Check the return value of cp_parser_nested_name_specifier.
2733
2734 2005-03-18 Dale Johannesen <dalej@apple.com>
2735
2736 * cp/tree.c (cp_tree_equal): Handle SSA_NAME.
2737
2738 2005-03-18 Paolo Carlini <pcarlini@suse.de>
2739
2740 PR c++/20463
2741 * parser.c (cp_parser_diagnose_invalid_type_name):
2742 Check TYPE_BINFO (current_class_type) before attempting
2743 to emit inform messages.
2744
2745 2005-03-17 Paolo Carlini <pcarlini@suse.de>
2746
2747 PR c++/19966
2748 * cp-tree.h (grok_op_properties): Change return type to void.
2749 * decl.c (grok_op_properties): Return early - don't check the
2750 arity - in case of a static member or an operator that cannot
2751 be non-member; tidy a bit.
2752
2753 2005-03-17 Nathan Sidwell <nathan@codesourcery.com>
2754
2755 PR c++/20186
2756 * pt.c (contains_dependent_cast_p): Remove.
2757 (fold_non_dependent_expr): Don't use it.
2758 (value_dependent_expression_p): Use a switch statement.
2759 reference_exprs can be dependent.
2760
2761 2005-03-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
2762
2763 PR c++/4403
2764 PR c++/9783, DR433
2765 * name-lookup.c (pushtag): Skip template parameter scope when
2766 scope is ts_global. Don't push tag into template parameter
2767 scope.
2768 * pt.c (instantiate_class_template): Reorder friend class
2769 template substitution to handle non-dependent friend class
2770 that hasn't been previously declared.
2771
2772 2005-03-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
2773
2774 Friend class name lookup 5/n
2775 PR c++/1016
2776 * cp-tree.h (pushtag): Adjust declaration.
2777 * decl.c (lookup_and_check_tag): Call lookup_type_scope if
2778 lookup_name fails.
2779 (xref_tag): Adjust call to pushtag. Make hidden class visible.
2780 (start_enum): Adjust call to pushtag.
2781 * name-lookup.c (ambiguous_decl): Ignore hidden names.
2782 (qualify_lookup): Change return type to bool.
2783 (hidden_name_p): New function.
2784 (lookup_namespace_name, unqualified_namespace_lookup,
2785 lookup_name_real): Use it.
2786 (lookup_type_scope): Update comments.
2787 (maybe_process_template_type_declaration): Change parameter name
2788 from globalize to is_friend.
2789 (pushtag): Change globalize parameter of type int to tag_scope.
2790 Hide name if introduced by friend declaration.
2791 * name-lookup.h (hidden_name_p): Add declaration.
2792 * parser.c (cp_parser_lookup_name): Don't deal with hidden name
2793 here.
2794 * pt.c (push_template_decl_real): Make hidden class template
2795 visible.
2796 (lookup_template_class, instantiate_class_template): Adjust call
2797 to pushtag.
2798 * semantics.c (begin_class_definition): Likewise.
2799 * rtti.c (init_rtti_processing, build_dynamic_cast_1,
2800 tinfo_base_init, emit_support_tinfos): Use ts_current instead of
2801 ts_global.
2802
2803 2005-03-13 Mark Mitchell <mark@codesourcery.com>
2804
2805 PR c++/20157
2806 * pt.c (determine_specialization): Reject non-specializations.
2807
2808 2005-03-11 Per Bothner <per@bothner.com>
2809
2810 * cp-tree.h (struct cp_declarator): New id_loc field.
2811 * cp/parser.c (cp_lexer_get_preprocessor_token): Set cp_token's
2812 location using c_lex_with_flags, instead of input_location.
2813 (cp_parser_direct_declarator): Set declarator's id_loc from
2814 cp_token's id_loc.
2815
2816 2005-03-10 Jakub Jelinek <jakub@redhat.com>
2817
2818 PR c++/18384, c++/18327
2819 * decl.c (reshape_init_array): Use UHWI type for max_index_cst
2820 and index. Convert max_index to size_type_node if it isn't
2821 host_integerp (, 1).
2822
2823 2005-03-09 Mark Mitchell <mark@codesourcery.com>
2824
2825 PR c++/20208
2826 * pt.c (tsubst_decl): Apply array-to-pointer and
2827 function-to-pointer conversions to function arguments.
2828 (regenerate_decl_from_template): Likewise.
2829
2830 2005-03-09 Paolo Carlini <pcarlini@suse.de>
2831
2832 PR c++/16859
2833 * decl.c (complete_array_type): In pedantic mode, return
2834 3 for an empty initializer list as the initializer for an
2835 array of unknown bound (8.5.1/4).
2836 (maybe_deduce_size_from_array_init): Fix final test to use
2837 the above.
2838
2839 2005-03-08 Nathan Sidwell <nathan@codesourcery.com>
2840
2841 PR c++/20186
2842 * pt.c (contains_dependent_cast_p): New.
2843 (fold_non_dependent_expr): Call it.
2844
2845 2005-03-08 Mark Mitchell <mark@codesourcery.com>
2846
2847 PR c++/20142
2848 * cp-tree.h (target_type): Remove.
2849 * decl.c (layout_var_decl): Remove #if 0'd code.
2850 (cp_finish_decl): Remove dead code.
2851 * init.c (build_vec_init): When determining whether or not the
2852 element type has an asignment operator, look through all array
2853 dimensions.
2854 * typeck.c (target_type): Remove.
2855
2856 2005-03-07 Mark Mitchell <mark@codesourcery.com>
2857
2858 * class.c (finish_struct_1): Do not warn about non-virtual
2859 destructors in Java classes.
2860
2861 2005-03-05 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
2862
2863 PR c++/19311
2864 * init.c (build_offset_ref): Don't build non-dependent SCOPE_REF.
2865 * pt.c (build_non_dependent_expr): Don't build NON_DEPENDENT_EXPR
2866 for OFFSET_TYPE.
2867 * typeck.c (build_x_unary_op): Don't build non-dependent SCOPE_REF.
2868 Also set PTRMEM_OK_P for NON_DEPENDENT_EXPR.
2869 (build_unary_op): Handle building ADDR_EXPR of OFFSET_REF inside
2870 template.
2871
2872 2005-03-02 Alexandre Oliva <aoliva@redhat.com>
2873
2874 * name-lookup.c (push_overloaded_decl): Don't error if the new
2875 decl matches the old one.
2876 * decl.c (redeclaration_error_message): Likewise.
2877
2878 2005-03-01 Per Bothner <per@bothner.com>
2879
2880 * decl.c (finish_function): Use SET_EXPR_LOCATION instead of
2881 unavailable annotate_with_file_line, if USE_MAPPED_LOCATION.
2882
2883 2005-03-01 Nathan Sidwell <nathan@codesourcery.com>
2884
2885 PR c++/20232
2886 * class.c (update_vtable_entry_for_fn): Don't crash on invalid
2887 covariancy.
2888
2889 * cp-tree.g (THUNK_TARGET): Expand comment.
2890 * method.c (use_thunk): Make sure we also use the target, if that
2891 is a thunk.
2892
2893 2005-02-27 Jakub Jelinek <jakub@redhat.com>
2894
2895 PR c++/20206
2896 * decl.c (cxx_comdat_group): Put thunks for
2897 TARGET_USE_LOCAL_THUNK_ALIAS_P (function) functions into the same
2898 comdat group as the thunk target.
2899
2900 2005-02-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2901
2902 * call.c, class.c, cp-tree.h, decl2.c, error.c, init.c, mangle.c,
2903 parser.c: Fix comment typo(s).
2904
2905 2005-02-24 Jakub Jelinek <jakub@redhat.com>
2906
2907 PR c++/20175
2908 * decl.c (reshape_init): Don't warn about missing braces if STRING_CST
2909 initializes a char/wchar_t array.
2910
2911 2005-02-23 Mark Mitchell <mark@codesourcery.com>
2912
2913 PR c++/19878
2914 * decl.c (grokvardecl): Set DECL_INTERFACE_KNOWN for declarations
2915 with internal linkage.
2916
2917 2005-02-23 Alexandre Oliva <aoliva@redhat.com>
2918
2919 * decl.c (grokvardecl): Don't exempt anonymous types from having
2920 linkage for variables that have linkage other than "C".
2921
2922 2005-02-23 Kazu Hirata <kazu@cs.umass.edu>
2923
2924 * cp-objcp-common.h, error.c: Update copyright.
2925
2926 2005-02-22 Mark Mitchell <mark@codesourcery.com>
2927
2928 PR c++/20073
2929 * decl.c (start_decl_1): Don't clear TREE_READONLY.
2930 (cp_finish_decl): Likewise.
2931 (complete_vars): Call cp_apply_type_quals_to_decl.
2932 * typeck.c (cp_apply_type_quals): Avoid setting TREE_READONLY in
2933 cases where that's not valid.
2934
2935 PR c++/19991
2936 * init.c (integral_constant_value): Iterate if the value of a decl
2937 is itself a constant.
2938
2939 PR c++/20152
2940 * parser.c (cp_parser_class_head): Check for redefintions here.
2941 * semantics.c (begin_class_definition): Not here.
2942
2943 PR c++/20153
2944 * decl2.c (build_anon_union_vars): Add type parameter.
2945 (finish_anon_union): Pass it.
2946
2947 PR c++/20148
2948 * error.c (dump_expr): Do not print the body of a BIND_EXPR.
2949 Handle STATEMENT_LIST.
2950
2951 PR c++/19883
2952 * parser.c (cp_parser_direct_declarator): Always complain about
2953 non-constant array bounds when in a function scope.
2954 * semantics.c (finish_id_expression): Do not mark dependent names
2955 as non-constant.
2956
2957 2005-02-21 Douglas Gregor <dgregor@cs.indiana.edu>
2958
2959 PR c++/19076
2960 PR c++/6628
2961 * cp-tree.h (cp_apply_type_quals_to_decl): Declared.
2962 * decl.c (grokdeclarator): Pedwarn about qualifying a function
2963 type.
2964 Add qualifiers when declaring a typedef of a function type.
2965 Member function pointers pick up the qualifiers of the typedef
2966 used to declare them.
2967 Don't complain about creating cv-qualified function types.
2968 Complain about qualified function typedefs that are used to
2969 declare non-static member functions or free functions.
2970 Use cp_apply_type_quals_to_decl.
2971 (start_preparsed_function): Use cp_apply_type_quals_to_decl.
2972 (grokclassfn): Use cp_apply_type_quals_to_decl.
2973 * error.c (dump_type_suffix): Print qualifiers for function
2974 types.
2975 * pt.c (tsubst_decl): Use cp_apply_type_quals_to_decl.
2976 (tsubst): When substituting a function type into a member
2977 pointer type, pass along the qualifiers.
2978 (unify): Unify member pointers to member function pointers.
2979 * tree.c (cp_build_qualified_type_real): Function types may be
2980 qualified. This includes restrict qualifiers.
2981 * typeck.c (cp_apply_type_quals_to_decl): New function to replace
2982 use of c_apply_type_quals_to_decl. Drops qualifiers that are being
2983 added to function types.
2984
2985 2005-02-20 Zack Weinberg <zack@codesourcery.com>
2986
2987 PR 18785
2988 * cp-objcp-common.h (LANG_HOOKS_TO_TARGET_CHARSET): Set to
2989 c_common_to_target_charset. Delete bogus comment.
2990
2991 2005-02-18 Richard Henderson <rth@redhat.com>
2992
2993 PR libstdc++/10606
2994 * except.c (do_get_exception_ptr): New.
2995 (expand_start_catch_block): Use it.
2996
2997 2005-02-19 Jakub Jelinek <jakub@redhat.com>
2998
2999 * decl.c (start_decl_1): Only check TYPE_NEEDS_CONSTRUCTING
3000 if type is not error_mark_node.
3001
3002 2005-01-20 Giovanni Bajo <giovannibajo@gcc.gnu.org>
3003
3004 PR c++/19508
3005 * decl2.c (grokfield): Do not apply attributes to template parameters
3006 as they are ignored by tsubst anyway.
3007
3008 2005-02-18 Jakub Jelinek <jakub@redhat.com>
3009
3010 PR c++/19813
3011 * decl.c (start_decl_1): Clear TREE_READONLY flag if
3012 its type has TYPE_NEEDS_CONSTRUCTING.
3013 (complete_vars): Likewise.
3014
3015 2005-02-17 Alexandre Oliva <aoliva@redhat.com>
3016
3017 PR c++/20028
3018 * class.c (finish_struct): Initialize TYPE_SIZE_UNIT of a
3019 template along with TYPE_SIZE.
3020
3021 PR c++/20022
3022 * semantics.c (perform_deferred_access_checks): Use
3023 get_deferred_access_checks to get the top of the stack.
3024
3025 2005-02-15 Alexandre Oliva <aoliva@redhat.com>
3026
3027 PR c++/17788
3028 * class.c (add_implicitly_declared_members, check_field_decl)
3029 (check_field_decls, check_bases): Remove arguments, tests and
3030 assignments of cant_have_default_ctor-related variables.
3031
3032 2005-02-15 Alexandre Oliva <aoliva@redhat.com>
3033
3034 * decl2.c (mark_used): Set the source location of the used decl to
3035 the current input location here...
3036 * method.c (synthesize_method): ... not here. Set input_location
3037 from the decl instead.
3038
3039 2005-02-14 Nathan Sidwell <nathan@codesourcery.com>
3040
3041 PR c++/19608
3042 * parser.c (cp_parser_late_parsing_for_member): Use
3043 current_function_decl as scope to push to and from.
3044
3045 PR c++/19884
3046 * pt.c (check_explicit_specialization): Make sure namespace
3047 binding lookup found an overloaded function.
3048 (lookup_template_function): Just assert FNS is an overloaded
3049 function.
3050
3051 PR c++/19895
3052 * decl.c (grokdeclarator): Check for error mark node in ptrmem
3053 construction.
3054
3055 2005-02-14 Alexandre Oliva <aoliva@redhat.com>
3056
3057 PR c++/17816
3058 * decl.c (redeclaration_error_message): Report redefinition of
3059 pure virtual function.
3060
3061 2005-02-14 Nathan Sidwell <nathan@codesourcery.com>
3062
3063 PR c++/19891
3064 * class.c (build_simple_base_path): Build the component_ref
3065 directly.
3066 (update_vtable_entry_for_fn): Walk the covariant's binfo chain
3067 rather than using lookup_base.
3068 * search.c (dfs_walk_once): Add non-recursive assert check.
3069 * typeck.c (build_class_member_access_expr): It is possible for
3070 the member type to be both const and volatile.
3071
3072 2005-02-12 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
3073
3074 PR c++/14479
3075 PR c++/19487
3076 * pt.c (maybe_check_template_type): Remove.
3077 * cp-tree.h (maybe_check_template_type): Remove prototype.
3078 * name-lookup.c (maybe_process_template_type_declaration): Don't
3079 use maybe_check_template_type.
3080
3081 2005-02-11 Richard Henderson <rth@redhat.com>
3082
3083 PR c++/19632
3084 * pt.c (get_mostly_instantiated_function_type): Save and restore
3085 flag_access_control instead of push/pop_access_scope.
3086
3087 2005-02-10 Mark Mitchell <mark@codesourcery.com>
3088
3089 PR c++/19755
3090 * decl.c (reshape_init): Issue warnings about missing braces.
3091
3092 2005-02-11 Kazu Hirata <kazu@cs.umass.edu>
3093
3094 * cp-tree.def, except.c, ptree.c: Update copyright.
3095
3096 2005-02-09 Mark Mitchell <mark@codesourcery.com>
3097
3098 PR c++/19811
3099 * call.c (build_op_delete_call): Check COMPLETE_TYPE_P before
3100 attempting name lookup.
3101
3102 * parser.c (cp_parser_unqualified_id): Initialize type_decl.
3103
3104 PR c++/19787
3105 * call.c (initialize_reference): Robustify.
3106
3107 PR ++/19732
3108 * decl.c (grokdeclarator): Check for invalid use of destructor
3109 names.
3110
3111 PR c++/19762
3112 * parser.c (cp_parser_unqualified_id): Avoid creating destructor
3113 names with invalid types.
3114
3115 PR c++/19826
3116 * parser.c (cp_parser_direct_declarator): Allow type-dependent
3117 expressions as array bounds.
3118
3119 PR c++/19739
3120 * parser.c (cp_parser_attributes_list): Allow empty lists.
3121
3122 2005-02-08 Mark Mitchell <mark@codesourcery.com>
3123
3124 PR c++/19733
3125 * class.c (add_method): Don't set TYPE_HAS_DESTRUCTOR.
3126 (check_bases): Give warnings about a base class with a
3127 non-virtual destructor, even if it is implicit.
3128 (finish_struct_bits): Don't copy TYPE_HAS_DESTRUCTOR.
3129 (maybe_warn_about_overly_private_class): Don't use
3130 TYPE_HAS_DESTRUCTOR.
3131 (finish_struct_methods): Don't set TYPE_HAS_DESTRUCTOR.
3132 (check_for_override): Give it external linkage.
3133 (add_implicitly_declared_members): Generate destructors lazily.
3134 (check_field_decls): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR, not
3135 TYPE_HAS_DESTRUCTOR.
3136 (check_bases_and_members): Call check_methods before
3137 check_field_decls.
3138 (check_bases_and_members): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR, not
3139 TYPE_HAS_DESTRUCTOR.
3140 (finish_struct_1): Do not use TYPE_HAS_DESTRUCTOR.
3141 * cp-tree.def (PSEUDO_DTOR_EXPR): Document.
3142 * cp-tree.h (TYPE_HAS_DESTRUCTOR): Remove.
3143 (lang_type_class): Add lazy_destructor.
3144 (CLASSTYPE_LAZY_DESTRUCTOR): New macro.
3145 (CLASSTYPE_DESTRUCTORS): Robustify.
3146 (TYPE_HAS_DESTRUCTOR): Remove.
3147 (check_for_override): Declare.
3148 (build_vbase_delete): Remove.
3149 * cvt.c (convert_to_void): Issue errors about pseudo-destructor
3150 expressions.
3151 * decl.c (cxx_maybe_build_cleanup): Remove dead code.
3152 * except.c (dtor_nothrow): Lazily create destructors if necessary.
3153 (build_throw): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR.
3154 * init.c (build_delete): Lazily create destructors, if necessary.
3155 (build_vbase_delete): Remove.
3156 * method.c (locate_dtor): Simplify.
3157 (implicitly_declare_fn): Add support for destructors.
3158 * parser.c (cp_parser_lookup_name): Lazily create destructors, if
3159 necessary.
3160 * pt.c (check_explicit_specialization): Don't use
3161 TYPE_HAS_DESTRUCTOR.
3162 (instantiate_class_template): Likewise.
3163 * ptree.c (cxx_print_type): Don't print TYPE_HAS_DESTRUCTOR.
3164 * rtti.c (emit_support_tinfos): Robustify.
3165 * search.c (lookup_fnfields_1): Lazily create destructors.
3166 * typeck.c (build_class_member_access_expr): Remove
3167 PSEUDO_DTOR_EXPR handling.
3168 (lookup_destructor): Likewise.
3169
3170 2005-02-08 Kazu Hirata <kazu@cs.umass.edu>
3171
3172 * cxx-pretty-print.c, cxx-pretty-print.h, decl.h: Update
3173 copyright.
3174
3175 2005-02-07 Mark Mitchell <mark@codesourcery.com>
3176
3177 * parser.c (cp_lexer_start_debugging): Avoid arithmetic operations
3178 on boolean variables.
3179 (cp_lexer_stop_debugging): Likewise.
3180
3181 2005-02-03 Giovanni Bajo <giovannibajo@gcc.gnu.org>
3182
3183 PR c++/17401
3184 * parser.c (cp_parser_pure_specifier): Emit a specific error
3185 message with an invalid pure specifier.
3186 * decl2.c (grok_function_init): Remove.
3187 (grokfield): An initializer for a method is a always a pure
3188 specifier.
3189
3190 2005-02-02 Matt Austern <austern@apple.com>
3191
3192 PR c++/19628
3193 * cp-tree.h (builtin_valid_in_constant_expr_p): Declare.
3194 * parser.c (cp_parser_postfix_expression): Accept function call in
3195 constant expression if builtin_valid_in_constant_expr_p is true
3196 for that function.
3197 * pt.c (value_dependent_expression_p): Handle CALL_EXPRs properly.
3198 * semantics.c (finish_id_expression): Accept function call in constant
3199 expression if builtin_valid_in_constant_expr_p is true for that
3200 function.
3201 * tree.c (builtin_valid_in_constant_expr_p): New.
3202
3203 2005-02-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3204
3205 PR c++/17413
3206 * pt.c (check_instantiated_args): Improve error message.
3207 Fix logic when to print its second part.
3208
3209 2005-02-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3210
3211 * cp-tree.h (complete_type_or_else): Remove macro.
3212 (complete_type_or_diagnostic): Rename to complete_type_or_else
3213 and remove last argument.
3214 * typeck.c (complete_type_or_diagnostic): Rename to
3215 complete_type_or_else and remove last argument.
3216
3217 2005-02-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3218
3219 * cp-tree.h (commonparms): Remove prototype.
3220 (convert_arguments): Likewise.
3221 (PFN_FROM_PTRMEMFUNC): Remove.
3222 * typeck.c (commonparms): Make static.
3223 (convert_arguments): Add prototype. Make static.
3224 (PFN_FROM_PTRMEMFUNC): Replace by pfn_from_ptrmemfunc.
3225
3226 2005-01-31 Mark Mitchell <mark@codesourcery.com>
3227
3228 * parser.c (cp_parser_primary_expression): Don't complain about
3229 floating-point literals in integral constant expressions when
3230 !pedantic.
3231
3232 2005-02-01 Alexandre Oliva <aoliva@redhat.com>
3233
3234 * parser.c (cp_parser_template_id): Revert comment patch too.
3235
3236 PR c++/18757
3237 PR c++/19366
3238 PR c++/19499
3239 * parser.c (cp_parser_template_id): Revert 2004-12-09's patch.
3240 Issue an error when creating the template id.
3241 * pt.c (fn_type_unification): Return early if the explicit
3242 template arg list is an error_mark_node.
3243
3244 2005-01-31 Mark Mitchell <mark@codesourcery.com>
3245
3246 * decl.c (build_enumerator): Do not issue duplicate error messages
3247 about invalid enumeration constants.
3248 * parser.c (cp_parser_non_integral_constant_expression): Always
3249 set parser->non_integral_constant_expression_p.
3250 (cp_parser_primary_expression): Add cast_p parameter. Issue
3251 errors about invalid uses of floating-point literals in
3252 cast-expressions.
3253 (cp_parser_postfix_expression): Add cast_p parameter.
3254 (cp_parser_open_square_expression): Pass it.
3255 (cp_parser_parenthesized_expression_list): Add cast_p parameter.
3256 (cp_parser_unary_expression): Likewise.
3257 (cp_parser_new_placement): Pass it.
3258 (cp_parser_direct_new_declarator): Likewise.
3259 (cp_parser_new_initializer): Likewise.
3260 (cp_parser_cast_expression): Add cast_p parameter.
3261 (cp_parser_binary_expression): Likewise.
3262 (cp_parser_question_colon_clause): Likewise.
3263 (cp_parser_assignment_expression): Likewise.
3264 (cp_parser_expression): Likewise.
3265 (cp_parser_constant_expression): If an integral constant
3266 expression is invalid, return error_mark_node.
3267 (cp_parser_expression_statement): Pass cast_p.
3268 (cp_parser_condition): Likewise.
3269 (cp_parser_iteration_statement): Likewise.
3270 (cp_parser_jump_statement): Likewise.
3271 (cp_parser_mem_initializer): Likewise.
3272 (cp_parser_template_argument): Likewise.
3273 (cp_parser_parameter_declaration): Likewise.
3274 (cp_parser_initializer): Likewise.
3275 (cp_parser_throw_expression): Likewise.
3276 (cp_parser_attribute_list): Likewise.
3277 (cp_parser_simple_cast_expression): Likewise.
3278 (cp_parser_functional_cast): Likewise.
3279 (cp_parser_late_parsing_default_args): Likewise.
3280 (cp_parser_sizeof_operand): Save/restore
3281 non_integral_constant_expression_p.
3282
3283 2005-01-31 Mike Stump <mrs@apple.com>
3284
3285 * parser.c (cp_lexer_new_main): Get the first token, first, before
3286 doing anything.
3287
3288 2005-01-31 Mark Mitchell <mark@codesourcery.com>
3289
3290 * decl.c (start_decl): Add missing parentheses.
3291
3292 2005-01-30 Mark Mitchell <mark@codesourcery.com>
3293
3294 PR c++/19555
3295 * cp-tree.h (DECL_USE_TEMPLATE): Expand documentation.
3296 * decl.c (duplicate_decls): Do not discard
3297 DECL_IMPLICIT_INSTANTIATION when merging declarations.
3298 (start_decl): Do not SET_DECL_TEMPLATE_SPECIALIZATION for
3299 variables that do not have DECL_USE_TEMPLATE.
3300
3301 PR c++/19395
3302 * decl.c (grokdeclarator): Refactor code so that qualified names
3303 are never allowed as the declarator in a typedef.
3304
3305 PR c++/19367
3306 * name-lookup.c (do_nonmember_using_decl): Avoid overloading
3307 builtin declarations.
3308
3309 PR c++/19457
3310 * call.c (convert_like_real): Inline call to
3311 dubious_conversion_warnings here.
3312 * cp-tree.h (dubious_conversion_warnings): Remove.
3313 * semantics.c (finish_unary_op_expr): Copy INTEGER_CSTs before
3314 setting TREE_NEGATED_INT.
3315 * typeck.c (dubious_conversion_warnings): Remove.
3316
3317 PR c++/19349
3318 * name-lookup.c (pushdecl_namespace_level): Avoid accessing free'd
3319 memory.
3320
3321 2005-01-28 Mark Mitchell <mark@codesourcery.com>
3322
3323 PR c++/19253
3324 * parser.c (cp_parser_diagnose_invalid_type_name): Commit to
3325 tentative parses.
3326
3327 PR c++/19667
3328 * pt.c (redeclare_class_template): Robustify.
3329
3330 2005-01-27 Steven Bosscher <stevenb@suse.de>
3331
3332 * decl.c (finish_case_label): Use SWITCH_STMT accessor macros
3333 instead of SWITCH_EXPR ones.
3334 * pt.c (tsubst_expr): Likewise.
3335 * semantics.c (begin_switch_stmt, finish_switch_cond,
3336 finish_switch_stmt): Likewise.
3337
3338 2005-01-26 J"orn Rennecke <joern.rennecke@st.com>
3339
3340 PR c++/18370
3341 * parser.c (cp_parser_initializer_clause): Initialize *non_constant_p.
3342
3343 2005-01-25 Andrew Pinski <pinskia@physics.uc.edu>
3344
3345 * class.c (abort_fndecl_addr): New variable.
3346 (build_vtbl_initializer): If we have a pure virtual function
3347 share the abort function's address.
3348 Include gt-cp-class.h at the end.
3349 * config-lang.in (gtfiles): Add cp/class.c.
3350
3351 2005-01-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3352
3353 * cxx-pretty-print.c (pp_cxx_statement): Add prototype. Make static.
3354 (pp_cxx_function_definition): Make static.
3355 * cxx-pretty-print.h (pp_cxx_statement): Remove prototype.
3356 (pp_cxx_function_definition): Likewise.
3357
3358 2005-01-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3359
3360 * name-lookup.c (print_binding_level): Make static.
3361 (constructor_name_full): Make static inline.
3362 (current_decl_namespace): Make static.
3363 * name-lookup.h (constructor_name_full): Remove prototype.
3364 (print_binding_level): Likewise.
3365 (current_decl_namespace): Likewise.
3366
3367 2005-01-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3368
3369 * decl.h (debug_bindings_indentation): Remove.
3370
3371 2005-01-23 Kazu Hirata <kazu@cs.umass.edu>
3372
3373 * typeck.c: Fix a comment typo.
3374
3375 2005-01-21 Giovanni Bajo <giovannibajo@gcc.gnu.org>
3376
3377 PR c++/19208
3378 * pt.c (fold_decl_constant_value): Always call fold_non_dependent_expr
3379 at least once.
3380 (tsubst): Use fold_decl_constant_value in place of a bare call to
3381 integral_constant_value.
3382
3383 2005-01-20 Kazu Hirata <kazu@cs.umass.edu>
3384
3385 * typeck.c (more_qualified_p): Remove.
3386 * cp-tree.h: Remove the corresponding prototype.
3387
3388 2005-01-19 Matt Austern <austern@apple.com>
3389
3390 * typeck.c (comptypes): Handle return code from objc_comptypes
3391 correctly.
3392
3393 2005-01-19 Kazu Hirata <kazu@cs.umass.edu>
3394
3395 * cp-tree.h, name-lookup.h: Remove unused prototypes.
3396
3397 2005-01-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
3398
3399 PR c++/19375
3400 * semantics.c (finish_id_expression): Disable access checking for
3401 already lookuped FIELD_DECL.
3402
3403 2005-01-18 Kazu Hirata <kazu@cs.umass.edu>
3404
3405 * decl.c (delete_block): Remove.
3406 * cp-tree.h: Remove the corresponding prototype.
3407
3408 * decl.c (vtable_decl_p, vtype_decl_p, walk_globals_data,
3409 walk_vtables_r, walk_vtables, walk_globals_r, walk_globals):
3410 Remove.
3411 * cp-tree.h: Remove the corresponding prototypes.
3412
3413 * tree.c (count_functions, bound_pmf_p, cp_is_overload_p,
3414 cp_update_decl_after_saving, name_p): Remove.
3415 * cp-tree.h: Remove the corresponding prototypes.
3416
3417 2005-01-18 Andrew Pinski <pinskia@physics.uc.edu>
3418
3419 PR c/19472
3420 * semantics.c (finish_asm_stmt): Strip nops off
3421 input memory operands.
3422
3423 2005-01-18 Kazu Hirata <kazu@cs.umass.edu>
3424
3425 * Make-lang.in, call.c, cvt.c, init.c, rtti.c, tree.c,
3426 typeck2.c: Update copyright.
3427
3428 2005-01-16 Kazu Hirata <kazu@cs.umass.edu>
3429
3430 * class.c (get_enclosing_class): Remove.
3431 * cp-tree.h: Remove the corresponding prototypes.
3432
3433 * cvt.c (convert_lvalue): Remove.
3434 * cp-tree.h: Remove the corresponding prototype.
3435
3436 * pt.c (tinst_for_decl): Remove.
3437 * cp-tree.h: Remove the corresponding prototypes.
3438
3439 * tree.c (hash_chainon): Remove.
3440 * cp-tree.h: Remove the corresponding prototypes.
3441
3442 2005-01-15 Jakub Jelinek <jakub@redhat.com>
3443
3444 PR c++/19263
3445 * typeck2.c (split_nonconstant_init_1) <case VECTOR_TYPE>: Put a copy
3446 of CONSTRUCTOR's node into MODIFY_EXPR, as the original is modified.
3447
3448 2005-01-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3449
3450 * Make-lang.in (cp-warn): Don't append $(WERROR).
3451
3452 2005-01-10 Kazu Hirata <kazu@cs.umass.edu>
3453
3454 * cp-tree.h: Fix a comment typo.
3455
3456 2005-01-07 Nathan Sidwell <nathan@codesourcery.com>
3457
3458 PR c++/19298
3459 * pt.c (tsubst_qualified_id): Call convert_from_reference.
3460
3461 2005-01-06 Mark Mitchell <mark@codesourcery.com>
3462
3463 PR c++/19244
3464 * class.c (add_implicitly_declared_members): Remove dead code.
3465 * decl.c (grokfndecl): Add sfk parameter. Use it do set
3466 DECL_CONSTRUCTOR_P.
3467 (grokdeclarator): Adjust calls to grokfndecl.
3468 * method.c (implicitly_declare_fn): Improve documentation.
3469 * parser.c (cp_parser_direct_declarator): Do not consider a
3470 function to be a constructor if the containing class was
3471 originally anonymous.
3472
3473 2005-01-06 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
3474
3475 PR c++/17154
3476 * search.c (lookup_field_1): Handle using declaration in
3477 class template partial specialization.
3478
3479 2005-01-06 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
3480
3481 PR c++/19258
3482 * pt.c (push_access_scope): Handle friend defined in class.
3483 (pop_access_scope): Likewise.
3484
3485 2005-01-06 Nathan Sidwell <nathan@codesourcery.com>
3486
3487 PR c++/19270
3488 * pt.c (tsubst_copy) <ARRAY_REF case>: Handle separately.
3489 (tsubst_copy_and_build) <ARRAY_REF case>: Remove obsolete
3490 array-new handling code. Use build_x_binary_op.
3491
3492 2005-01-05 Nathan Sidwell <nathan@codesourcery.com>
3493
3494 PR c++/19030
3495 * cp-tree.h (start_decl): Take pointer to pushed scope, not bool.
3496 * name-lookup.h (push_scope): Return pushed scope, not flag.
3497 * name-lookup.c (push_scope): Return scope that should be popped,
3498 not a flag.
3499 * decl.c (start_decl): Adjust.
3500 (grokfndecl): Adjust scope push and pop.
3501 * decl2.c (check_classfn): Likewise.
3502 * parser.c (cp_parser_condition, cp_parser_conversion_function_id,
3503 cp_parser_init_declarator, cp_parser_direct_declarator,
3504 cp_parser_class_specifier, cp_parser_class_head,
3505 cp_parser_lookup_name,
3506 cp_parser_constructor_declarator_p): Likewise.
3507 * pt.c (instantiate_class_template,
3508 resolve_typename_type): Likewise.
3509
3510 2005-01-03 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3511
3512 PR c++/14136
3513 * parser.c (cp_parser_unqualified_id): Do not issue error message
3514 for typedef-name as destructor declarator when performing an
3515 uncommitted tentative parse.
3516
3517 2005-01-01 Steven Bosscher <stevenb@suse.de>
3518
3519 PR middle-end/17544
3520 * decl.c (finish_function): Fix comment. Annotate the compiler
3521 generated return with the current file name and line 0.
3522
3523 \f
3524 Copyright (C) 2005 Free Software Foundation, Inc.
3525
3526 Copying and distribution of this file, with or without modification,
3527 are permitted in any medium without royalty provided the copyright
3528 notice and this notice are preserved.