1 2007-04-27 Simon Baldwin <simonb@google.com>
3 * decl.c (grokparms): Changed message format from %qD to %qE.
5 2007-04-27 Douglas Gregor <doug.gregor@gmail.com>
7 * error.c (maybe_warn_variadic_templates): Variadic templates are
8 now in C++0x, so only warn about them in C++98 mode.
10 2007-04-26 Andrew Pinski <andrew_pinski@playstation.sony.com>
13 * typeck.c (build_reinterpret_cast_1): Only allow conversion to
14 integeral types from vectors types.
16 2007-04-26 Jakub Jelinek <jakub@redhat.com>
19 * semantics.c (finish_omp_clauses): Don't create CP_OMP_CLAUSE_INFO
20 for type dependent OMP_CLAUSE_DECLs.
22 2007-04-24 Mark Mitchell <mark@codesourcery.com>
25 * cp-tree.h (ARITHMETIC_TYPE): Include COMPLEX_TYPE.
26 * typeck.c (type_after_usual_arithmetic_conversions): Adjust, as
27 COMPLEX_TYPE is now an ARITHMETIC_TYPE.
28 * init.c (build_zero_init): Adjust, as
29 COMPLEX_TYPE is now a SCALAR_TYPE.
30 * typeck2.c (digest_init): Allow brace-enclosed initializers for
31 COMPLEX_TYPE, even though that is now a SCALAR_TYPE.
33 2007-04-25 Paolo Carlini <pcarlini@suse.de>
35 * semantics.c (classtype_has_nothrow_copy_or_assign_p): Adjust
36 per N2255; rename as classtype_has_nothrow_assign_or_copy_p.
37 (trait_expr_value): Adjust.
39 2007-04-23 Simon Baldwin <simonb@google.com>
41 * decl.c (grokparms): Added new error for duplicate function
42 parameters names in function prototypes, to match gcc behavior.
44 2007-04-23 Jan Hubicka <jh@suse.cz>
46 * cp/decl2.c (finish_objects): Do not call target constructor/destructor
49 2007-04-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
51 * cp-tree.h (lang_tree_node): Use GENERIC_NEXT
52 instead of checking GIMPLE_STMT_P in chain_next.
54 2007-04-17 Mark Mitchell <mark@codesourcery.com>
57 * call.c (convert_for_arg_passing): Convert bitfields to their
60 2007-04-17 Simon Martin <simartin@users.sourceforge.net>
63 * pt.c (value_dependent_expression_p): Handle MODOP_EXPRs.
65 2007-04-16 Seongbae Park <seongbae.park@gmail.com>
69 * cp/decl2.c (constrain_class_visibility):
70 Do not warn about the use of anonymous namespace in the main input file.
72 2007-04-15 Mark Mitchell <mark@codesourcery.com>
74 * cp-tree.h (current_template_parms): Fix typo in comment.
76 2007-04-15 Kazu Hirata <kazu@codesourcery.com>
78 * cp-tree.h, error.c: Fix comment typos.
80 2007-04-13 Jason Merrill <jason@redhat.com>
83 * call.c (reference_binding): Add c_cast_p parm. If true,
84 add quals to TO as needed to make it reference-compatible.
86 2007-04-11 Jan Hubicka <jh@suse.cz>
88 * cp/class.c (convert_to_base_statically): Fold produced tree; verify
89 that we are not processing template_decl.
91 2007-04-09 Mark Mitchell <mark@codesourcery.com>
94 * class.c (build_base_path): Ensure that the converted pointer has
95 the same cv-qualification as the input.
97 2007-04-09 Paolo Carlini <pcarlini@suse.de>
99 * tree.c (cp_tree_equal): Deal with TRAIT_EXPR.
101 2007-04-08 Steven Bosscher <steven@gcc.gnu.org>
103 * cp-objcp-common.h (LANG_HOOKS_TREE_INLINING_ADD_PENDING_FN_DECLS):
105 (LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P): Do not set it.
106 * tree.c (cp_add_pending_fn_decls): Remove.
107 * cp-tree.h (cp_add_pending_fn_decls): Remove prototype.
109 2007-04-07 Daniel Berlin <dberlin@dberlin.org>
111 Revert change removing staticp.
113 2007-04-06 Daniel Berlin <dberlin@dberlin.org>
115 * cp-objcp-common.c (cxx_staticp): Remove.
116 * cp-objcp-common.h (LANG_HOOKS_STATICP): Remove.
117 * cp-tree.h (cxx_staticp):
119 2007-04-04 Danny Smith <dannysmith.users.sourceforge.net>
121 * class.c (check_for_override): Don't remove dllmport attribute
124 2007-04-03 Jakub Jelinek <jakub@redhat.com>
127 * typeck.c (build_modify_expr): For COND_EXPR on LHS, if RHS has void
128 type issue error and return early.
130 2007-03-30 Jason Merrill <jason@redhat.com>
133 * typeck.c (cp_type_readonly): New fn.
134 * cp-tree.h: Declare it.
135 * decl.c (start_decl): Set implicit DECL_THIS_STATIC here.
136 (cp_finish_decl): Not here.
138 2007-03-31 Richard Guenther <rguenther@suse.de>
140 * optimize.c (maybe_clone_body): Replace splay-tree usage by
143 2007-03-31 Douglas Gregor <doug.gregor@gmail.com>
148 * parser.c (declarator_can_be_parameter_pack): New.
149 (cp_parser_template_parameter): Only parse the `...' if the
150 declarator can be a parameter pack.
151 (cp_parser_parameter_declaration): Ditto. Also, handle when TYPE
153 * pt.c (find_parameter_packs_r): Look into the bounds on integer
154 types (they could be used as array bounds).
155 (check_for_bare_parameter_packs): Deal with TEMPLATE_PARM_INDEX.
156 (tsubst_pack_expansion): Handle failure to expand parameter
159 2007-03-30 Paolo Carlini <pcarlini@suse.de>
162 * cp-tree.h (enum cp_trait_kind, struct tree_trait_expr,
163 TRAIT_EXPR_TYPE1, TRAIT_EXPR_TYPE2, TRAIT_EXPR_KIND): Add.
164 (enum cp_tree_node_structure_enum, union lang_tree_node): Update.
165 (CLASS_TYPE_NON_UNION_P): Add.
166 (struct lang_type_class): Add has_complex_dflt.
167 (TYPE_HAS_COMPLEX_DFLT, TYPE_HAS_TRIVIAL_DFLT): Add.
168 (locate_copy, locate_ctor, locate_dtor, finish_trait_expr): Declare.
169 * cp-tree.def: Add TRAIT_EXPR.
170 * cp-objcp-common.c (cp_tree_size): Add TRAIT_EXPR case.
171 * lex.c (struct resword): Add __has_nothrow_assign,
172 __has_nothrow_constructor, __has_nothrow_copy, __has_trivial_assign,
173 __has_trivial_constructor, __has_trivial_copy,
174 __has_trivial_destructor, __has_virtual_destructor, __is_abstract,
175 __is_base_of, __is_class, __is_convertible_to, __is_empty, __is_enum,
176 __is_pod, __is_polymorphic, __is_union.
177 * parser.c (cp_parser_primary_expression): Deal with the new RIDs.
178 (cp_parser_trait_expr): New.
179 * semantics.c (finish_trait_expr, trait_expr_value
180 classtype_has_nothrow_copy_or_assign_p): New.
181 * method.c (locate_copy, locate_ctor, locate_dtor): Do not define
183 * decl.c (cp_tree_node_structure): Add TRAIT_EXPR.
184 * class.c (check_bases, check_field_decl, check_bases_and_members):
185 Deal with TYPE_HAS_COMPLEX_DFLT (t) too.
186 * pt.c (uses_template_parms, tsubst_copy_and_build,
187 value_dependent_expression_p, type_dependent_expression_p): Deal with
189 * tree.c (cp_walk_subtrees): Deal with TRAIT_EXPR.
191 2007-03-29 Richard Guenther <rguenther@suse.de>
193 * tree.c (cp_walk_subtrees): Do not set input_location.
195 2007-03-28 Simon Martin <simartin@users.sourceforge.net>
198 * decl.c (grokfndecl): Properly setup decl if it is a constructor or a
201 2007-03-28 Douglas Gregor <doug.gregor@gmail.com>
203 * parser.c (struct cp_parser): Update comment for
204 greater_than_is_operator_p.
205 (cp_parser_primary_expression): In C++0x mode, a cast operator can
206 be terminated with a `>>' token when !GREATER_THAN_IS_OPERATOR_P.
207 (TOKEN_PRECEDENCE): In C++0x mode, `>>' is treated like `>' when
208 !GREATER_THAN_IS_OPERATOR_P.
209 (cp_parser_binary_expression): When -Wc++0x-compat, warn about
210 `>>' operators that will become two `>' tokens in C++0x.
211 (cp_parser_parameter_declaration): Treat `>>' like `>' in C++0x
212 mode, allowing it to terminate default arguments.
213 (cp_parser_enclosed_template_argument_list): In C++0x mode, treat
214 `>>' like two consecutive `>' tokens.
215 (cp_parser_skip_to_end_of_template_parameter_list): Ditto.
216 (cp_parser_next_token_ends_template_argument_p): In C++0x, `>>'
217 ends a template argument.
219 2007-03-28 Douglas Gregor <doug.gregor@gmail.com>
221 * decl.c (redeclaration_error_message): Complain when redeclaring
222 a friend function with default template arguments (C++0x mode only).
223 * cp-tree.h (check_default_tmpl_args): Declare.
224 * pt.c (check_default_tmpl_args): In C++0x mode, permit default
225 template arguments in function templates. Add support for checking
226 the default template arguments of friend templates.
227 (push_template_decl_real): Fix call to check_default_tmpl_args.
228 (type_unification_real): If a template parameter has not been
229 deduced but provides a default template argument, substitute into
230 that default template argument.
231 * parser.c (cp_parser_init_declarator): When declaring (but not
232 defining!) a function template in C++0x mode, check for default
235 2007-03-28 Douglas Gregor <doug.gregor@gmail.com>
238 * decl.c (grokdeclarator): Deal with cv-qualified function type
239 typedefs in the same way for member and non-member functions.
241 2007-03-26 Dirk Mueller <dmueller@suse.de>
243 * parser.c (cp_parser_member_declaration): Pedwarn
244 about stray semicolons after member declarations.
246 2007-03-26 Paolo Carlini <pcarlini@suse.de>
249 * pt.c (instantiate_decl): Set in_system_header.
251 2007-03-22 Mark Mitchell <mark@codesourcery.com>
253 * cp-tree.h (current_tempalte_parms): Improve documentation.
254 * pt.c (current_template_args): Likewise.
257 * parser.c (cp_parser_parse_and_diagnose_invalid_type_name): Do
258 not consume tokens when failing.
260 2007-03-22 Jim Wilson <wilson@specifix.com>
261 Mark Mitchell <mark@codesourcery.com>
264 * call.c (standard_conversion): Use type_decays_to. Keep FCODE
265 consistent with FROM.
267 2007-03-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
269 * error.c (dump_expr): Handle dependent names that designate types.
270 * cxx-pretty-print.c (pp_cxx_unqualified_id): Handle TYPENAME_TYPE.
272 2007-03-17 Kazu Hirata <kazu@codesourcery.com>
274 * cp-tree.def, parser.c, pt.c: Fix comment typos.
276 2007-03-16 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
278 * cvt.c (cp_convert_and_check) : Define.
279 * cp-tree.h (cp_convert_and_check): Declare.
280 * call.c (convert_conversion_warnings): Rename to
281 conversion_null_warnings. The warning for floating-point to
282 integer is handled by convert_and_check in convert_like_real.
283 (convert_like_real): convert_conversion_warnings was renamed as
284 conversion_null_warnings.
285 * typeck.c (build_binary_op): Use cp_convert_and_check to warn for
286 overflow and changes of value during conversion.
288 2007-03-15 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
291 * parser.c (cp_parser_statement): If 'namespace' is found, this
292 only can be a namespace alias definition, so parse it now.
293 (cp_parser_namespace_alias_definition): if we find an open brace
294 instead of '=', then this is actually a misplaced namespace
297 2007-03-15 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
300 * decl.c (cxx_init_decl_processing): Move command-line options
301 processing to c-opts.c.
303 2007-03-15 Douglas Gregor <doug.gregor@gmail.com>
305 * ptree.c (cxx_print_type): Use formatting markup for integers
306 when printing template parameter index/level/orig level.
307 (cxx_print_xnode): Ditto.
308 * cp-tree.h (TEMPLATE_PARM_PARAMETER_PACK): Use TREE_LANG_FLAG_0.
309 (struct template_parm_index_s): Remove the PARAMETER_PACK member.
310 Make INDEX, LEVEL, and ORIG_LEVEL integers instead of
312 (struct saved_scope): Make X_PROCESSING_TEMPLATE_DECL an int,
313 rather than a HOST_WIDE_INT.
314 Turn X_PROCESSING_EXPLICIT_INSTANTIATION, SKIP_EVALUATION, and
315 NEED_POP_FUNCTION_CONTEXT into bool bitfields; reorder fields for
317 (struct language_function): Make RETURNS_VALUE, RETURNS_NULL,
318 RETURNS_ABNORMALLY, IN_FUNCTION_TRY_HANDLER, and
319 IN_BASE_INITIALIZER bool bitfields.
320 (struct cp_declarator): Make KIND a 4-bit field. Make
321 PARAMETER_PACK_P a bool bitfield just after KIND.
322 * pt.c (uses_parameter_packs): Destroy the pointer set.
323 (make_pack_expansion): Ditto.
324 (check_for_bare_parameter_packs): Ditto.
325 * name-lookup.c (push_to_top_level): Make need_pop a bool value.
327 2007-03-14 Andrew Pinski <andrew_pinski@playstation.sony.com>
330 * call.c (convert_default_arg): Instead of copying the node,
333 2007-03-15 Dirk Mueller <dmueller@suse.de>
336 * call.c (convert_conversion_warnings): New..
337 (convert_like_real): .. factored out from here.
338 (convert_conversion_warnings): Add warning about
339 false being converted to NULL in argument passing.
341 2007-03-14 Dirk Mueller <dmueller@suse.de>
343 * cp/semantics.c (c_finish_if_stmt): Call empty_if_body_warning.
344 (finish_do_body): Warn about empty body in do/while statement.
346 2007-03-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
348 * class.c (warn_hidden): Add OPT_Woverloaded_virtual to warning.
350 2007-03-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
353 * typeck.c (build_binary_op): Call warn_for_div_zero instead of
356 2007-03-13 Alexandre Oliva <aoliva@redhat.com>
358 * cp/repo.c (init_repo): Initialize random_seed saved options.
359 (finish_repo): Adjust.
361 2007-03-13 Mark Mitchell <mark@codesourcery.com>
364 * Make-lang.in (doc/g++.1): Use $< to specify the location from
367 2007-03-12 Seongbae Park <seongbae.park@gmail.com>
369 * decl.c (compute_array_index_type): New warning flag warn_vla.
371 2007-03-12 Mark Mitchell <mark@codesourcery.com>
374 * call.c (convert_default_arg): Copy non-constant arguments.
376 2007-03-11 Mark Mitchell <mark@codesourcery.com>
379 * parser.c (cp_parser_postfix_expression): Disallow compound
380 literals in constant expressions.
383 * semantics.c (finish_typeof): Use unlowered_expr_type.
385 2007-03-10 Mark Mitchell <mark@codesourcery.com>
388 * cp-tree.h (unlowered_expr_type): New function.
389 * typeck.c (is_bitfield_expr_with_lowered_type): Handle
390 COMPOUND_EXPR, MODIFY_EXPR, and SAVE_EXPR.
391 (unlowered_expr_type): New function.
392 (build_unary_op): Disallow predecrements of bool bitfields.
393 * call.c (build_conditional_expr): Use unlowered_expr_type.
394 * pt.c (type_unification_real): Likewise.
396 2007-03-09 Douglas Gregor <doug.gregor@gmail.com>
399 * typeck.c (check_return_expr): Check for bare parameter packs.
400 (comptypes): Compare template parameter packs and
401 type pack expansions.
402 * decl.c (grokdeclarator): Deal with the declaration of function
404 (grokparms): Verify that the (optional) function parameter pack is
405 at the end of the parameter list.
406 (xref_basetypes): Handle pack expansions in the base class.
407 (cp_tree_node_structure): Handle ARGUMENT_PACK_SELECT.
408 * cp-tree.def (TYPE_ARGUMENT_PACK): New.
409 (NONTYPE_ARGUMENT_PACK): New.
410 (TYPE_PACK_EXPANSION): New.
411 (EXPR_PACK_EXPANSION): New.
412 (ARGUMENT_PACK_SELECT): New.
413 * cp-objcp-common.c (cp_tree_size): Compute size of
414 (NON)TYPE_ARGUMENT_PACK, (TYPE|EXPR)_PACK_EXPANSION, and
415 ARGUMENT_PACK_SELECT.
416 * error.c (dump_template_argument): Print template argument packs.
417 (dump_template_argument_list): Ditto.
418 (dump_template_parameter): Dump `...' for template type parameter
420 (dump_type): Dump TYPE_PACK_EXPANSION nodes.
421 (dump_parameters): Print function parameter packs.
422 (dump_template_parms): Print template argument packs.
423 (dump_expr): Dump EXPR_PACK_EXPANSION nodes.
424 (maybe_warn_variadic_templates): New.
425 * operators.def: Add ellipsis operator for EXPR_PACK_EXPANSION.
426 * tree.c (cp_walk_subtrees): Walk BASELINK, TYPE_ARGUMENT_PACK,
427 NONTYPE_ARGUMENT_PACK, TYPE_PACK_EXPANSION, EXPR_PACK_EXPANSION,
429 * mangle.c (write_type): Mangle TYPE_PACK_EXPANSION.
430 (write_template_arg): Write argument packs as separate arguments.
431 * cp-tree.h (struct template_parm_index_s): Add flag that
432 indicates that the template parameter is actually a parameter
434 (struct tree_argument_pack_select): New.
435 (enum cp_tree_node_structure_enum): Add TS_CP_ARGUMENT_PACK_SELECT.
436 (union lang_tree_node): Add argument_pack_select.
437 (FUNCTION_PARAMETER_PACK_P): New.
438 (PACK_EXPANSION_P): New.
439 (PACK_EXPANSION_PATTERN): New.
440 (SET_PACK_EXPANSION_PATTERN): New.
441 (PACK_EXPANSION_PARAMETER_PACKS): New.
442 (ARGUMENT_PACK_P): New.
443 (ARGUMENT_PACK_ARGS): New.
444 (SET_ARGUMENT_PACK_ARGS): New.
445 (ARGUMENT_PACK_INCOMPLETE_P): New.
446 (ARGUMENT_PACK_EXPLICIT_ARGS): New.
447 (TEMPLATE_PARM_PARAMETER_PACK): New.
448 (TEMPLATE_TYPE_PARAMETER_PACK): New.
449 (ARGUMENT_PACK_SELECT_FROM_PACK): New.
450 (ARGUMENT_PACK_SELECT_INDEX): New.
451 (ARGUMENT_PACK_SELECT_ARG): New.
452 (struct cp_declarator): Add parameter_pack_p flag.
453 (maybe_warn_variadic_templates): Declare.
454 (process_template_parm): Add bool parameter IS_PARAMETER_PACK, to
455 indicate a template parameter pack.
456 (uses_parameter_packs): Declare.
457 (template_parameter_pack_p): Declare.
458 (template_parms_variadic_p): Declare.
459 (make_pack_expansion): Declare.
460 (check_for_bare_parameter_packs): Declare.
461 * cxx-pretty-print.c (pp_cxx_unary_expression): Print
462 sizeof... expressions.
463 (pp_cxx_expression): Print pack expansions and non-type argument
465 (pp_cxx_exception_specification): Print pack expansions.
466 (pp_cxx_direct_declarator): Print ellipsis for parameter packs.
467 (pp_cxx_ctor_initializer): Print pack expansions.
468 (pp_cxx_type_id): Print pack expansions.
469 (pp_cxx_template_argument_list): Print argument packs.
470 (pp_cxx_template_parameter): Print ellipsis for template parameter
472 * pt.c (comp_template_parms): Compare template parameter packs.
473 (template_parameter_pack_p): New.
474 (template_parms_variadic_p): New.
475 (template_args_variadic_p): New.
476 (make_ith_pack_parameter_name): New.
477 (struct find_parameter_pack_data): New.
478 (find_parameter_packs_r): New.
479 (uses_parameter_packs): New.
480 (make_pack_expansion): New.
481 (check_for_bare_parameter_packs): New.
482 (expand_template_argument_pack): New.
483 (reduce_template_parm_level): Propagate parameter pack flag.
484 (process_template_parm): Add is_parameter_pack parameter to state
485 when the parameter is actually a parameter pack. Create template
486 parameter packs when is_parameter_pack is true.
487 (current_template_args): The argument for a template parameter
488 pack is an argument pack containing a single pack expansion.
489 (process_partial_specialization): When checking that non-type
490 argument expressions do not involve template parameters, loop over
491 the arguments in argument packs separately.
492 (push_template_decl_real): Check that the type of the declaration
493 does not have any bare parameter packs. Check that primary
494 templates have no more than one parameter pack, and that it comes
495 at the end of the template parameter list.
496 (convert_template_argument): Handle coercions for pack expansion
497 expressions by coercing the pattern then rebuilding the expansion.
498 (coerce_template_parms): When coercing the arguments for a
499 variadic template, pack "extra" arguments into an argument pack.
500 (coerce_template_template_parms): Cannot coerce between parameter
501 packs and non-pack parameters.
502 (template_args_equal): Compare PACK_EXPANSION_P expressions.
503 (comp_template_args): Expand all template arguments packs before
504 comparing template argument lists.
505 (mangle_class_name_for_template): Make argument packs as separate
507 (for_each_template_parm_r): No need to handle BASELINK.
508 (instantiate_class_template): Handle pack expansions in the base
510 (tsubst_pack_expansion): New.
511 (tsubst_template_args): Handle substitutions of argument packs and
512 pack expansion into template argument lists.
513 (tsubst_decl): Expand function parameter packs into separate
515 (tsubst_arg_types): Expand a type pack expansion into separate
517 (tsubst_exception_specification): Handle pack expansions in
518 exception specifiers.
519 (tsubst): See through ARGUMENT_PACK_SELECT arguments when
520 replacing a template parameter with its argument. If we encounter
521 a substitution for an argument pack, just return the parameter
523 (tsubst_copy): sizeof(X...) returns the number of elements in
524 parameter pack X. See through ARGUMENT_PACK_SELECT when the
525 PARM_DECL is a parameter pack.
526 (tsubst_expr): Expression pack expansions and argument packs
527 cannot show up here; they will all be handled through function
528 calls, sizeof, and template argument lists.
529 (tsubst_copy_and_build): sizeof(X...) returns the number of
530 elements in parameter pack X. Handle pack expansions in TREE_LIST
531 and CONSTRUCTOR nodes.
532 (fn_type_unification): Handle "incomplete" explicit template
533 argument lists that specify some of the arguments for a template
535 (type_unification_real): Unify arguments against pack expansions.
536 (template_parm_level_and_index): New, helper function.
537 (unify_pack_expansion): New.
538 (unify): Unify argument packs on an argument-by-argument basis,
539 handling variadic argument packs as well.
540 (more_specialized_fn): Handle unification of function parameter
541 packs. All things being equal, prefer non-variadic function
542 templates to variadic function templates.
543 (more_specialized_class): Prefer the variadic class template
544 partial specialization that binds fewer arguments to a parameter
546 (regenerate_decl_from_template): Expand function parameter packs
547 into separate parameters.
548 (instantiate_decl): Ditto.
549 (tsubst_initializer_list): Handle pack expansions for base-class
551 (dependent_type_p_r): Determine dependent types in argument packs
553 (value_dependent_expression_p): Determine value-dependence of
554 non-type argument packs.
555 (dependent_template_arg_p): Handle argument packs.
556 * semantics.c (finish_cond): Check for bare parameter packs.
557 (finish_expr_stmt): Ditto.
558 (finish_for_expr): Ditto.
559 (finish_switch_cond): Ditto.
560 (finish_mem_initializers): Ditto.
561 * name-lookup.c (arg_assoc_type): Handle pack expansions and
563 * decl2.c (cp_build_parm_decl): Mark function parameter packs.
564 * parser.c (make_declarator): Declarator is not an expansion.
565 (make_pointer_declarator): Transfer parameter pack flag to outer
567 (make_reference_declarator): Ditto.
568 (make_ptrmem_declarator): Ditto.
569 (make_call_declarator): Ditto.
570 (make_array_declarator): Ditto.
571 (cp_parser_postfix_expression): Allow pack expansion expressions
572 in the argument list for a call expression.
573 (cp_parser_parenthesized_expression_list): Add new parameter
574 ALLOW_EXPANSION_P. When true, parse the ellipsis to mean "expand
575 into separate arguments."
576 (cp_parser_new_placement): Allow pack expansion expressions.
577 (cp_parser_new_initializer): Ditto.
578 (cp_parser_mem_initializer_list): Allow ellipsis to create a
579 base-class initializer expansion.
580 (cp_parser_mem_initializer): Ditto.
581 (cp_parser_template_parameter_list): Keep track of whether the
582 template parameter is a template parameter pack.
583 (cp_parser_template_parameter): Parse the ellipsis to indicate a
584 template parameter pack.
585 (cp_parser_type_parameter): Ditto.
586 (cp_parser_template_argument_list): Parse the ellipsis to indicate
588 (cp_parser_direct_declarator): Parse the ellipsis to indicate that
589 this declarator is a parameter pack.
590 (cp_parser_parameter_declaration): The ellipsis does not end the
591 parameter declaration, because it might be a parameter pack. Parse
592 the ellipsis to indicate a parameter pack.
593 (cp_parser_initializer): Allow pack expansions.
594 (cp_parser_initializer_list): Allow ellipsis to create an
595 initializer expansion.
596 (cp_parser_base_clause): Allow ellipsis to create a base specifier
598 (cp_parser_type_id_list): Allow ellipsis to create an exception
600 (cp_parser_attribute_list): Don't allow pack expansions.
601 (cp_parser_functional_cast): Allow pack expansions.
602 (cp_parser_sizeof_operand): Allow ellipsis following "sizeof" to
603 compute the length of a parameter pack.
604 (cp_parser_next_token_ends_template_argument_p): An ellipsis can
605 end a template argument.
606 * tree.c (cp_walk_subtrees): Walk BASELINK, TYPE_ARGUMENT_PACK,
607 NONTYPE_ARGUMENT_PACK, TYPE_PACK_EXPANSION, EXPR_PACK_EXPANSION,
610 2007-03-09 Dirk Mueller <dmueller@suse.de>
612 * cp/call.c (build_new_op): Call warn_logical_operator.
614 2007-03-08 Volker Reichelt <reichelt@netcologne.de>
617 * semantics.c (finish_offsetof): Handle COMPOUND_EXPR.
620 * pt.c (any_template_arguments_need_structural_equality_p):
623 2007-03-08 Alexandre Oliva <aoliva@redhat.com>
625 * decl.c (grokdeclarator): Disable warnings for anonymous
628 2007-03-05 Volker Reichelt <reichelt@netcologne.de>
630 * typeck2.c (readonly_error): Always emit a hard error.
631 Remove last argument.
632 * cp-tree.h (readonly_error): Adjust prototype.
633 * semantics.c (finish_asm_stmt): Adjust call to readonly_error.
634 * typeck.c (build_unary_op): Likewise.
635 (build_modify_expr): Likewise.
637 2007-03-04 Simon Martin <simartin@users.sourceforge.net>
640 * tree.c (cp_tree_equal): Properly handle COMPLEX_CST trees.
642 2007-03-03 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
645 * parser.c (struct cp_parser): New IN_IF_STMT.
646 (cp_parser_statement_seq_opt): Handle an unexpected 'else',
647 returning if parsing the body of an 'if' statement or issuing an
648 error and continuing.
649 (cp_parser_selection_statement): Set IN_IF_STMT bit when parsing
651 (cp_parser_jump_statement): Mask new IN_IF_STMT bit.
653 2007-03-02 Simon Martin <simartin@users.sourceforge.net>
656 * class.c (update_vtable_entry_for_fn): Properly handle invalid overriders
659 2007-03-02 Geoffrey Keating <geoffk@apple.com>
661 * g++spec.c (lang_specific_driver): Add -lstdc++ when compiling
662 Objective-C++. Don't exit early if -shared-libgcc needs to be
665 2007-03-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
667 * typeck.c (common_base_type): Delete unused function.
669 2007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
671 * Make-lang.in: Add dummy lang.install-pdf target.
673 2007-03-01 Simon Baldwin <simonb@google.com>
676 * decl.c (check_tag_decl): Added new warning for typedef ignored
677 when it precedes an otherwise valid non-typedef declaration.
679 2007-02-28 Sandra Loosemore <sandra@codesourcery.com>
681 * typeck.c (build_function_call): Store converted arguments
682 in a stack-allocated array instead of building a list.
683 (convert_arguments): Store arguments in the array passed in as an
684 argument, and return the actual number of arguments.
685 * call.c (build_call): Delete, and replace with...
686 (build_call_n, build_call_a): New.
687 (build_op_delete_call): Rewrite to avoid constructing argument lists.
688 (build_over_call): Store converted arguments in a stack-allocated
689 array instead of building a list.
690 (build_cxx_call): Pass arguments in an array instead of as a list.
691 (build_java_interface_fn_ref): Rewrite to avoid constructing
693 * tree.h: Update declarations to reflect above changes.
694 * method.c (use_thunk): Use a stack-allocated array to hold
695 the arguments instead of a list.
696 * rtti.c (throw_bad_cast): Update call to cxx_call.
697 (throw_bad_typeid): Likewise.
698 (build_dynamic_cast_1): Likewise.
699 * init.c (build_builtin_delete_call): Use build_call_n.
700 * decl.c (expand_static_init): Likewise.
701 * except.c (cp_protect_cleanup_actions): Likewise.
702 * cp-gimplify.c (genericize_eh_spec_block): Likewise.
703 (gimplify_must_not_throw_expr): Likewise.
704 (cxx_omp_apply_fn): Use build_call_a.
706 2007-02-26 Mark Mitchell <mark@codesourcery.com>
708 * semantics.c (expand_or_defer_fn): Call c_record_cdtor_fn.
709 * decl2.c (cp_write_gloabl_declarations): Call c_build_cdtor_fns.
711 2007-02-25 Mark Mitchell <mark@codesourcery.com>
713 * cp-tree.h (static_ctors): Remove.
714 * cp-tree.h (static_dtors): Likewise.
715 * cp-objcp-common.c (decl_shadowed_for_var_lookup): Adjust for
716 refactoring of tree_map hierarchy.
717 (decl_shadowed_for_var_insert): Likewise.
718 * semantics.c (expand_body): Use c_expand_body.
719 (expand_or_defer_fn): Don't update static_ctors or static_dtors.
720 * decl2.c (static_ctors): Remove.
721 (static_dtors): Likewise.
722 (generate_ctor_or_dtor_function): Pass NULL_TREE to
723 objc_generate_static_init_call. Do not call static_[cd]tors.
724 (generate_ctor_and_dtor_functions_for_priority): Do not check for
726 (cp_write_global_declarations): Likewise.
728 2007-02-23 Richard Guenther <rguenther@suse.de>
730 * class.c (note_name_declared_in_class): Make declaration
731 changes meaning a pedwarn.
733 2007-02-22 Michael Matz <matz@suse.de>
736 * cp-tree.h (TFF_UNQUALIFIED_NAME): New formatting flag.
737 * error.c (dump_aggr_type, dump_simple_decl, dump_decl,
738 dump_function_decl): Guard emitting outer scopes by new flag.
739 * cp-lang.c (cxx_dwarf_name): New function.
740 (LANG_HOOKS_DWARF_NAME): Define to cxx_dwarf_name.
741 * pt.c (classtype_mangled_name, mangle_class_name_for_template):
743 (push_template_decl_real, lookup_template_class): Remove calls
746 2007-02-19 Mark Mitchell <mark@codesourcery.com>
748 * call.c (build_new_method_call): Ensure that explicit calls of
749 destructors have type "void".
751 2007-02-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
753 * typeck.c (build_binary_op): Replace -Wstring-literal-comparison
754 and -Walways-true with -Waddress.
755 * cvt.c (convert_to_void): Replace unconditional warning with
758 2007-02-18 Kazu Hirata <kazu@codesourcery.com>
760 * decl.c, tree.c: Fix comment typos.
762 2007-02-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
765 * semantics.c (finish_stmt_expr_expr): Set TREE_TYPE of the
766 statement expression if we had an error mark node.
768 2007-02-15 Sandra Loosemore <sandra@codesourcery.com>
769 Brooks Moses <brooks.moses@codesourcery.com>
770 Lee Millward <lee.millward@codesourcery.com>
772 * cp-tree.def (AGGR_INIT_EXPR): Adjust documentation.
773 Change class to tcc_vl_exp.
775 * call.c (build_call): Use build_call_list instead
777 (build_over_call): Likewise.
778 (build_new_method_call): Use build_min_non_dep_call_list
779 instead of build_min_non_dep.
781 * error.c (dump_call_expr_args): New function.
782 (dump_aggr_init_expr_args): New function.
783 (dump_expr) <AGGR_INIT_EXPR, CALL_EXPR, INDIRECT_REF>: Use them.
784 Update to use new CALL_EXPR and AGGR_INIT_EXPR accessor macros.
786 * cvt.c (convert_to_void): Use build_call_array instead
787 of build3; use new AGGR_INIT_EXPR accessor macros.
789 * mangle.c (write_expression): Use TREE_OPERAND_LENGTH
790 instead of TREE_CODE_LENGTH.
792 * dump.c (cp_dump_tree) <AGGR_INIT_EXPR>: Update to use new
793 AGGR_INIT_EXPR accessor macros.
795 * cp-gimplify.c (cp_gimplify_init_expr): Use
796 AGGR_INIT_EXPR_SLOT to set the slot operand.
798 * cp-tree.h (AGGR_INIT_EXPR_FN): New macro.
799 (AGGR_INIT_EXPR_SLOT): New macro.
800 (AGGR_INIT_EXPR_ARG): New macro.
801 (aggr_init_expr_nargs): New macro.
802 (AGGR_INIT_EXPR_ARGP): New macro.
803 (aggr_init_expr_arg_iterator): New.
804 (init_aggr_init_expr_arg_iterator): New.
805 (next_aggr_init_expr_arg): New.
806 (first_aggr_init_expr_arg): New.
807 (more_aggr_init_expr_args_p): New.
808 (FOR_EACH_AGGR_INIT_EXPR_ARG): New.
809 (stabilize_aggr_init): New declaration.
810 (build_min_non_dep_call_list): Likewise.
812 * tree.c (process_aggr_init_operands): New function.
813 (build_aggr_init_array) New function.
814 (build_cplus_new): Update to use new CALL_EXPR and
815 AGGR_INIT_EXPR accessor macros. Replace use of build3 with
816 build_aggr_init_array.
817 (build_min_non_dep_call_list) New function.
818 (build_min_nt): Assert input code parameter is not a variable
819 length expression class.
820 (build_min, build_min_non_dep): Likewise.
821 (cp_tree_equal) <CALL_EXPR>: Iterate through the arguments
822 to check for equality instead of recursing. Handle tcc_vl_exp
824 (stabilize_call): Update to only handle CALL_EXPRs, not
825 AGGR_INIT_EXPRs; use new CALL_EXPR accessor macros.
826 (stabilize_aggr_init): New function.
827 (stabilize_init): Use it.
829 * cxx-pretty-print.c (pp_cxx_postfix_expression)
830 <AGGR_INIT_EXPR, CALL_EXPR>: Update to use new CALL_EXPR and
831 AGGR_INIT_EXPR accessor macros and argument iterators.
833 * pt.c (tsubst_copy) <CALL_EXPR>: Replace build_nt with
834 build_vl_exp. Iterate through the operands, recursively
836 (tsubst_copy_and_build) <CALL_EXPR>: Update to use new
837 CALL_EXPR accessor macros.
838 (value_dependent_expression_p) <default>: Handle tcc_vl_exp
839 tree code classes. Use TREE_OPERAND_LENGTH instead of
842 * semantics.c (finish_call_expr): Use build_nt_call_list
844 (simplify_aggr_init_expr): Update to use new AGGR_INIT_EXPR
845 accessor macros. Use build_call_array to construct the
846 CALL_EXPR node instead of build3
848 * decl2.c (build_offset_ref_call_from_tree): Use
849 build_nt_call_list and build_min_non_dep_call_list instead
850 of build_min_nt and build_min_non_dep.
852 * parser.c (cp_parser_postfix_expression) <CPP_OPEN_PAREN>:
853 Use build_nt_call_list instead of build_min_nt.
855 2007-02-15 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
858 * call.c (build_conditional_expr): Improve error message.
860 2007-02-13 Dirk Mueller <dmueller@suse.de>
862 * friend.c (do_friend): Annotate warning about friend
863 declarations in templates with OPT_Wnon_template_friend.
864 Convert informal message from warning() to inform().
866 2007-02-12 Simon Martin <simartin@users.sourceforge.net>
867 Mark Mitchell <mark@codesourcery.com>
870 * pt.c (do_decl_instantiation): Detect type mismatches in explicit
871 instantiations for variables.
873 2007-02-12 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
876 * cp-gimplify.c (gimplify_expr_stmt): Don't check extra_warnings.
877 Check warn_unused_value just once.
879 2007-02-11 Mark Mitchell <mark@codesourcery.com>
882 * pt.c (determine_specialization): Use skip_artificial_parms_for.
883 (fn_type_unificiation): Likewise.
884 (get_bindings): Likewise.
886 o2007-02-06 Mark Mitchell <mark@codesourcery.com>
889 * decl.c (finish_function): Use DECL_REPLACEABLE.
890 * tree.c (cp_cannot_inline_tree_fn): Likewise.
892 2007-02-10 Gabriel Dos Reis <gdr@integrable-solutions.net>
894 * parser.c (cp_parser_primary_expression): Reformat overly long lines.
896 2007-02-10 Richard Henderson <rth@redhat.com>, Jakub Jelinek <jakub@redhat.com>
898 * decl.c (grokvardecl): Don't error if !have_tls.
899 (grokdeclarator): Likewise.
900 * parser.c (cp_parser_omp_threadprivate): Likewise.
902 2007-02-07 Jakub Jelinek <jakub@redhat.com>
905 * cp-gimplify.c (cp_genericize_r): Don't dereference invisiref
906 parameters and result decls in omp clauses.
907 (cxx_omp_privatize_by_reference): Pass also invisiref PARM_DECLs
910 2007-02-05 Dirk Mueller <dmueller@suse.de>
913 * parser.c (cp_parser_class_specifier): Always initialize bases.
915 2007-02-05 Paolo Bonzini <bonzini@gnu.org>
917 * cp-tree.h (OMP_ATOMIC_CODE): Delete.
918 (OMP_ATOMIC_DEPENDENT_P): Rewrite.
919 * pt.c (tsubst_expr): Adjust for new format of dependent OMP_ATOMIC
921 * semantics.c (finish_omp_atomic): Store a whole expression node
922 in operand 1, and integer_zero_node in operand 0, for dependent
923 OMP_ATOMIC. Rewrite to make flow easier to understand.
925 2007-02-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
927 * decl.c (grokdeclarator): Use OPT_Wreturn_type instead of 0.
929 2007-02-04 Kazu Hirata <kazu@codesourcery.com>
931 * class.c, cp-tree.h, decl.c, decl2.c, g++spec.c, init.c,
932 parser.c, pt.c, tree.c, typeck.c: Follow spelling conventions.
934 2007-02-03 Douglas Gregor <doug.gregor@gmail.com>
936 * parser.c (cp_lexer_get_preprocessor_token): Attach the C++0x
937 keyword warning to -Wc++0x-compat.
939 2007-02-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
941 * decl.c (grokdeclarator): Update documentation.
943 2007-02-02 Jakub Jelinek <jakub@redhat.com>
946 * decl.c (grokdeclarator): If __thread is used together with
947 a storage class other than extern and static, clear thread_p
948 after issuing diagnostics and fall through to checking the
951 2007-01-30 Roger Sayle <roger@eyesopen.com>
953 * error.c (dump_type_suffix): Avoid use of cp_build_binary_op when
954 calculating the size of an array (to avoid recursive errors).
956 2007-01-30 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
959 * typeck.c (build_binary_op): Fix logic for warning. Move warning
961 * call.c (convert_like_real): Don't warn when converting to
964 2007-01-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
966 * decl.c (pop_label): Replace warning with call to
967 warn_for_unused_label.
969 2007-01-28 Andrew Pinski <pinskia@gmail.com>
972 * semantics.c (finish_pseudo_destructor_expr): Check the
973 destrutor name by calling check_dtor_name.
975 2007-01-24 Douglas Gregor <dgregor@osl.iu.edu>
977 * lex.c (D_CPP0X): Rename.
979 (reswords): D_CPP0X -> D_CXX0X.
980 (init_reswords): Ditto.
981 * parser.c (cp_lexer_get_preprocessor_token): Warn about the use
982 of C++0x keywords as identifiers.
984 2007-01-23 Simon Martin <simartin@users.sourceforge.net>
987 * decl.c (duplicate_decls): Don't reset DECL_INVALID_OVERRIDER_P for
990 2007-01-23 Ian Lance Taylor <iant@google.com>
992 * typeck.c (convert_for_assignment): Only warn about a = b = c
993 when converting to bool.
995 2007-01-23 Roger Sayle <roger@eyesopen.com>
997 * call.c (null_ptr_cst_p): Replace use of TREE_CONSTANT_OVERFLOW with
999 * typeck.c (ignore_overflows): Remove the remaining uses of
1000 TREE_CONSTANT_OVERFLOW.
1002 2007-01-20 Jan Hubicka <jh@suse.cz>
1004 * decl2.c (start_objects, start_static_storage_duration_function):
1005 Do not make the functions uninlinable.
1007 2007-01-17 Ian Lance Taylor <iant@google.com>
1009 * class.c (add_method): Call VEC_reserve_exact rather than passing
1010 a negative size to VEC_reserve.
1012 2007-01-11 Simon Martin <simartin@users.sourceforge.net>
1015 * tree.c (cp_tree_equal): Properly handle MODOP_EXPR trees.
1017 2007-01-10 Mark Mitchell <mark@codesourcery.com>
1020 * decl.c (make_typename_type): If the qualified name is not a
1021 type, issue an error.
1022 * parser.c (cp_parser_elaborated_type_specifier): Fix comment
1025 2007-01-08 Geoffrey Keating <geoffk@apple.com>
1027 * rtti.c: Include target.h.
1028 (emit_support_tinfos): If ! targetm.cxx.library_rtti_comdat (),
1029 don't emit typeinfo for fundamental types as weak.
1030 * Make-lang.in (cp/rtti.o): Update and correct dependencies.
1032 2007-01-08 Richard Guenther <rguenther@suse.de>
1034 * cvt.c (cp_convert_to_pointer): Use build_int_cst_type.
1036 2007-01-08 Mark Shinwell <shinwell@codesourcery.com>
1038 * call.c (standard_conversion): Pass flag to
1039 vector_types_convertible_p to disallow emission of note.
1040 * typeck.c (convert_for_assignment): Pass flag to
1041 vector_types_convertible_p to allow emission of note.
1042 (ptr_reasonably_similar): Pass flag to vector_types_convertible_p
1043 to disallow emission of note.
1045 2007-01-07 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1048 * typeck.c (build_binary_op): Call overflow_warning if
1049 TREE_OVERFLOW_P is true for the result and not for any of the
1052 2007-01-06 Lee Millward <lee.millward@codesourcery.com>
1055 * class.c (add_method): Don't wait until template
1056 instantiation time to complain about duplicate methods.
1058 2007-01-05 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1061 * semantics.c (finish_unary_op_expr): Warn only if result
1062 overflowed and operands did not.
1064 2007-01-05 Ian Lance Taylor <iant@google.com>
1066 * typeck.c (build_binary_op): Warn about comparing a non-weak
1069 2007-01-05 Douglas Gregor <doug.gregor@gmail.com>
1071 * pt.c (tsubst): Propagate the need for structural equality checks
1072 when reducing the level of template parameters.
1074 2007-01-03 Kazu Hirata <kazu@codesourcery.com>
1076 * pt.c: Fix a comment typo.
1078 2006-01-02 Ian Lance Taylor <iant@google.com>
1080 * semantics.c (maybe_convert_cond): Optionally warn when using an
1081 assignment as a condition.
1082 * typeck.c (convert_for_assignment): Optionally warn about
1083 assigning the result of an assignment to a bool.
1085 2007-01-02 Douglas Gregor <doug.gregor@gmail.com>
1087 * pt.c (canonical_template_parms): Correct typo in comment.
1089 2007-01-02 Douglas Gregor <doug.gregor@gmail.com>
1091 * typeck.c (structural_comptypes): Renamed from "comptypes".
1092 (comptypes): Use canonical type information to perform fast type
1093 comparison. When VERIFY_CANONICAL_TYPES, verify that the
1094 canonical type comparison returns the same results as we would see
1095 from the current, structural check. Support COMPARE_STRUCTURAL
1096 when we need structural checks.
1097 * decl.c (typename_compare): Fix comment.
1098 (build_typename_type): TYPENAME_TYPE nodes require structural
1099 equality checks, because they resolve different based on the
1101 (make_unbound_class_template): UNBOUND_CLASS_TEMPLATE nodes
1102 require structural equality checks (for now).
1103 (build_ptrmemfunc_type): Build the canonical pointer to member
1105 (compute_array_index_type): Whenever we build a new index type
1106 to represent the size of an array in a template, we need to mark
1107 this index type as requiring structural equality. This goes for
1108 arrays with value-dependent sizes with the current ABI, or all
1110 * tree.c (cplus_array_hash): New.
1111 (struct cplus_array_info): New.
1112 (cplus_array_compare): New.
1113 (cplus_array_htab): New.
1114 (build_cplus_array_type_1): Use a hash table to cache the array
1115 types we build. Build the canonical array type for each array
1117 (cp_build_qualified_type_real): When building a cv-qualified array
1118 type, use the hash table of array types and build canonical array
1120 (bind_template_template_parm): BOUND_TEMPLATE_TEMPLATE_PARM nodes
1121 use structural equality (for now).
1122 * cp-tree.h (COMPARE_STRUCTURAL): New.
1123 * pt.c (canonical_template_parms): New.
1124 (canonical_type_parameter): New.
1125 (process_template_parm): Find the canonical type parameter.
1126 (lookup_template_class): When we have named the primary template
1127 type, set the canonical type for our template class to the primary
1128 template type. If any of the template arguments need structural
1129 equality checks, the template class needs structural equality
1131 (tsubst): When reducing the level of a template template
1132 parameter, we require structural equality tests for the resulting
1133 parameter because its template parameters have not had their types
1134 canonicalized. When reducing a template type parameter, find the
1135 canonical reduced type parameter.
1136 (any_template_arguments_need_structural_equality_p): New.
1138 2006-12-31 Simon Martin <simartin@users.sourceforge.net>
1141 * parser.c (cp_parser_primary_expression): Return error_mark_node when
1142 a statement-expression is found outside of a function body.
1144 2006-12-28 Kazu Hirata <kazu@codesourcery.com>
1146 * cp-tree.h (TYPE_NAMESPACE_SCOPE_P, TYPE_FUNCTION_SCOPE_P):
1149 * decl2.c: Fix a comment typo.
1151 2006-12-21 Andrew Pinski <pinskia@gmail.com>
1154 * decl.c (cxx_builtin_function): Only copy the decl if adding
1155 it to the std namespace.
1157 2006-12-21 Andrew Pinski <pinskia@gmail.com>
1160 * optimize.c (update_cloned_parm): Copy DECL_GIMPLE_REG_P also.
1162 2006-12-22 Kazu Hirata <kazu@codesourcery.com>
1164 * decl.c: Fix a coment typo.
1166 2006-12-18 Ian Lance Taylor <iant@google.com>
1168 * decl.c (start_preparsed_function): Add support for
1169 -Wmissing-declarations.
1171 2006-12-16 Simon Martin <simartin@users.sourceforge.net>
1174 * cp-tree.h (struct deferred_access_check): New structure to represent a
1175 deferred access check. It replaces the previous representation as a tree.
1176 (get_deferred_access_checks): Return a vector of struct
1177 deferred_access_check instead of a tree list.
1178 (perform_access_checks): Take a vector of struct deferred_access_check
1179 instead of a tree list.
1180 * semantics.c (struct deferred_access): Store the deferred access checks
1181 as a vector of struct deferred_access_check instead of a tree list.
1182 (push_deferring_access_checks): Handle the change in struct
1184 (get_deferred_access_checks): Likewise.
1185 (pop_to_parent_deferring_access_checks): Likewise.
1186 (perform_or_defer_access_check): Likewise.
1187 (perform_access_checks): Take a vector of struct deferred_access_check
1188 instead of a tree list.
1189 * parser.c (struct tree_check): New structure to store various data
1190 associated with a CPP_NESTED_NAME_SPECIFIER or CPP_TEMPLATE_ID token.
1191 (struct cp_token): Changed the value field to be a union with a pointer to
1192 a struct tree_check for CPP_NESTED_NAME_SPECIFIER or CPP_TEMPLATE_ID
1193 tokens and a tree field for all other tokens.
1194 (eof_token): Adjusted due to the change in struct cp_token.
1195 (cp_lexer_get_preprocessor_token): Likewise.
1196 (cp_lexer_purge_token): Likewise.
1197 (cp_lexer_purge_tokens_after): Likewise.
1198 (cp_lexer_print_token): Likewise.
1199 (cp_parser_error): Likewise.
1200 (cp_parser_identifier): Likewise.
1201 (cp_parser_string_literal): Likewise.
1202 (cp_parser_primary_expression): Likewise.
1203 (cp_parser_unqualified_id): Likewise.
1204 (cp_parser_parenthesized_expression_list): Likewise.
1205 (cp_parser_storage_class_specifier_opt): Likewise.
1206 (cp_parser_function_specifier_opt): Likewise.
1207 (cp_parser_type_specifier): Likewise.
1208 (cp_parser_simple_type_specifier): Likewise.
1209 (cp_parser_initializer_list): Likewise.
1210 (cp_parser_member_specification_opt): Likewise.
1211 (cp_parser_attribute_list): Likewise.
1212 (cp_parser_objc_expression): Likewise.
1213 (cp_parser_objc_protocol_qualifiers): Likewise.
1214 (cp_parser_objc_selector): Likewise.
1215 (cp_parser_objc_declaration): Likewise.
1216 (cp_parser_objc_statement): Likewise.
1217 (cp_parser_omp_clause_name): Likewise.
1218 (cp_parser_omp_clause_default): Likewise.
1219 (cp_parser_omp_clause_schedule): Likewise.
1220 (cp_parser_omp_parallel): Likewise.
1221 (cp_parser_initial_pragma): Likewise.
1222 (pragma_lex): Likewise.
1223 (cp_parser_pre_parsed_nested_name_specifier): Likewise.
1224 (cp_parser_nested_name_specifier_opt): Likewise.
1225 Use cp_token::u::tree_check_value to save the token's value, the
1226 associated deferred checks and its qualifying scope.
1227 (cp_parser_template_id): Likewise.
1228 (cp_parser_template_declaration_after_export): Adjusted the call to
1229 get_deferred_access_checks.
1230 (cp_parser_init_declarator): Take the access checks as a vector of struct
1231 deferred_access_check instead of a tree list.
1232 (cp_parser_single_declaration): Likewise.
1233 (cp_parser_perform_template_parameter_access_checks): Likewise.
1234 (cp_parser_simple_declaration): Adjusted the call to
1235 cp_parser_init_declarator.
1236 (cp_parser_explicit_specialization): Adjusted the call to
1237 cp_parser_single_declaration.
1239 2006-12-13 Ian Lance Taylor <iant@google.com>
1243 * parser.c (cp_parser_expression_stack_entry): Add field
1245 (cp_parser_binary_expression): Track tree code of left hand side
1246 of expression. Use it when calling build_x_binary_op.
1247 (cp_parser_selection_statement): Add if_p parameter. Change all
1248 callers. Warn about ambiguous else.
1249 (cp_parser_statement): Add if_p parameter. Change all callers.
1250 (cp_parser_implicitly_scoped_statement): Likewise.
1251 * typeck.c (build_x_binary_op): Add parameters arg1_code and
1252 arg2_code. Change all callers. Call warn_about_parentheses.
1253 * cp-tree.h (build_x_binary_op): Update declaration.
1255 2006-12-12 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1257 * decl.c (build_enumerator): Update error message to match C
1260 2006-12-11 Jan Hubicka <jh@suse.cz>
1262 * decl2.c (var_finalized_p): Update for renamed varpool functions.
1264 2006-12-09 Zack Weinberg <zackw@panix.com>
1266 * parser.c (yydebug, enum pragma_omp_clause): Delete.
1268 2006-12-07 Mark Mitchell <mark@codesourcery.com>
1271 * cp-tree.h (DECL_USE_TEMPLATE): Mention partial specializations.
1272 (explicit_class_specialization_p): Declare.
1273 * pt.c (explicit_class_specialization_p): New function.
1274 * parser.c (cp_parser_init_declarator): Check correct number of
1275 template parameters for in-class function definitions.
1276 (cp_parser_check_declrator_template_parameters): Stop looking for
1277 template classes when we find an explicit specialization.
1279 2006-12-07 Lee Millward <lee.millward@codesourcery.com>
1282 * cp_parser_elaborated_type_specifier: Check
1283 the return value of check_elaborated_type_specifier.
1285 2006-12-06 Mark Mitchell <mark@codesourcery.com>
1288 * parser.c (cp_parser_init_declarator): Reject initialization of
1291 2006-12-05 Mark Mitchell <mark@codesourcery.com>
1294 * decl2.c (check_member_template): Move check for member
1295 templates in local classes to ...
1296 * parser.c (cp_parser_template_declaration_after_export):
1300 * decl.c (check_array_designated_initializer): New function.
1301 (maybe_deduce_size_from_array_init): Use it.
1302 (reshape_init_array): Likewise.
1304 2006-12-05 Aldy Hernandez <aldyh@redhat.com>
1306 Merge from gimple-tuples-branch.
1308 2006-10-05 Aldy Hernandez <aldyh@redhat.com>
1310 * cp-gimplify.c (cp_gimplify_expr): Adjust for GIMPLE_MODIFY_STMT.
1311 (cxx_omp_clause_apply_fn): Adjust for GIMPLE_MODIFY_STMT.
1312 (cxx_omp_clause_copy_ctor): Same.
1313 (cxx_omp_clause_assign_op): Same.
1315 2006-09-28 Aldy Hernandez <aldyh@redhat.com>
1317 * cp-tree.h (union lang_tree_node): Gimple statements do not
1319 (TREE_INDIRECT_USING): Look in base.
1321 2006-12-04 Jan Hubicka <jh@suse.cz>
1323 * cp-objcp-common.c (cp_expr_size): Return NULL in the case
1326 2006-12-04 Mark Mitchell <mark@codesourcery.com>
1329 * pt.c (tsubst_decl): Disallow variables of function type.
1332 * call.c (add_builtin_candidate): Do not permit NULL pointer
1333 constants to be compared with template parameters.
1335 2006-12-04 Eric Botcazou <ebotcazou@adacore.com>
1337 * pt.c (for_each_template_parm_r) <INTEGER_TYPE>: New case.
1338 Call for_each_template_parm on TYPE_MIN_VALUE and TYPE_MAX_VALUE.
1340 2006-12-03 Richard Henderson <rth@redhat.com>
1341 Andrew Pinski <pinskia@gmail.com>
1344 * error.c (cp_printer) <'D'>: Handle DECL_DEBUG_EXPR.
1346 2006-12-02 Andrew Pinski <andrew_pinski@playstation.sony.com>
1349 * decl.c (cp_tree_node_structure): Handle STATIC_ASSERT.
1351 2006-12-02 Kazu Hirata <kazu@codesourcery.com>
1353 * name-lookup.c: Follow spelling conventions.
1355 2006-12-01 Geoffrey Keating <geoffk@apple.com>
1357 * decl.c (poplevel): Check DECL_INITIAL invariant.
1358 (duplicate_decls): Preserve DECL_INITIAL when eliminating
1359 a new definition in favour of an old declaration.
1360 (start_preparsed_function): Define and document value of
1361 DECL_INITIAL before and after routine.
1362 (finish_function): Check DECL_INITIAL invariant.
1364 (cp_parser_function_definition_from_specifiers_and_declarator):
1365 Skip duplicate function definitions.
1367 2006-12-01 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1370 * typeck.c (type_after_usual_arithmetic_conversions):
1371 Fix assertion for vector types.
1372 (build_binary_op): Use temporary for inner type of vector types.
1374 2006-12-01 Ryan Mansfield <rmansfield@qnx.com>
1377 * typeck.c (build_binary_op): Fix pointer to member function
1378 comparison for ptrmemfunc_vbit_in_delta targets.
1380 2006-12-01 Dirk Mueller <dmueller@suse.de>
1383 * decl.c (grokdeclarator): Warn for type qualifiers on return
1384 type for non-dependent types.
1385 * pt.c (tsubst_function_type): Warn for type qualifiers on
1386 return type for dependent types.
1388 2006-11-30 Geoffrey Keating <geoffk@apple.com>
1390 * rtti.c (get_tinfo_decl): Handle return value from
1391 pushdecl_top_level_and_finish.
1393 2006-11-29 Lee Millward <lee.millward@codesourcery.com>
1396 * parser.c (cp_parser_class_head): Move processing
1397 of any base classes to...
1398 (cp_parser_class_specifier) ...here. Take an extra
1399 tree* parameter for any base classes. Only process
1400 them if the opening brace was found.
1402 2006-11-28 Jakub Jelinek <jakub@redhat.com>
1405 * decl.c (grokfndecl): Check main's type after applying
1406 attributes, not before.
1408 2006-11-27 Mark Mitchell <mark@codesourcery.com>
1410 * class.c (build_vcall_offset_vtbl_entries): Do not add vcall
1411 entries for a primary construction virtual table.
1413 2006-11-26 Mark Mitchell <mark@codesourcery.com>
1416 * parser.c (cp_parser): Add in_function_body.
1417 (cp_parser_new): Initialize it.
1418 (cp_parser_primary_expression): Use parser->in_function_body
1419 instead of at_function_scope_p.
1420 (cp_parser_asm_definition): Likewise.
1421 (cp_parser_direct_declarator): Likewise.
1422 (cp_parser_class_specifier): Clear parser->in_function_body.
1423 (cp_parser_constructor_declarator_p): Use parser->in_function_body
1424 instead of at_function_scope_p.
1425 (cp_parser_function_body_after_declarator): Set
1426 parser->in_function_body.
1428 2006-11-21 Douglas Gregor <doug.gregor@gmail.com>
1430 * cp-tree.def (STATIC_ASSERT): New.
1431 * cp-objcp-common.c (cp_tree_size): Handle STATIC_ASSERT.
1432 * error.c (dump_decl): Handle STATIC_ASSERT.
1433 * cp-tree.h (STATIC_ASSERT_CONDITION): New.
1434 (STATIC_ASSERT_MESSAGE): New.
1435 (STATIC_ASSERT_SOURCE_LOCATION): New.
1436 (struct tree_static_assert): New.
1437 (enum cp_tree_node_structure_enum): Add TS_CP_STATIC_ASSERT.
1438 (union lang_tree_node): Add static_assertion.
1439 (finish_static_assert): Declare.
1440 * cxx-pretty-print.c (pp_cxx_statement): Handle STATIC_ASSERT.
1441 (pp_cxx_declaration): Handle STATIC_ASSERT.
1442 * pt.c (instantiate_class_template): Handle
1443 STATIC_ASSERT members.
1444 (tsubst_expr): Handle STATIC_ASSERT statements.
1445 * semantics.c (finish_static_assert): New.
1446 * lex.c (D_CPP0X): New.
1447 (reswords): Add static_assert keyword.
1448 (init_reswords): If not flag_cpp0x, mask out C++0x keywords.
1449 * parser.c (cp_parser_block_declaration): Parse static
1451 (cp_parser_static_assert): New.
1452 (cp_parser_member_declaration): Parse static assertions.
1454 2006-11-21 Jakub Jelinek <jakub@redhat.com>
1457 * decl.c (cp_finish_decl): Check for value dependent brace enclosed
1461 * cp-tree.h (WANT_VECTOR): Define.
1462 (WANT_ARITH): Add WANT_VECTOR.
1463 * cvt.c (build_expr_type_conversion): Handle vector types.
1464 * typeck.c (build_unary_op): Add WANT_VECTOR to
1465 build_expr_type_conversion flags.
1467 2006-11-20 Simon Martin <simartin@users.sourceforge.net>
1470 * cp-tree.h (enforce_access, perform_or_defer_access_check): Added an
1471 extra argument that represents the declaration to use to print
1472 potential error messages.
1473 * init.c (build_offset_ref): Adjusted the call to
1474 perform_or_defer_access_check.
1475 * class.c (alter_access, resolve_address_of_overloaded_function):
1477 * decl.c (make_typename_type, make_unbound_class_template): Likewise.
1478 * search.c (lookup_member): Likewise.
1479 * friend.c (add_friend): Likewise.
1480 * parser.c (cp_parser_template_id,
1481 cp_parser_pre_parsed_nested_name_specifier): Likewise.
1482 * semantics.c (finish_non_static_data_member,
1483 check_accessibility_of_qualified_id, finish_id_expression): Likewise.
1484 (pop_to_parent_deferring_access_checks, perform_access_checks,
1485 perform_or_defer_access_check): Adjusted the call to enforce_access.
1486 * call.c (enforce_access): Use the new extra argument to build the
1488 (build_op_delete_call): Adjusted the call to
1489 perform_or_defer_access_check.
1490 (build_over_call): Likewise.
1492 2006-11-16 Dirk Mueller <dmueller@suse.de>
1494 * name-lookup.c (begin_scope): Use GGC_CNEW instead of
1497 2006-11-13 Roger Sayle <roger@eyesopen.com>
1499 * rtti.c (get_pseudo_ti_init): Ensure that the offset field of the
1500 base type info initializer has the correct type.
1502 2006-11-13 Mark Mitchell <mark@codesourcery.com>
1505 * pt.c (coerce_template_parms): Do not skip_evaluation while
1506 substituting template arguments.
1508 2006-11-11 Richard Guenther <rguenther@suse.de>
1510 * typeck.c (build_unary_op): Remove handling of FIX_CEIL_EXPR,
1511 FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
1513 2006-11-03 Roger Sayle <roger@eyesopen.com>
1515 * call.c (build_op_delete_call): Test user-visible type against
1516 size_type_node, instead of against the internal type, sizetype.
1517 * class.c (type_requires_array_cookie): Likewise.
1518 * mangle.c (write_builtin_type) <INTEGER_TYPE>: Remove special
1519 handling of TYPE_IS_SIZETYPE.
1520 * typeck.c (type_after_usual_arithmetic_conversions): Remove
1521 special case handling of TYPE_IS_SIZETYPE.
1522 (comptypes): Likewise.
1524 2006-11-01 Danny Smith <dannysmith@users.sourceforge.net>
1526 * decl.c (get_atexit_node): Reference atexit, not __cxa_exit.
1527 if targetm.cxx.use_atexit_for cxa_atexit.
1528 (start_cleanup_fn): Likewise.
1529 (register_dtor_fn): Likewise.
1531 2006-09-25 Geoffrey Keating <geoffk@apple.com>
1533 * decl2.c (cp_write_global_declarations): Rename from
1535 * cp-lang.c (finish_file): Don't call cp_finish_file.
1536 * cp-tree.h (cp_write_global_declarations): Rename from
1538 * cp-objcp-common.h (LANG_HOOKS_WRITE_GLOBALS): Define to
1539 cp_write_global_declarations.
1541 2006-10-31 Geoffrey Keating <geoffk@apple.com>
1543 * name-lookup.c (get_anonymous_namespace_name): New.
1544 (push_namespace_with_attribs): Use get_anonymous_namespace_name.
1545 * decl2.c (start_objects): Update for rename of
1546 get_file_function_name_long.
1548 2006-10-30 Dirk Mueller <dmueller@suse.de>
1551 * decl.c (grokdeclarator): Duplicate diagnostic message
1552 for easier translation.
1553 * decl.c (grokdeclarator): Fix line-wrapping.
1555 2006-10-30 Dirk Mueller <dmueller@suse.de>
1558 * decl.c (grokfndecl): Use check_main_parameter_types.
1560 2006-10-30 Dirk Mueller <dmueller@suse.de>
1563 * decl.c (grokfndecl): Duplicate warning message for
1566 2006-10-30 Dirk Mueller <dmueller@suse.de>
1568 * typeck.c (build_unary_op): Fix indenting. Use G_().
1570 2006-10-29 Dirk Mueller <dmueller@suse.de>
1573 * typeck.c (build_unary_op): Duplicate warning message
1574 for easier translation.
1576 2006-10-29 Dirk Mueller <dmueller@suse.de>
1579 * typeck.c (build_array_ref): Warn for char subscriptions
1582 2006-10-29 Kazu Hirata <kazu@codesourcery.com>
1584 * decl.c: Fix a comment typo.
1586 2006-10-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
1589 * typeck.c (build_unary_op): Use same_type_p when comparing to
1592 2006-10-29 Dirk Mueller <dmueller@suse.de>
1595 * typeck.c (build_binary_op): Duplicate warning message
1596 for better translation.
1598 2006-10-23 Rafael Avila de Espindola <rafael.espindola@gmail.com>
1600 * decl.c (builtin_function_1): Move common code to
1601 add_builtin_function.
1602 (builtin_function): Rename to cxx_builtin_function.
1603 Change the signature.
1604 * call.c: Include langhooks.h.
1605 (build_java_interface_fn_ref): Replace calls to
1606 builtin_function with add_builtin_function.
1607 * Make-lang.in (cp/call.o): Depend on langhooks.h.
1608 * cp-objcp-common.h (LANG_HOOKS_BUILTIN_FUNCTION): Define as
1609 cxx_builtin_function.
1610 * cp-tree.h (builtin_function): Rename to cxx_builtin_function.
1611 Change the signature.
1613 2006-10-22 Nathan Sidwell <nathan@codesourcery.com>
1616 * rtti.c (tinfo_base_init): The type info string is always global.
1618 2006-10-20 Lee Millward <lee.millward@codesourcery.com>
1619 Mark Mitchell <mark@codesourcery.com>
1622 * decl2.c (grokbitfield): Detect invalid non-integral
1623 types earlier when possible.
1625 2006-10-18 Mark Shinwell <shinwell@codesourcery.com>
1628 * typeck2.c (digest_init): Raise error upon attempts to
1629 initialize arrays with variables.
1631 2006-10-17 Lee Millward <lee.millward@codesourcery.com>
1634 * cp-tree.h (xref_basetypes): Return bool instead of void.
1635 * decl.c (xref_basetypes): Adjust definition. Return false
1636 if the class bases are invalid.
1637 * parser.c (cp_parser_class_head): Check the return value
1638 from xref_basetypes.
1640 2006-10-17 Mark Mitchell <mark@codesourcery.com>
1643 * parser.c (cp_lexer_next_token_is_decl_specifier_keyword): Add
1647 * parser.c (cp_lexer_next_token_is_decl_specifier_keyword): New
1649 (cp_parser_constructor_declarator_p): Use it.
1650 (cp_parser_check_type_definition): Return a value indicating
1651 whether or not the definition is valid.
1652 (cp_parser_enum_specifier): Skip invalid enum definitions.
1654 2006-10-17 Mark Mitchell <mark@codesourcery.com>
1657 * typeck2.c (build_functional_cast): Don't zero-initialize
1658 non-PODs; instead, call their constructors.
1659 * method.c (synthesize_method): Always build mem-initializers, if
1660 we're synthesizing the default constructor.
1662 2006-10-17 Mark Mitchell <mark@codesourcery.com>
1665 * decl.c (reshape_init_class): Move check for designated
1667 * parser.c (cp_parser_initializer_list): ... here.
1668 * pt.c (tsubst_copy_and_build): Use finish_compound_literal.
1670 2006-10-16 Mark Mitchell <mark@codesourcery.com>
1673 * typeck2.c (process_init_constructor_array): Reword comment.
1674 * pt.c (tsubst_copy_and_built): Call reshape_init before calling
1678 * parser.c (cp_parser_using_declaration): Stop parsing when
1679 something goes wrong with an access declaration.
1682 * typeck.c (cxx_sizeof_or_alignof_type): Complete non-dependent
1683 types when their sizes are required. Refine test for VLAs.
1686 * parser.c (cp_parser_template_argument): Don't consider "&var" a
1687 possible constant-expression.
1688 * pt.c (convert_nontype_argument): Refine handling of arguments of
1691 2006-10-13 Mark Mitchell <mark@codesourcery.com>
1694 * parser.c (function_declarator_p): New function.
1695 (cp_parser_init_declarator): Use it.
1696 (cp_parser_member_declaration): Likewise.
1698 2006-10-12 Mark Mitchell <mark@codesourcery.com>
1701 * rtti.c (get_tinfo_decl): Refuse to create type info objects for
1702 variably modified types.
1704 2006-10-12 Lee Millward <lee.millward@codesourcery.com>
1707 * decl.c (start_decl): Return error_mark_node if a
1708 function is initialized like a variable.
1709 (check_var_type): If a variable of field is declared void,
1710 set the type to error_mark_node.
1711 (grokdeclarator): Check the return type of check_var_type.
1712 * class.c (finish_struct_1): Robustify.
1714 2006-10-11 Mark Mitchell <mark@codesourcery.com>
1717 * decl.c (check_initializer): Issue errors about trying to
1718 initialize arrays whose elements have variable size.
1720 2006-10-11 Lee Millward <lee.millward@codesourcery.com>
1723 * cp-tree (struct cp_decl_specifier_seq): Rename to
1724 conflicting_specifiers_p
1725 * parser.c (cp_parser_set_storage_class): Set
1726 conflicting_specifiers_p for the input decl specifier
1727 if a typedef specifier is present. Rename uses of
1728 multiple_specifiers_p to conflicting_specifiers_p.
1729 (cp_parser_decl_specifier_seq) <RID_TYPEDEF>: If a storage
1730 class specifier has already been set for this declaration,
1731 set conflicting_specifiers_p to true on the decl_specs.
1732 * decl.c (grokdeclarator): Rename uses of
1733 multiple_specifiers_p to conflicting_specifiers_p.
1735 2006-10-10 Brooks Moses <bmoses@stanford.edu>
1737 * Make-lang.in: Added "c++.pdf" target support.
1739 2006-10-10 Richard Guenther <rguenther@suse.de>
1741 PR rtl-optimization/29323
1742 * decl.c (finish_function): Set TREE_NOTHROW only for
1743 functions that bind local.
1745 2006-10-09 Richard Henderson <rth@redhat.com>
1747 Revert emutls patch.
1749 2006-10-04 Richard Henderson <rth@redhat.com>
1750 Jakub Jelinek <jakub@redhat.com>
1752 * decl.c (grokvardecl): Don't error if !have_tls.
1753 (grokdeclarator): Likewise.
1754 * parser.c (cp_parser_omp_threadprivate): Likewise.
1756 2006-10-03 Mark Mitchell <mark@codesourcery.com>
1759 * friend.c (do_friend): Improve comments; add assertion.
1760 * parser.c (cp_parser_nested_name_specifier_opt): Resolve
1761 typenames for qualified names used in declarations, even when
1762 caching qualified name lookup.
1765 * decl2.c (grokfield): Don't handle access declarations here.
1766 * parser.c (cp_parser_using_declaration): Handle access
1768 (cp_parser_block_declaration): Adjust calls to
1769 cp_parser_using_declaration.
1770 (cp_parser_member_declaration): Likewise. Use
1771 cp_parser_using_declaration to look for access_declarations.
1773 2006-10-03 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1776 * init.c (build_new): Check for invalid init.
1778 2006-10-02 Mark Mitchell <mark@codesourcery.com>
1781 * typeck.c (cxx_sizeof_or_alignof_type): Tidy. In templates, do
1782 not try to actually evaluate sizeof for a VLA type.
1784 2006-10-01 Mark Mitchell <mark@codesourcery.com>
1787 * pt.c (tsubst_baselink): Substituteinto the qualifying scope.
1788 * semantics.c (baselink_for_fns): Build a baselink, even when
1789 processing a template.
1792 * parser.c (cp_parser_postfix_dot_deref_expression): Use
1793 BASELINK_ACCESS_BINFO as the qualifying scope when calling
1794 adjust_result_of_qualified_name_lookup.
1796 2006-09-25 Lee Millward <lee.millward@codesourcery.com>
1800 * cp-tree.h (redeclare_class_template): Adjust declaration
1801 to return bool instead of void.
1802 * pt.c (redeclare_class_template): Update definition.
1803 Return false on error.
1804 * decl.c (xref_tag): Return error_mark_node if
1805 redeclare_class_template returned false.
1808 * cp-tree.h (begin_specialization): Return bool
1810 * pt.c (check_specialization_scope): Likwise.
1811 Adjust comment. Return false if a specialization
1812 isn't permitted in the current scope.
1813 (begin_specialization): Use the return value of
1814 check_specialization_scope.
1815 * parser.c (cp_parser_explicit_specialization): If
1816 begin_specialization returned false, skip the rest
1817 of the specialization.
1819 2006-09-21 Mark Mitchell <mark@codesourcery.com>
1822 * typeck.c (build_unary_op): Don't form an ADDR_EXPR around a
1825 2006-09-21 Lee Millward <lee.millward@codesourcery.com>
1828 * decl.c (shadow_tag): Return error_mark_node
1829 if maybe_process_partial_specialization failed.
1832 * decl.c (grokdeclarator): Return error_mark_node on
1833 declaration with two or more data types.
1835 2006-09-20 Danny Smith <dannysmith@users.sourceforge.net>
1838 * class.c (check_for_override): Remove dllimport from virtual
1841 2006-09-18 Steven Bosscher <steven@gcc.gnu.org>
1844 * parser.c (cp_parser_labeled_statement): Return nothing. Do
1845 not take in_statement_expr and in_compound as arguments. Rename
1846 to cp_parser_label_for_labeled_statement. Parse only the label,
1848 (cp_parser_statement): Parse the statement of a labeled-statement
1849 from here, using tail recursion.
1851 2006-09-14 Andrew Pinski <pinskia@physics.uc.edu>
1854 * init.c (build_zero_init): If we have an error mark node for
1855 the array size, return.
1857 2006-09-10 Mark Mitchell <mark@codesourcery.com>
1860 * cp-objcp-common.c (cxx_staticp): New function.
1861 * cp-objcp-common.h (LANG_HOOOKS_STATICP): Use it.
1862 * cp-tree.h (cxx_staticp): New function.
1864 2006-09-09 Jason Merrill <jason@redhat.com>
1867 * cvt.c (convert_to_void): Strip COMPONENT_REF to functions.
1869 2006-09-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1872 * parser.c (cp_parser_skip_until_found): Rename to
1873 cp_parser_skip_to_end_of_template_parameter_list. Remove last two
1874 parameters. Track levels of '< ... >'. Stop at '{', '}', or ';'.
1875 Reorganize. Adjust comment.
1876 (cp_parser_template_declaration_after_export): Adjust call.
1877 (cp_parser_enclosed_template_argument_list): Likewise.
1879 2006-09-07 Andrew Pinski <pinskia@physics.uc.edu>
1882 * init.c (build_new_1): Build a distinct type copy
1883 for the array type that was returned from
1884 build_cplus_array_type.
1886 2006-09-07 Jason Merrill <jason@redhat.com>
1889 * cvt.c (convert_to_void): Enable previous change.
1892 * method.c (use_thunk): Clear DECL_HAS_VALUE_EXPR_P on copied
1895 2006-09-07 Simon Martin <simartin@users.sourceforge.net>
1898 * pt.c (fold_non_dependent_expr): Make sure expr is not
1899 dereferenced if it is NULL.
1901 2006-09-06 Zak Kipling <zak@transversal.com>
1904 * decl.c (make_rtl_for_nonlocal_decl),
1905 (start_preparsed_function): Don't use lbasename on
1906 input_filename when calling get_fileinfo.
1907 * semantics.c (begin_class_definition): Likewise.
1908 * lex.c (cxx_make_type): Likewise.
1909 (handle_pragma_interface): Call get_fileinfo on input_filename,
1910 not on the parameter to the directive.
1912 2006-09-06 Mark Mitchell <mark@codesourcery.com>
1915 * pt.c (tsubst): Use fold_non_dependent_expr to fold array
1919 * pt.c (unify): Avoid unnecessary calls to fold_build2 for array
1922 2006-09-06 Jason Merrill <jason@redhat.com>
1925 * cvt.c (convert_to_void): Strip useless TARGET_EXPR.
1926 * cp-tree.h (TARGET_EXPR_IMPLICIT_P): New macro.
1927 * tree.c (build_cplus_new): Set it.
1930 * cvt.c (convert_to_void): Replace a subexpression with no side
1931 effects with void_zero_node.
1932 * tree.c (is_overloaded_fn): Look through COMPONENT_REF.
1933 (get_first_fn): Ditto.
1934 * decl.c (grokdeclarator): No need to look through COMPONENT_REF.
1936 2006-09-05 Jason Merrill <jason@redhat.com>
1939 * parser.c (cp_parser_diagnose_invalid_type_name): Handle the case
1940 where the name is a type used incorrectly.
1943 * typeck.c (maybe_warn_about_returning_address_of_local): Look
1944 through COMPONENT_REF and ARRAY_REF.
1947 * name-lookup.c (do_class_using_decl): Try to find the base even
1948 if bases_dependent_p.
1949 * pt.c (type_dependent_expression_p): A USING_DECL is dependent.
1952 * pt.c (tsubst_friend_function): Set DECL_INITIAL before pushdecl.
1954 2006-09-04 Nathan Sidwell <nathan@codesourcery.com>
1956 PR 23287 Revert my 2006-09-01 patch.
1957 * parser.c: Reverted.
1960 2006-09-02 Lee Millward <lee.millward@codesourcery.com>
1966 * parser.c (cp_parser_template_parameter_list): Add
1967 invalid template parameters to the parameter list as
1970 2006-09-02 Jakub Jelinek <jakub@redhat.com>
1973 * except.c (build_throw): Only set current_function_returns_abnormally
1974 if cfun is not NULL.
1977 * repo.c (repo_file): Remove.
1978 (open_repo_file, reopen_repo_file_for_write): Return fopened
1979 FILE * instead of setting global repo_file variable.
1980 (init_repo): Adjust caller.
1981 (finish_repo): Likewise. Return instead of goto out before
1982 reopen_repo_file_for_write has been called.
1984 2006-09-01 Nathan Sidwell <nathan@codesourcery.com>
1987 * semantics.c (finish_call_expr): Add assert.
1988 * name-lookup.c (lookup_arg_dependent): Check we found an overload
1992 * parser.c (cp_parser_id_expression): Add member_p
1993 argument. Update all callers.
1994 (cp_parser_unqualified_id): Likewise. Lookup a destructor name in
1995 the object's scope, if valid.
1996 (cp_parser_global_scope_opt): Add object_scope_valid_p. Update
1998 (cp_parser_postfix_dot_deref_expression): Set object_scope.
1999 * pt.c (tsubst_copy_and_build): Lookup dependent dtor name here.
2001 2006-08-30 Jason Merrill <jason@redhat.com>
2004 * class.c (check_field_decls): Don't unset TYPE_PACKED until all
2005 the fields have been processed.
2007 2006-08-29 Andrew Pinski <pinskia@physics.uc.edu>
2010 * call.c (build_x_va_arg): Remove the reference type
2011 from the type before creating the pointer type.
2013 2006-08-29 J"orn Rennecke <joern.rennecke@st.com>
2016 * except.c (expand_start_catch_block): Use correct types for bitwise
2019 2006-08-28 Jason Merrill <jason@redhat.com>
2022 * class.c (check_field_decls): Unset TYPE_PACKED (t) if one of the
2023 fields can't be packed.
2026 * cvt.c (convert_to_void): Don't automatically load from volatiles
2027 of TREE_ADDRESSABLE type.
2029 2006-08-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2032 * cp-tree.h (maybe_process_partial_specialization): Return
2033 tree instead of void.
2034 * parser.c (cp_parser_class_head): Use return value of
2035 maybe_process_partial_specialization.
2036 * pt.c (maybe_process_partial_specialization): Return error_mark_node
2037 for broken specializations, TYPE otherwise. Check for template
2038 template parameters.
2040 2006-08-27 Mark Mitchell <mark@codesourcery.com>
2043 * pt.c (register_specialization): Return error_mark_node for
2044 specialization-after-instantiation.
2045 * decl2.c (mark_used): Mark the main function used when one of its
2048 2006-08-27 Lee Millward <lee.millward@codesourcery.com>
2051 * class.c (check_field_decls): Don't issue error about
2052 local classes containing static data members.
2054 2006-08-26 Joseph S. Myers <joseph@codesourcery.com>
2057 * parser.c (struct cp_token): Add input_file_stack_index.
2058 (eof_token): Update.
2059 (cp_lexer_get_preprocessor_token): Save input_file_stack_tick.
2060 (cp_lexer_set_source_position_from_token): Restore input file
2063 2006-08-26 Lee Millward <lee.millward@codesourcery.com>
2068 * pt.c (process_template_parm): Store invalid template
2069 parameters as a TREE_LIST with a TREE_VALUE of error_mark_node.
2070 (push_inline_template_parms_recursive): Check for template
2071 parameters having a TREE_VALUE of error_mark_node rather than
2072 check the parameter itself.
2073 (mangle_class_name_for_template): Likewise.
2074 (comp_template_parms): When comparing the individual template
2075 parameters, return 1 if either is error_mark_node.
2076 (current_template_args): Robustify.
2077 (redeclare_class_template): Likewise.
2079 2006-08-26 Mark Mitchell <mark@codesourcery.com>
2082 * class.c (resolve_address_of_overloaded_function): Add
2083 access_path parameter. Perform access checks.
2084 (instantiate_type): Adjust call to
2085 resolve_address_of_overloaded_function. Remove unnecessary code.
2086 * tree.c (is_overloaded_fn): Document. Return 2 when there are
2087 acutally multiple functions.
2088 (really_overloaded_fn): Use is_overloaded_fn.
2089 * mangle.c (write_expression): Handle BASELINKs.
2090 * cp-tree.h (really_overloaded_fn): Return bool.
2091 (baselink_for_fns): Declare.
2092 * search.c (lookup_member): Check access for single static
2094 * pt.c (convert_nontype_argument_function): Handle BASELINKs.
2095 (tsubst_copy_and_build): Generate BASELINKs for template-ids.
2096 * semantics.c (finish_call_expr): Use baselink_for_fns.
2097 (baselink_for_fns): New function.
2098 (finish_id_expression): Use it.
2099 * parser.c (cp_parser_template_argument): Don't strip BASELINKs.
2102 * pt.c (tsubst): Issue errors about attempts to create VLAs at
2103 template-instantiation time.
2105 2006-08-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2108 * typeck2.c (cxx_incomplete_type_diagnostic): Handle template
2109 template parameters. Improve error message for template type
2113 * cp-tree.h (grok_op_properties): Return bool instead of void.
2114 * decl.c (grokfndecl): Discard invalid operator declarations.
2115 (copy_fn_p): Revert change for PR 27547.
2116 (grok_op_properties): Return error status (true on success).
2117 * pt.c (tsubst_decl): Discard invalid operator declarations.
2119 2006-08-25 Mark Mitchell <mark@codesourcery.com>
2122 * decl.c (grokdeclarator): Disallow declarations with qualified
2123 names in local scopes.
2125 2006-08-25 Nathan Sidwell <nathan@codesourcery.com>
2128 * decl.c (make_typename_type): Only try and resolve it when
2129 context is not dependent. Refactor.
2130 * decl2.c (check_classfn): Push to class scope before looking for
2133 2006-08-24 Danny Smith <dannysmith@users.sourceforge.net>
2136 * g++spec.c (lang_specific_driver): Always check if we need to
2137 swallow a space-separated arg to '-x'.
2138 * lang-specs.h: Don't create ouput files for '-xc++-header'
2141 2006-08-23 Jason Merrill <jason@redhat.com>
2144 * pt.c (push_template_decl_real): A friend template with class
2145 scope isn't primary.
2147 2006-08-23 Benjamin Smedberg <benjamin@smedbergs.us>
2150 * rtti.c (build_dynamic_cast, build_dynamic_cast_1):
2151 Move -fno-rtti check to be more specific.
2153 2006-08-22 Jason Merrill <jason@redhat.com>
2156 * call.c (build_over_call): Don't make a copy here if build_call
2159 2006-08-22 Andrew Pinski <pinskia@physics.uc.edu>
2162 * cp/init.c (build_zero_init): Handle VECTOR_TYPE and
2165 2006-08-22 Simon Martin <simartin@users.sourceforge.net>
2168 * parser.c (cp_parser_postfix_expression): Make sure that the
2169 saved value for parser->type_definition_forbidden_message is
2170 restored before returning to avoid an invalid free().
2172 2006-08-22 Jason Merrill <jason@redhat.com>
2175 * typeck.c (merge_types): If either of the types have the right
2176 attributes, return that one.
2178 * tree.c (cp_build_type_attribute_variant): Make sure we aren't
2179 doing this to class types.
2180 * typeck.c (original_type): Deal with type quals properly.
2182 2006-08-21 Jason Merrill <jason@redhat.com>
2185 * semantics.c (finish_stmt_expr_expr): Don't try to voidify here,
2186 just leave the expression as it is.
2187 (finish_stmt_expr): If the statement-expression has class type,
2188 wrap it in a TARGET_EXPR.
2189 * cp-gimplify.c (cp_gimplify_init_expr): Don't bother with
2191 * except.c (build_throw): Give the CLEANUP_POINT_EXPR void type.
2193 2006-08-21 Lee Millward <lee.millward@codesourcery.com>
2196 * decl.c (duplicate_decls): Return early if either
2197 newdecl or olddecl is error_mark_node.
2200 * decl.c (grokdeclarator): Return early after
2201 issuing diagnostic about an incomplete type.
2204 * tree.c (decl_anon_ns_mem_p): Robustify.
2205 * decl2.c (determine_visibility): Likewise.
2207 2006-08-20 Mark Mitchell <mark@codesourcery.com>
2210 * tree.c (cast_valid_in_integral_constant_expression_p): New
2212 * cp-tree.h (tsubst_copy_and_build): Adjust prototype.
2213 * pt.c (tsubst_expr): Add integral_constant_expression_p
2215 (fold_non_dependent_expr): Adjust callers of
2216 tsubst_{expr,copy_and_build}.
2217 (tsubst_friend_function): Likewise.
2218 (tsubst_template_arg): Likewise.
2219 (tsubst_default_argument): Likewise.
2220 (tsubst_decl): Likewise.
2222 (tsubst_omp_clasuses): Likewise.
2223 (regenerate_decl_fromp_template): Likewise.
2224 (instantiate_decl): Likewise.
2225 (tsubst_initializer_list): Likewise.
2226 (tsubst_enum): Likewise.
2227 (tsubst_expr): Use RECUR throughout.
2228 (tsubst_copy_and_build): Change definition of RECUR. Do not allow
2229 invalid casts in integral constant expressions.
2230 * parser.c (cp_parser_postfix_expression): Use
2231 cast_valid_in_integral_constant_expression_p.
2232 (cp_parser_cast_expression): Likewise.
2233 (cp_parser_functional_cast): Likewise.
2236 * pt.c (tsubst_qualified_id): Do not strip references from
2239 2006-08-17 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2242 * parser.c (cp_parser_diagnose_invalid_type_name): Handle BIT_NOT_EXPR.
2244 (cp_parser_parse_and_diagnose_invalid_type_name): Tighten condition
2245 for valid type-names.
2246 (cp_parser_unqualified_id): Fix error handling for destructors.
2249 * decl.c (xref_tag): Improve error message. Return early on error.
2252 * pt.c (tsubst_copy_and_build) <case CONSTRUCTOR>: Robustify.
2254 2006-08-17 Paolo Bonzini <bonzini@gnu.org>
2257 * semantics.c (finish_offsetof): Add new argument to fold_offsetof.
2259 2006-08-16 Andrew Pinski <pinskia@physics.uc.edu>
2262 * typeck.c (build_unary_op <case BIT_NOT_EXPR:>): Don't call
2263 perform_integral_promotions for non integral type.
2265 2006-08-16 Jason Merrill <jason@redhat.com>
2268 * pt.c (tsubst) [TEMPLATE_TYPE_PARM]: Ignore quals from template
2269 if arg is a function.
2271 2006-08-16 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2274 * init.c (build_new): Return early on invalid placement.
2276 2006-08-15 Lee Millward <lee.millward@codesourcery.com>
2279 * pt.c (process_template_parm): Robustify.
2281 2006-08-14 Steve Ellcey <sje@cup.hp.com>
2285 * operators.def: Remove <?, ?>, <?=, and >?= operators.
2286 * parser.c: Remove CPP_MIN, CPP_MAX, CPP_MIN_EQ, and CPP_MAX_EQ.
2287 (cp_parser_warn_min_max): Remove.
2289 2006-08-11 Jason Merrill <jason@redhat.com>
2292 * parser.c (cp_parser_elaborated_type_specifier): Also ignore
2293 attributes applied to a TYPENAME_TYPE.
2295 2006-08-09 Lee Millward <lee.millward@codesourcery.com>
2298 * pt.c (coerce_template_parms): Copy across the
2299 invalid template arguments to the new template inner arguments.
2300 (retrieve_specialization): Robustify.
2303 * pt.c (coerce_template_template_parms): Robustify.
2306 * error.c (dump_template_parms): Robustify.
2309 * pt.c (redeclare_class_template): Robustify.
2312 * pt.c (type_unification_real): Robustify.
2314 2006-08-03 Lee Millward <lee.millward@codesourcery.com>
2317 * decl.c (start_decl): Return error_mark_node if a
2318 diagnostic was issed for an invalid typedef initialization.
2320 2006-08-03 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2323 * parser.c (cp_parser_unqualified_id): Check for invalid scopes
2324 when parsing destructor names.
2327 * decl.c (duplicate_decls): Call check_default_args here.
2328 (start_preparsed_function): Do not call check_default_args.
2329 * name-lookup.c (pushdecl_maybe_friend): Only call
2330 check_default_args if duplicate_decls got bypassed.
2332 2006-08-02 Richard Guenther <rguenther@suse.de>
2336 2006-07-05 Richard Guenther <rguenther@suse.de>
2337 Andrew Pinski <pinskia@gcc.gnu.org>
2340 * cp-objcp-common.c (cxx_types_compatible_p): Ignore
2341 top level qualifiers for pointer type comparisons.
2343 2006-08-02 Mark Mitchell <mark@codesourcery.com>
2346 * pt.c (tsubst_baselink): Substitute into BASELINK_OPTYPE.
2348 2006-07-31 Mark Mitchell <mark@codesourcery.com>
2351 * tree.c (stabilize_expr): Tweak documentation. Add assertion.
2352 (stabilize_call): Tweak documentation.
2353 (stabilize_init): Only call stabilize_call for calls.
2355 2006-08-01 Steve Ellcey <sje@cup.hp.com>
2358 * decl2.c (check_classfn): Remove early return.
2359 * search.c (lookup_member): Return NULL with bad type.
2361 2006-08-01 Steve Ellcey <sje@cup.hp.com>
2364 * decl.c (check_initializer): Check for 1 initializer on scalar types.
2366 2006-08-01 Daniel Jacobowitz <dan@codesourcery.com>
2369 * pt.c (tsubst_copy_and_build): Mark used enum types.
2370 * semantics.c (finish_id_expression): Likewise.
2372 2006-07-31 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2375 * decl.c (grokdeclarator): Check whether "long" or "short" was
2376 specified for non-integral types.
2378 2006-07-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2380 * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
2382 2006-07-28 Lee Millward <lee.millward@codesourcery.com>
2386 * pt.c (process_template_parm) Store invalid template
2387 parameters as error_mark_node in the paramater list.
2388 (push_inline_template_parms_recursive): Handle invalid
2389 template parameters.
2390 (comp_template_parms): Likewise.
2391 (check_default_tmpl_arg): Likewise.
2392 (coerce_template_template_parms): Likewise.
2393 (mangle_class_name_for_template): Likewise.
2394 (tsubst_template_parms): Likewise.
2395 * error.c (dump_template_argument_list): Likewise.
2397 2006-07-28 Kazu Hirata <kazu@codesourcery.com>
2399 * cp-tree.h: Fix a comment typo.
2401 2006-07-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2404 * decl.c (grokdeclarator): Return error_mark_node after invalid
2407 2006-07-23 Daniel Jacobowitz <dan@codesourcery.com>
2410 * decl.c (grokvardecl): Use FROB_CONTEXT.
2411 * pt.c (register_specialization): Likewise.
2413 2006-07-23 Mark Mitchell <mark@codesourcery.com>
2416 * cp-tree.h (LOOKUP_HIDDEN): New macro. Reformat comments.
2417 * name-lookup.c (unqualified_namespace_lookup): There is no way to
2418 have a hidden name in non-namespace scopes.
2419 * pt.c (tsubst_friend_class): Look for hidden names.
2420 * decl.c (lookup_and_check_tag): Fix typo in comment.
2422 * semantics.c (finish_compound_literal): Fix typo in comment.
2424 2006-07-21 Jason Merrill <jason@redhat.com>
2426 * decl2.c (determine_visibility): Don't propagate visibility from
2428 (constrain_class_visibility): Don't warn in system headers.
2429 Don't warn about pointer fields.
2431 2006-07-20 Mike Stump <mrs@apple.com>
2433 * decl2.c (determine_visibility_from_class): Don't use hidden
2434 visibility for explicit instantiations.
2436 2006-07-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2439 * pt.c (tsubst_expr): Only apply DECL_TEMPLATE_INSTANTIATED to
2440 valid decls. Cleanup.
2443 * semantics.c (check_template_template_default_arg): Simplify
2446 2006-07-20 Jason Merrill <jason@redhat.com>
2449 * decl.c (grokvardecl): Set DECL_THIS_STATIC on file-scope
2450 const variables with implicit internal linkage.
2451 * tree.c (decl_linkage): Only return lk_external if it's set.
2454 * decl2.c (constrain_visibility): Ignore the anonymous namespace
2455 for extern "C" decls.
2456 (VISIBILITY_STATIC): Rename to VISIBILITY_ANON.
2458 * decl2.c (constrain_visibility): Remove specified and reason
2459 parameters. Don't touch decls that already have explicit visibility.
2460 (determine_visibility): Do copy DECL_VISIBILITY_SPECIFIED from
2462 (determine_visibility_from_class): Reverse sense of
2463 DECL_VISIBILITY_SPECIFIED test for target-specific visibility rules.
2464 (constrain_class_visibility): Only complain about member visibility
2465 if the member type is another class. Don't change visibility of the
2468 2006-07-19 Mark Mitchell <mark@codesourcery.com>
2471 * decl.c (layout_var_decl): Don't call push_local_name here.
2472 (initialize_artificial_var): Assert artificiality.
2473 (cp_finish_decl): Call push_local_name here.
2475 2006-07-18 Mark Mitchell <mark@codesourcery.com>
2478 * typeck.c (build_binary_op): Short-circuit pointer arithmetic in
2481 2006-07-18 Mark Mitchell <mark@codesourcery.com>
2484 * semantics.c (check_accessibility_of_qualified_id): Robustify.
2487 * pt.c (tsubst_decl): Handling substitutions into a static data
2488 member from within the scope of the tempalte itself.
2490 2006-07-18 Lee Millward <lee.millward@gmail.com>
2493 * method.c (locate_copy): Check for non_reference
2494 returning error_mark_node.
2497 * decl.c (duplicate_decls): Return error_mark_node
2498 on ambiguous declaration.
2500 2006-07-18 Steve Ellcey <sje@cup.hp.com>
2503 * search.c (adjust_result_of_qualified_name_lookup): Change
2504 assert to part of if statement.
2506 2006-07-17 Steve Ellcey <sje@cup.hp.com>
2509 * decl.c (reshape_init_class): Return error_mark_node on error.
2511 2006-07-17 Steve Ellcey <sje@cup.hp.com>
2514 * decl2.c (check_classfn): Return NULL_TREE on error.
2516 2006-07-17 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2519 * name-lookup.c (pushdecl_maybe_friend): Return early on
2521 * except.c (expand_start_catch_block): Use error_mark_node instead
2522 of NULL_TREE for invalid decls.
2523 * parser.c (cp_parser_exception_declaration): Return error_mark_node
2524 on invalid catch parameter. Simplify.
2526 2006-07-16 Jakub Jelinek <jakub@redhat.com>
2529 * decl2.c (note_vague_linkage_var): Removed.
2530 (finish_static_data_member_decl): Add decl to pending_statics vector
2531 directly. Do it even for non-public decls.
2533 2006-07-15 Lee Millward <lee.millward@gmail.com>
2536 * decl2.c (acceptable_java_type): Robustify. Use
2537 proper Boolean return type instead of return 1.
2538 (check_java_method): Don't issue error about
2539 type not being an acceptable Java parameter if
2540 it's error_mark_node.
2543 * parser.c (cp_parser_elaborated_type_specifier):
2544 Return early if an invalid type was detected.
2546 2006-07-15 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2549 * parser.c (cp_parser_check_decl_spec): New function.
2550 (cp_parser_decl_specifier_seq): Factor out check for repeated
2551 decl-specifiers into cp_parser_check_decl_spec. Use it.
2552 (cp_parser_type_specifier_seq): Use it.
2555 * semantics.c (finish_offsetof): Use TREE_OPERAND for COMPONENT_REFs
2559 * decl2.c (cplus_decl_attributes): Check for invalid decls.
2561 2006-07-14 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2564 * decl.c (cp_finish_decl): Check asmspec_tree for error_mark_node.
2565 * decl2.c (grokfield): Likewise.
2567 2006-07-12 Geoffrey Keating <geoffk@apple.com>
2569 * decl2.c (determine_visibility): Don't change visibility of
2570 function locals because of -fvisibility-inlines-hidden.
2572 2006-07-12 Jason Merrill <jason@redhat.com>
2575 * semantics.c (note_decl_for_pch): Don't premangle templates.
2577 2006-07-12 Martin Michlmayr <tbm@cyrius.com>
2579 * typeck.c (string_conv_p): Remove spurious quotation mark in
2582 2006-07-07 Lee Millward <lee.millward@gmail.com>
2583 Andrew Pinski <pinskia@gmail.com>
2586 * decl.c (define_label): Return error_mark_node on error.
2587 * semantics.c (finish_label_stmt): Don't call
2588 add_stmt for invalid labels.
2590 2006-07-06 Jason Merrill <jason@redhat.com>
2593 * decl2.c (finish_static_data_member_decl): Don't assert
2596 2006-07-05 Jason Merrill <jason@redhat.com>
2600 * class.c (check_field_decls): Check TYPE_PACKED after
2601 stripping array types.
2602 (finish_struct_bits): Don't copy TYPE_SIZE here.
2605 * friend.c (is_friend): Fix DR 45 implementation.
2607 2006-07-05 Richard Guenther <rguenther@suse.de>
2608 Andrew Pinski <pinskia@gcc.gnu.org>
2611 * cp-objcp-common.c (cxx_types_compatible_p): Ignore
2612 top level qualifiers for pointer type comparisons.
2614 2006-07-01 Jason Merrill <jason@redhat.com>
2617 * method.c (make_thunk): Unset DECL_USE_TEMPLATE and
2620 2006-06-30 Jason Merrill <jason@redhat.com>
2623 * call.c (build_new_method_call): Force evaluation of the
2624 instance pointer, not the object.
2626 2006-06-30 Kazu Hirata <kazu@codesourcery.com>
2628 * decl2.c: Fix a comment typo.
2630 2006-06-30 Jason Merrill <jason@redhat.com>
2633 * decl2.c (grokfield): Only try to treat the decl as an access
2634 declaration if the scope is a class.
2636 2006-06-29 Jason Merrill <jason@redhat.com>
2643 * decl2.c (determine_visibility): Overhaul.
2644 (determine_visibility_from_class): Likewise.
2645 (min_vis_r, type_visibility, constrain_visibility): New fns.
2646 (constrain_visibility_for_template): Likewise.
2647 (constrain_class_visibility): Likewise.
2648 * decl.c (cp_finish_decl): Call determine_visibility for function
2650 * name-lookup.c (pushtag): Call determine_visibility.
2651 * decl.c (duplicate_decls): Don't copy visibility from template to
2653 * pt.c (check_explicit_specialization): Likewise.
2654 (lookup_template_class, tsubst_decl): Call determine_visibility.
2655 * class.c (finish_struct_1): Call constrain_class_visibility.
2660 * parser.c (cp_parser_explicit_instantiation): Pass the attributes
2662 (cp_parser_type_specifier): Allow 'enum __attribute ((...)) E'.
2663 (cp_parser_enum_specifier): Likewise.
2664 (cp_parser_elaborated_type_specifier): Apply attributes if this
2665 declares only the class.
2666 (cp_parser_class_specifier): Apply leading attributes immediately.
2667 * semantics.c (begin_class_definition): Add attributes parameter,
2668 apply them to the type.
2672 * tree.c (decl_anon_ns_mem_p): New function.
2673 * cp-tree.h: Declare it.
2674 * decl2.c (determine_visibility): Make anonymous namespace
2676 (min_vis_r, constrain_visibility): Likewise.
2677 * rtti.c (create_pseudo_type_info): Set TREE_PUBLIC on
2679 * decl.c (cxx_init_decl_processing): Set TREE_PUBLIC on
2681 * name-lookup.c (push_namespace_with_attribs): Don't set TREE_PUBLIC
2682 on anonymous namespaces.
2684 2006-06-28 Jason Merrill <jason@redhat.com>
2687 * pt.c (convert_template_argument): Pass all template arguments
2688 on to coerce_template_template_parms.
2690 2006-06-25 Lee Millward <lee.millward@gmail.com>
2691 Mark Mitchell <mark@codesuorcery.com>
2694 * decl2.c (grokbitfied): Remove check for grokdeclarator
2695 returning NULL_TREE, instead check for error_mark_node
2696 to indicate failure.
2697 * decl.c (grokdeclarator): Adjust block comment.
2699 2006-06-25 Lee Millward <lee.millward@gmail.com>
2702 * mangle.c (mangle_conv_op_name_for_type): Check for
2704 * name-lookup.c (push_class_level_binding): Robustify.
2705 (do_class_using_decl): Return early if name is error_mark_node.
2707 2006-06-23 Steve Ellcey <sje@cup.hp.com>
2710 * name-lookup.c (pushtag): Return if we have error_mark_node.
2712 2006-06-23 Steve Ellcey <sje@cup.hp.com>
2715 * typeck2.c (process_init_constructor_array): Set ce->value on errors.
2717 2006-06-23 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2720 * parser.c (cp_parser_attribute_list): Skip attributes with invalid
2721 arguments. Fix comment.
2724 * init.c (build_new_1): Handle error_mark_nodes returned by
2725 build_java_class_ref.
2726 (build_java_class_ref): Do not abort compilation, but return
2727 error_mark_node. Improve error message. Fix indentation.
2729 2006-06-23 Danny Smith <dannysmith@users.sourceforge.net>
2732 * decl.c (start_decl): Check that dllimports are not initialized.
2734 2006-06-22 Lee Millward <lee.millward@gmail.com>
2737 * typeck2.c (build_m_component_ref): Use error_operand_p.
2740 * decl.c (grokdeclarator): Return error_mark_node on
2741 invalid uses of the scope resolution operator.
2743 2006-06-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2746 * pt.c (determine_specialization): Check for invalid decls.
2749 * pt.c (unify) <case TEMPLATE_PARM_INDEX>: Check for invalid
2753 * rtti.c (get_tinfo_decl_dynamic): Robustify.
2755 2006-06-20 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2758 * init.c (push_base_cleanups): Skip members with invalid types.
2759 * typeck.c (build_class_member_access_expr): Robustify.
2761 2006-06-19 Mark Mitchell <mark@codesourcery.com>
2763 * pt.c (instantiate_template): Fix typo in comment.
2765 2006-06-19 Richard Guenther <rguenther@suse.de>
2767 * parser.c (CP_LEXER_BUFFER_SIZE): Adjust to assure near
2768 power-of-two token vector size.
2770 2006-06-16 Mark Mitchell <mark@codesourcery.com>
2773 * decl.c (cp_finsh_decl): Do not emit uninstantiated static data
2777 * call.c (standard_conversion): Strip cv-qualifiers from bitfield
2781 * decl.c (have_extern_spec): Remove.
2782 (start_decl): Do not check have_extern_spec.
2783 (start_function): Likewise.
2784 * cp-tree.h (have_extern_spec): Remove.
2785 * parser.c (cp_parser_linkage_specification): Don't set
2787 (cp_parser_init_declarator): Likewise.
2788 (cp_parser_parameter_declaration): Do not treat parameters as
2789 within the scope of an unbraced linkage specification.
2791 2006-06-15 Mark Mitchell <mark@codesourcery.com>
2794 * cp-tree.h (CLASSTYPE_SPECIALIZATION_OF_PRIMARY_TEMPLATE_P): New
2796 * pt.c (unify): Use it.
2799 * call.c (build_conditional_expr): Robustify.
2802 * pt.c (instantiate_template): Set processing_template_decl to
2803 zero while performing substitutions.
2805 2006-06-14 Mark Mitchell <mark@codesourcery.com>
2808 * parser.c (cp_parser_unqualified_id): Use constructor_name_p to
2809 identify destructors.
2810 (cp_parser_nested_name_specifier_opt): Remove invalid
2812 (cp_parser_template_id): Refine heuristic for determining whether
2813 we are entering a scope.
2816 * parser.c (cp_parser_declarator): Robustify.
2819 * pt.c (tsubst_expr): Use finish_omp_atomic.
2820 (value_dependent_expression_p): All CALL_EXPRs are dependent.
2821 * semantics.c (finish_omp_atomic): Rework to use standard
2822 paradigms for handling non-dependent expressions.
2824 2006-06-14 Gabriel Dos Reis <gdr@integrable-solutions.net>
2826 * typeck.c (build_modify_expr): Tidy diagnostic message.
2828 2006-06-14 Mark Mitchell <mark@codesourcery.com>
2831 * typeck.c (build_modify_expr): Disallow array assignment.
2833 2006-06-14 Gabriel Dos Reis <gdr@integrable-solutions.net>
2835 * cp-tree.def: Fix typo.
2837 2006-06-13 Mark Mitchell <mark@codesourcery.com>
2840 * decl.c (decls_match): Allow an extern "C" variable declarations
2841 from different namespaces to match.
2842 (duplicate_decls): Disallow redeclaring a variable with a
2843 different linkage specification.
2845 2006-06-13 Jakub Jelinek <jakub@redhat.com>
2848 * cp-tree.h (cxx_int_tree_map): New struct.
2849 (struct language_function): Add extern_decl_map field.
2850 * name-lookup.c (pushdecl_maybe_friend): Add x -> t mapping
2851 to cp_function_chain->extern_decl_map hash table instead of
2852 copying over DECL_UID.
2853 * cp-gimplify.c (cxx_int_tree_map_eq, cxx_int_tree_map_hash): New
2855 (cp_genericize_r): Remap DECL_EXTERN local decls using
2856 cp_function_chain->extern_decl_map hash table.
2857 * decl.c (finish_function): Clear extern_decl_map.
2859 2006-06-12 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2862 * semantics.c (finish_offsetof): Handle pseudo-destructors.
2865 * name-lookup.c (lookup_qualified_name): Always return error_mark_node
2869 * decl2.c (finish_anon_union): Return early if build_anon_union_vars
2872 2006-06-12 Roger Sayle <roger@eyesopen.com>
2875 * typeck2.c (build_functional_cast): Use cp_convert to construct
2876 non-aggregate initializers instead of the user-level build_c_cast.
2878 2006-06-07 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2881 * cp-tree.h (finish_offsetof): Add prototype.
2882 * semantics.c (finish_offsetof): New function.
2883 * parser.c (cp_parser_builtin_offsetof): Call it instead of
2885 * pt.c (tsubst_copy_and_build): Likewise.
2887 2006-06-06 Mark Mitchell <mark@codesourcery.com>
2890 * call.c (standard_conversion): Require that the derived type be
2891 complete when performing a derived-to-base conversion.
2893 2006-06-04 Mark Mitchell <mark@codesourcery.com>
2896 * decl.c (cp_finish_decl): Process initializers for static data
2897 members with non-dependent initializers, even in templates.
2900 * decl.c (maybe_deduce_size_from_array_init): If the declaration
2901 is erroneous, give it an erroneous type.
2902 (layout_var_decl): If the type is erroneous, give up.
2903 (check_initializer): Likewise.
2906 * cp-tree.h (TYPE_OBJ_P): New macro.
2907 (TYPE_PTROB_P): Use it.
2908 (TYPE_REF_OBJ_P): Likewise.
2909 * semantics.c (finish_compound_literal): Do not permit compound
2910 literals of non-object types.
2913 * typeck.c (original_type): Robustify.
2915 2006-06-05 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2918 * init.c (constant_value_1): Return decl instead of error_mark_node
2919 for invalid initializers.
2921 2006-06-01 Andrew Pinski <pinskia@physics.uc.edu>
2924 * rtti.c (build_dynamic_cast_1): Call c_common_truthvalue_conversion
2925 on operand of the COND_EXPR for the null pointer check.
2927 2006-06-01 Andrew Pinski <pinskia@physics.uc.edu>
2930 * typeck.c (build_unary_op): Mark the function as being used.
2932 2006-06-01 Alexandre Oliva <aoliva@redhat.com>
2935 * parser.c (cp_parser_initial_pragma): Read one more token for
2936 caller after reading PCH file in.
2938 2006-05-31 Mark Mitchell <mark@codesourcery.com>
2941 * call.c (perform_implicit_conversion): Do not actually perform
2942 conversions in templates.
2945 * call.c (resolve_args): Check for invalid uses of bound
2946 non-static member functions.
2947 * init.c (build_offset_ref): Return error_mark_node for errors.
2950 * decl.c (reshape_init): Robustify.
2951 (reshape_init_array_1): Likewise.
2953 2006-05-30 Mark Mitchell <mark@codesourcery.com>
2956 * parser.c (cp_parser_decl_specifier_seq): Issue errors about
2957 "friend" specifiers that do not appear in class scopes.
2960 * class.c (check_bitfield_decl): Ensure that all bitfields have
2963 2006-05-29 Kazu Hirata <kazu@codesourcery.com>
2965 * pt.c (convert_nontype_argument): Fix a typo in an error
2968 2006-05-28 Kazu Hirata <kazu@codesourcery.com>
2970 * decl.c, decl2.c, parser.c: Fix comment typos. Follow
2971 spelling conventions.
2973 2006-05-24 Mark Mitchell <mark@codesourcery.com>
2976 * decl.c (cp_make_fname_decl): Don't set DECL_INITIAL to
2977 error_mark_node to indicate an initialization is OK.
2978 (start_decl): Likewise. Adjust call to start_decl_1.
2979 (start_decl_1): Add initialized parameter. Simplify.
2980 * except.c (initialize_handler_parm): Adjust call to
2982 (expand_start_catch_block): Let cp_finish_decl initialize catch
2984 * cp-tree.h (start_decl_1): Adjust prototype.
2985 * pt.c (tsubst_expr): Don't set DECL_INITIAL to error_mark_node.
2986 (instantiate_decl): Let cp_finish_decl handle initialization.
2987 * semantics.c (finish_compound_literal): Create a temporary
2988 variable for the literal.
2989 * typeck.c (build_unary_op): Remove COMPOUND_LITERAL_P special
2991 * decl2.c (finish_static_data_member_decl): Don't set
2993 (grokfield): Do not try to initialize functions.
2995 2006-05-23 Mark Mitchell <mark@codesourcery.com>
2998 * pt.c (determine_specialization): Disallow partial
2999 specializations of templates.
3001 2006-05-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3004 * typeck.c (build_modify_expr): Test arguments for error_operand_p.
3006 * decl.c (grokdeclarator): Return error_mark_node instead of NULL_TREE.
3008 2006-05-21 Mark Mitchell <mark@codesourcery.com>
3011 * cp-tree.h (cp_save_expr): New function.
3012 * init.c (build_new): Correct logic for zero-element array
3013 warning. Use cp_save_expr.
3014 * tree.c (cp_save_expr): New function.
3016 2006-05-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3019 * decl.c (grokdeclarator): Return error_mark_node instead of NULL_TREE
3022 2006-05-19 Mike Stump <mrs@apple.com>
3024 * typeck.c (default_conversion): Remove static.
3026 2006-05-19 Mark Mitchell <mark@codesourcery.com>
3029 * cp-tree.h (begin_function_try_block): Change prototype.
3030 (finish_function_handler_sequence): Likewise.
3031 * parser.c (cp_parser_function_try_block): Adjust calls.
3032 * pt.c (tsubst_expr): Adjust calls.
3033 * semantics.c (begin_function_try_block): Create an artificial
3035 (finish_function_handler_sequence): Close it.
3037 2006-05-18 Mark Mitchell <mark@codesourcery.com>
3041 * typeck.c (decay_conversion): Convert bitfields to their declared
3042 types here. Improve documentation. Avoid use of cp_convert.
3043 (default_conversion): Make it static. Perform integral promotions
3044 before lvalue-to-rvalue, function-to-pointer, and array-to-pointer
3046 * init.c (build_init): Remove.
3047 (expand_default_init): Do not call rvalue.
3048 * call.c (null_ptr_cst_p): Robustify.
3049 (build_conditional_expr): Tidy.
3050 * except.c (build_throw): Do not perform lvalue-to-rvalue
3051 conversion on operand before initializing temporary.
3052 * tree.c (convert.h): Include it.
3053 (convert_bitfield_to_declared_type): Use convert_to_integer, not
3055 (rvalue): Don't convert bitfields to their declared type here.
3056 * cp-tree.h (build_init): Remove.
3057 (default_conversion): Likewise.
3058 * typeck2.c (build_m_component_ref): Do not perform
3059 lvalue-to-rvalue, function-to-pointer, or array-to-pointer
3060 conversions here. Correct error message.
3062 2006-05-17 Mark Mitchell <mark@codesourcery.com>
3065 * decl2.c (check_member_template): Remove checks for virtual
3067 * parser.c (cp_parser_function_specifier_opt): Complain about
3069 (cp_parser_pure_specifier): Likewise.
3072 * parser.c (cp_parser_set_storage_class): Check for
3073 invalid uses of storage classes on unbraced linkage
3075 (cp_parser_decl_specifier_seq): Pass keywords, not storage classes,
3076 to cp_parser_set_storage_class.
3078 2006-05-17 Jakub Jelinek <jakub@redhat.com>
3081 * semantics.c (finish_compound_literal): Only set TREE_HAS_CONSTRUCTOR
3085 * parser.c (cp_parser_omp_parallel): Set OMP_PARALLEL_COMBINED
3086 on combined parallel workshare constructs.
3087 * pt.c (tsubst_expr): Copy OMP_PARALLEL_COMBINED flag.
3089 2006-05-16 H.J. Lu <hongjiu.lu@intel.com>
3092 * Make-lang.in (GXX_OBJS): Replace gcc.o with $(GCC_OBJS).
3094 2006-05-15 Mark Mitchell <mark@codesourcery.com>
3097 * cp-tree.h (perform_access_checks): New function.
3098 * semantics.c (perform_access_checks): New function.
3099 (perform_deferred_access_checks): Use it.
3100 * parser.c (cp_parser_simple_declaration): Adjust call to
3101 cp_parser_init_declarator.
3102 (cp_parser_type_parameter): Do not defer checks in default
3104 (cp_parser_explicit_specialization): Adjust call to
3105 cp_parser_single_declaration.
3106 (cp_parser_init_declarator): Perform template-parameter access
3108 (cp_parser_parameter_declaration): Do not defer checks for
3109 template parameter default arguments.
3110 (cp_parser_template_declaration_after_export): Gather access
3111 checks for template parameters, and pass them to
3112 cp_parser_single_declaration.
3113 (cp_parser_template_parameter_access_checks): New function.
3114 (cp_parser_single_declaration): Add checks parameter.
3117 * call.c (convert_like_real): Convert bitfields to their declared
3118 types when forming an rvalue.
3119 * tree.c (convert_bitfield_to_declared_type): New function.
3121 * cp-tree.h (convert_bitfield_to_declare_type): Declare it.
3123 2006-05-15 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3126 * pt.c (any_dependent_template_arguments_p): Return early on invalid
3130 * search.c (adjust_result_of_qualified_name_lookup): Skip on
3131 invalid context_class.
3134 * pt.c (do_decl_instantiation): Return early on invalid decl.
3137 * pt.c (push_template_decl_real): Return error_mark_node instead
3141 * pt.c (tsubst_friend_class): Return early on invalid friend
3144 2006-05-14 H.J. Lu <hongjiu.lu@intel.com>
3146 * Make-lang.in (cp/decl.o): Add dependency on $(TARGET_H).
3147 (cp/decl2.o): Likewise.
3148 (cp/typeck.o): Likewise.
3149 (cp/cvt.o): Likewise.
3150 (cp/parser.o): Likewise.
3151 (cp/call.o): Replace target.h with $(TARGET_H).
3153 2006-05-14 Alexandre Oliva <aoliva@redhat.com>
3155 * pt.c (build_non_dependent_expr): Leave ADDR_EXPR of
3156 COMPONENT_REF alone.
3158 2006-05-11 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3161 * decl.c (copy_fn_p): Return early on non-member functions.
3163 2006-05-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3166 * decl2.c (build_memfn_type): Skip invalid functions and class types.
3168 2006-05-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3171 * pt.c (convert_nontype_argument): Return early on invalid arguments.
3173 * pt.c (process_template_parm): Remove superfluous temporary.
3176 * pt.c (process_template_parm): Handle erroneous non-type parameters.
3179 * typeck.c (convert_for_initialization): Skip erroneous types.
3182 * typeck.c (convert_arguments): Return early on args with
3185 2006-05-03 Aldy Hernandez <aldyh@redhat.com>
3188 * typeck.c (build_static_cast_1): Save casted types in used types
3190 (build_reinterpret_cast_1): Same.
3191 * rtti.c (build_dynamic_cast_1): Same.
3193 2006-05-04 Jakub Jelinek <jakub@redhat.com>
3196 * parser.c (cp_parser_omp_for_loop): Only call
3197 cp_parser_abort_tentative_parse if cp_parser_parse_definitely was not
3200 2006-05-02 Mark Mitchell <mark@codesourcery.com>
3203 * decl.c (grokdeclarator): Robustify checks for defining members
3204 of incomplete types.
3207 * class.c (add_method): Call grok_special_member_properties.
3208 * decl.c (grokdeclarator): Don't call it here.
3209 (copy_fn_p): A TEMPLATE_DECL is never a copy constructor or
3210 assignment operator. Set TYPE_HAS_CONSTURCTOR if DECL is a
3212 (start_method): Don't call grok_special_member_properties.
3213 * method.c (implicitly_declare_fn): Likewise.
3214 * pt.c (instantiate_class_template): Likewise.
3215 * decl2.c (grokfield): Likewise.
3217 2006-05-02 Jakub Jelinek <jakub@redhat.com>
3220 * cp-gimplify.c (cxx_omp_privatize_by_reference): New function.
3221 * cp-tree.h (cxx_omp_privatize_by_reference): New prototype.
3222 * cp-objcp-common.h (LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE): Define.
3224 2006-04-30 Mark Mitchell <mark@codesourcery.com>
3227 * pt.c (tsubst_default_argument): Increment function_depth around
3228 call to tsubst_expr.
3229 * parser.c (cp_parser_parameter_declaration): Likewise.
3230 * decl2.c (mark_used): Tidy.
3232 2006-04-30 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3235 * decl.c (grok_op_properties): Skip operators with invalid args
3236 when checking for class-type or enum-type args.
3238 2006-04-29 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3241 * decl.c (copy_fn_p): Skip functions with invalid first arg.
3243 2006-04-27 Mark Mitchell <mark@codesourcery.com>
3246 * tree.c (rvalue): Convert bitfields to their declared types.
3249 * typeck2.c (cxx_incomplete_type_diagnostic): Handle
3252 2006-04-24 Mark Mitchell <mark@codesourcery.com>
3255 * typeck.c (decay_conversion): Don't adjust bitfield types.
3256 (perform_integral_promotions): Treat bitfield enums as enums, not
3257 as short integer types.
3258 * tree.c (rvalue): Convert bitfields to their correct types.
3260 2006-04-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3263 * class.c (layout_class_type): Skip fields with invalid types.
3265 2006-04-23 Mark Mitchell <mark@codesourcery.com>
3268 * cp-tree.h (build_this_parm): Declare.
3269 (grok_method_quals): Remove.
3270 (build_memfn_type): Declare.
3271 (build_artificial_parm): Declare.
3272 (do_friend): Remove quals parameter.
3273 * decl.c (build_this_parm): New function.
3274 (grokfndecl): Use it. Do not pass quals to grokclassfn.
3275 (grokdeclarator): Rename quals to memfn_quals. Avoid allocating
3276 unnecessary TYPE_DECLs. Correct qualification of member function
3278 * method.c (implicitly_declare_fn): Use build_this_parm.
3279 * friend.c (do_friend): Remove quals parameter.
3280 * decl2.c (grok_method_quals): Remove.
3281 (build_memfn_type): New function.
3282 (build_artificial_parm): Give it external linkage.
3283 (grokclassfn): Remove quals parameter. Do not build "this"
3287 * cp-tree.h (is_bitfield_expr_with_lowered_type): New function.
3288 * typeck.c (is_bitfield_expr_with_lowered_type): New function.
3289 (decay_conversion): Convert bitfield expressions to the correct
3291 (build_modify_expr): Remove spurious conversions.
3292 * class.c (layout_class_type): Modify the type of bitfields to
3293 indicate a limited range.
3294 * call.c (standard_conversion): Adjust the type of bitfield
3295 expressions used in an rvalue context.
3296 (build_conditional_expr): Likewise.
3298 2006-04-22 Kazu Hirata <kazu@codesourcery.com>
3300 * decl.c: Fix comment typos.
3302 2006-04-21 Eric Christopher <echristo@apple.com>
3304 * decl.c: Fix typo in function name.
3306 2006-04-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3309 * parser.c (cp_parser_class_name): Check for invalid typenames.
3313 * pt.c (tsubst_friend_function): Return early if
3314 pushdecl_namespace_level fails.
3317 * typeck.c (convert_arguments): Return error_mark_node instead of
3319 * cp-tree.h (error_mark_list): Remove declaration.
3320 * decl.c (error_mark_list): Remove definition.
3321 (cxx_init_decl_processing): Do not initialize error_mark_list.
3324 * rtti.c (build_dynamic_cast_1): Check for invalid conversions
3325 before calling convert_to_reference.
3326 * cvt.c (convert_to_reference): Assert that reftype is a
3329 2006-04-19 Mark Mitchell <mark@codesourcery.com>
3332 * class.c (currently_open_class): Tidy.
3333 * decl.c (grokdeclarator): If we encounter an erroneous
3334 declarator, assume that we have already issued an error message
3335 and return. Return error_mark_node instead of NULL_TREE in more
3336 places. Issue errors about function definitions that do not have
3337 a function declarator. Check for complete types for all function
3339 * cp-tree.h (cp_error_declarator): Remove.
3340 (currently_open_class): Change return type.
3341 * parser.c (cp_parser_id_expression): Add optional_p parameter.
3342 (cp_parser_parse_diagnose_invalid_type_name): Adjust calls.
3343 (cp_parser_id_expression): Likewise.
3344 (cp_parser_unqualified_id): If the name is optional, return
3346 (cp_parser_postfix_dot_deref_expression): Adjust calls.
3347 (cp_parser_type_parameter): Likewise.
3348 (cp_parser_unqualified_id): Likewise.
3349 (cp_parser_direct_declarator): Likewise.
3350 (cp_parser_declarator_id): Add optional_p parameter.
3351 (cp_parser_function_definition_from_specifiers_and_declarator):
3352 Assume that start_function indicates failure only if it has issued
3354 (cp_parser_omp_var_list_no_open): Adjust calls.
3356 2006-04-17 Janis Johnson <janis187@us.ibm.com>
3358 PR c++/26114, c++/26115
3359 * typeck.c (cxx_mark_addressable): Restore check for extra_warnings.
3360 * class.c (check_field_decls): Ditto.
3362 2006-04-17 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3364 * init.c (build_offset_ref): Remove superfluous temporary.
3366 2006-04-16 Mark Mitchell <mark@codesourcery.com>
3369 * typeck.c (finish_class_member_access_expr): Robustify
3371 2006-04-15 Kazu Hirata <kazu@codesourcery.com>
3373 * Make-lang.in (cp/pt.o): Depend on vecprim.h.
3374 * pt.c: Include vecprim.h.
3375 (inline_parm_levels): Change the type to VEC(int,heap) *.
3376 (inline_parm_levels_used): Remove.
3377 (maybe_begin_member_template_processing,
3378 maybe_end_member_template_processing): Use VEC instead of
3381 * cp/call.c: Fix comment typos.
3383 2006-04-12 Mark Mitchell <mark@codesourcery.com>
3385 * parser.c (cp_parser_init_declarator): Initialize local variables
3388 2006-04-12 Roger Sayle <roger@eyesopen.com>
3390 * parser.c (cp_parser_init_declarator): Initialise
3391 is_parenthesized_init to false to avoid compiler warning.
3393 2006-04-11 Mark Mitchell <mark@codesourcery.com>
3395 * cp-tree.h (build_operator_new_call): Adjust prototype.
3396 (build_new_method_call): Likewise.
3397 (build_op_delete_call): Likewise.
3398 * init.c (build_raw_new_expr): New function.
3399 (build_new_1): Pass information as parameters, rather than
3400 bundling it into a NEW_EXPR.
3401 (build_new): Adjust accordingly.
3402 (build_vec_delete_1): Adjust for changes to build_op_delete_call.
3403 (build_delete): Likewise.
3404 * decl.c (finish_destructor_body): Likewise.
3405 * call.c (build_operator_new_call): Return the allocation function
3407 (build_op_delete_call): Take allocation function as parameter.
3408 (build_special_member_call): Adjust call to build_new_method_call.
3409 (build_new_method_call): Return function called.
3410 * pt.c (tsubst_copy_and_build): Adjust call to
3411 build_new_method_call.
3412 * semantics.c (finish_call_expr): Likewise.
3413 * parser.c (cp_parser_postfix_expression): Likewise.
3414 * typeck2.c (cxx_incomplete_type_diagnostic): Refer to
3415 "incomplete", not "undefined", types.
3418 * decl.c (grokdeclarator): Remove namespace-handling code for
3419 pointers-to-members.
3420 * parser.c (cp_parser_ptr_operator): Check for qualified names
3424 * parser.c (cp_parser_init_declarator): Adjust logic for deciding
3425 whether or not to look for a pure-specifier.
3426 (cp_parser_member_declaration): Likewise.
3428 2006-04-08 Kazu Hirata <kazu@codesourcery.com>
3430 * decl2.c, pt.c, semantics.c: Fix comment typos.
3432 2006-04-06 Roger Sayle <roger@eyesopen.com>
3434 * call.c (null_ptr_cst_p): Add explicit TREE_CONSTANT_OVERFLOW check.
3436 2006-04-05 Jason Merrill <jason@redhat.com>
3438 * name-lookup.c (push_namespace_with_attribs): Temporarily disable
3439 default hidden visibility for anonymous namespace.
3441 2006-03-29 Roger Sayle <roger@eyesopen.com>
3444 * init.c (build_vec_delete_1): Convert BASE pointer's type to
3445 the base pointer type to avoid a type mismatch in the EQ_EXPR.
3447 2006-03-24 Carlos O'Donell <carlos@codesourcery.com>
3449 * search.c (maybe_suppress_debug_info): If
3450 flag_emit_class_debug_always then don't suppress.
3452 2006-03-22 Jason Merrill <jason@redhat.com>
3454 * name-lookup.c (push_namespace_with_attribs): Only apply hidden
3455 visibility to anonymous namespaces if HAVE_GAS_HIDDEN.
3457 2006-03-21 Jakub Jelinek <jakub@redhat.com>
3460 * cp-gimplify.c (cxx_omp_clause_apply_fn): Handle default arguments.
3462 2006-03-21 Jason Merrill <jason@redhat.com>
3465 * parser.c (cp_parser_declaration): Support attributes on
3466 anonymous namespaces.
3467 * name-lookup.c (push_namespace_with_attribs): Anonymous
3468 namespaces default to hidden visibility.
3470 2006-03-20 Jason Merrill <jason@redhat.com>
3472 PR c++/21764, c++/19238
3473 * decl.c (cp_finish_decl): Call determine_visibility later.
3474 (start_preparsed_function): Likewise.
3475 * cp-tree.h (CP_TYPE_CONTEXT, TYPE_NAMESPACE_SCOPE_P): New macros.
3476 (TYPE_CLASS_SCOPE_P, TYPE_FUNCTION_SCOPE_P): New macros.
3477 * name-lookup.h (struct cp_binding_level): Add has_visibility
3479 * name-lookup.c: Include c-pragma.h.
3480 (push_namespace_with_attribs): Split out from push_namespace.
3481 Push visibility if appropriate. Set TREE_PUBLIC on namespaces.
3482 (leave_scope): Pop visibility if appropriate.
3483 * decl2.c (determine_visibility_from_class): Split out from...
3484 (determine_visibility): ...here. Handle function scope and
3486 (import_export_decl): Move visibility handling to
3487 determine_visibility_from_class.
3488 * parser.c (cp_parser_declaration, cp_parser_namespace_name): Allow
3489 attributes on namespace declarations.
3491 2006-03-15 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3494 * decl.c (grokdeclarator): Do not accept long long double.
3495 Reorganize checks for invalid (combinations of) type modifiers.
3496 Quote modifiers in messages.
3498 2006-03-09 Jason Merrill <jason@redhat.com>
3500 PR c++/16387, c++/16389
3501 * typeck.c (cxx_alignof_expr, cxx_sizeof_expr): New functions.
3502 (cxx_sizeof_or_alignof_expr): Split out from here.
3504 2006-03-09 Diego Novillo <dnovillo@redhat.com>
3506 Merge from gomp-20050608-branch
3508 2006-02-02 Diego Novillo <dnovillo@redhat.com>
3510 * decl.c (pop_labels_1): Use appropriate pointer casting.
3511 (poplevel_named_label_1): Likewise.
3512 (named_label_entry_hash): Likewise.
3513 (named_label_entry_eq): Likewise.
3514 (check_goto): Likewise.
3515 (define_label): Likewise.
3517 2006-01-26 Diego Novillo <dnovillo@redhat.com>
3519 * cp-tree.h (CP_OMP_CLAUSE_INFO): Use TREE_TYPE instead
3521 * pt.c: Use OMP_CLAUSE_CODE and OMP_CLAUSE_OPERAND
3522 instead of TREE_CODE/TREE_OPERAND.
3523 * semantics.c: Likewise.
3524 * parser.c: Likewise.
3526 2005-11-10 Diego Novillo <dnovillo@redhat.com>
3528 * parser.c (cp_parser_omp_threadprivate): Emit diagnostic if
3529 target does not support TLS.
3531 2005-11-09 Jakub Jelinek <jakub@redhat.com>
3533 * decl.c (redeclaration_error_message): Don't error about
3534 DECL_THREAD_LOCAL_P mismatches if CP_DECL_THREADPRIVATE_P
3537 2005-11-08 Jakub Jelinek <jakub@redhat.com>
3540 * semantics.c (finish_omp_barrier, finish_omp_flush): New
3542 * parser.c (cp_parser_omp_barrier): Call finish_omp_barrier.
3543 (cp_parser_omp_flush): Call finish_omp_flush.
3544 * cp-tree.h (finish_omp_barrier, finish_omp_flush): New
3548 * pt.c (tsubst_expr): Handle OMP_MASTER and OMP_ORDERED.
3550 2005-11-03 Jakub Jelinek <jakub@redhat.com>
3552 * semantics.c (finish_omp_threadprivate): Error on class-scope
3555 2005-11-02 Jakub Jelinek <jakub@redhat.com>
3557 * parser.c (cp_parser_omp_all_clauses): If some clause
3558 type is not allowed, don't remove just one of the
3559 clauses, but all clauses added in that loop round.
3561 * semantics.c (finish_omp_clauses): Fix function
3562 comment. Don't handle non-const or mutable specially,
3563 as const and not mutable is predetermined shared and
3564 that leads to double error. Don't ICE if copyin var is
3568 * parser.c (cp_parser_pragma): Diagnose
3569 PRAGMA_OMP_SECTION outside of PRAGMA_OMP_SECTIONS
3572 * semantics.c (finish_omp_threadprivate): Error if V
3573 is automatic variable or has incomplete type.
3575 2005-11-01 Diego Novillo <dnovillo@redhat.com>
3577 * parser.c (cp_parser_omp_all_clauses): Use
3578 OMP_CLAUSE_CHAIN instead of TREE_CHAIN.
3580 2005-11-01 Diego Novillo <dnovillo@redhat.com>
3582 * parser.c (cp_parser_omp_all_clauses): When emitting an
3583 error message, remove the invalid clause from the list.
3585 2005-10-31 Diego Novillo <dnovillo@redhat.com>
3587 * parser.c (cp_parser_omp_parallel): Do not allow 'nowait' in
3588 combined parallel+workshare directives.
3590 2005-10-31 Richard Henderson <rth@redhat.com>
3592 * cp-objcp-common.h (LANG_HOOKS_OMP_CLAUSE_DTOR):
3593 Use cxx_omp_clause_dtor.
3594 * cp-tree.h (CP_OMP_CLAUSE_INFO): New.
3595 (cxx_omp_clause_dtor): New.
3596 * cp-gimplify.c (cxx_omp_clause_apply_fn): New.
3597 (cxx_omp_clause_default_ctor): Use it.
3598 (cxx_omp_clause_copy_ctor, cxx_omp_clause_assign_op):
3600 (cxx_omp_clause_dtor): New.
3601 * semantics.c (finish_omp_clauses): Rewrite cdtor
3602 checking to fill in CP_OMP_CLAUSE_INFO. Don't
3603 specialcase LASTPRIVATE for removal.
3604 (cxx_omp_clause_default_ctor, cxx_omp_clause_copy_ctor,
3605 cxx_omp_clause_assign_op): Move to cp-gimplify.c.
3607 2005-10-28 Jakub Jelinek <jakub@redhat.com>
3609 * semantics.c (finish_omp_threadprivate): If
3610 DECL_RTL_SET_P, call make_decl_rtl again so that
3611 encode_section_info can update SYMBOL_REF's flags.
3613 2005-10-26 Jakub Jelinek <jakub@redhat.com>
3615 * semantics.c (finish_omp_for): Don't segfault if COND
3616 or INCR is NULL. If not calling c_finish_omp_for
3617 right away and one of COND and INCR is NULL, issue
3618 error and don't expand anything.
3621 * cp-tree.h (finish_omp_for): Add PRE_BODY argument.
3622 * semantics.c (finish_omp_for): Likewise. Set
3623 OMP_FOR_PRE_BODY to PRE_BODY if deferring, add it
3624 into the current statement list if not processing
3625 template decl or pass it to c_finish_omp_for.
3627 * parser.c (cp_parser_omp_for_loop): Expand optional DECL_EXPRs
3628 into PRE_BODY statement list. Pass it to finish_omp_for.
3629 * pt.c (tsubst_expr) <case OMP_FOR>: tsubst_expr also
3630 OMP_FOR_PRE_BODY into PRE_BODY stmt list, pass it to
3631 finish_omp_for. Put all the statements into sk_omp
3634 2005-10-25 Jakub Jelinek <jakub@redhat.com>
3637 * parser.c (struct cp_parser): Rename in_iteration_statement
3638 field to in_statement.
3639 (IN_SWITCH_STMT, IN_ITERATION_STMT): Define.
3640 (IN_OMP_BLOCK, IN_OMP_FOR): Change values.
3641 (cp_parser_new, cp_parser_begin_omp_structured_block,
3642 cp_parser_end_omp_structured_block,
3643 cp_parser_omp_for_loop): Adjust for
3644 in_iteration_statement renaming.
3645 (cp_parser_selection_statement): Save
3646 parser->in_iteration, or it temporarily with
3647 IN_SWITCH_STMT for the
3648 cp_parser_implicitly_scoped_statement call.
3649 (cp_parser_iteration_statement): Adjust for
3650 in_iteration_statement renaming. Use
3651 IN_ITERATION_STMT rather than true.
3652 (cp_parser_jump_statement): Adjust for
3653 in_iteration_statement renaming and new values. Don't
3654 error on break in a switch statement within OMP_FOR or
3655 OpenMP structured block.
3658 * parser.c (cp_parser_cache_group): Don't stop if next
3659 token is CPP_PRAGMA_EOL and end is CPP_PRAGMA_EOL as
3660 well. If current token is CPP_PRAGMA, consume
3661 everything until CPP_PRAGMA_EOL inclusive.
3663 2005-10-24 Jakub Jelinek <jakub@redhat.com>
3666 * semantics.c (finish_omp_for): Handle MODOP_EXPR in
3667 addition to MODIFY_EXPR.
3669 2005-10-23 Richard Henderson <rth@redhat.com>
3671 * cp-gimplify.c (struct cp_gimplify_ctx): Remove.
3673 (begin_bc_block, finish_bc_block): Use it.
3674 (push_context, pop_context): Remove.
3675 (cp_genericize): Don't use them. Assert bc_label is null.
3676 * semantics.c (finish_omp_clauses): Create a fake data
3677 element of TYPE for probing ctors.
3679 2005-10-23 Richard Henderson <rth@redhat.com>
3681 * cp-objcp-common.h (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): New.
3682 (LANG_HOOKS_OMP_CLAUSE_COPY_CTOR): New.
3683 (LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP): New.
3684 (LANG_HOOKS_OMP_CLAUSE_DTOR): New.
3685 * semantics.c (finish_omp_clauses): Look through
3686 arrays when looking up special member calls. Also
3687 remove FIRSTPRIVATE when LASTPRIVATE fails.
3688 (cxx_omp_clause_default_ctor, cxx_omp_clause_copy_ctor): New.
3689 (cxx_omp_clause_assign_op): New.
3690 * cp-tree.h: Declare them.
3692 2005-10-21 Richard Henderson <rth@redhat.com>
3694 * decl.c (check_previous_goto_1): Return false if error.
3695 (check_switch_goto): Likewise.
3696 (finish_case_label): Don't emit the case label on error.
3697 * parser.c (struct cp_parser): Revert
3698 in_switch_statement_p changes.
3699 (cp_parser_labeled_statement,
3700 cp_parser_selection_statement): Likewise.
3701 (cp_parser_begin_omp_structured_block): Don't save...
3702 (cp_parser_end_omp_structured_block): or restore
3703 in_switch_statement_p.
3705 2005-10-21 Richard Henderson <rth@redhat.com>
3707 * semantics.c (finish_omp_threadprivate): Set
3708 decl_flags.u2sel when necessary.
3710 2005-10-21 Richard Henderson <rth@redhat.com>
3712 * decl.c (poplevel_named_label_1): Restore creation of the
3714 (decl_jump_unsafe): Check for error_mark_node types.
3715 (check_goto): Don't check cdtor_label. Don't use identify_goto.
3716 * semantics.c (finish_return_stmt): Do check_omp_return before
3717 converting to cdtor_label goto.
3719 2005-10-21 Richard Henderson <rth@redhat.com>
3722 * decl.c (check_omp_return): Return false on error.
3723 * cp-tree.h (check_omp_return): Update decl.
3724 * semantics.c (finish_return_stmt): Avoid adding
3727 2005-10-21 Richard Henderson <rth@redhat.com>
3729 * cp-tree.h (struct language_function): Remove
3731 Change x_named_labels to a hashtable.
3732 (check_omp_return): Declare.
3733 * decl.c (struct named_label_use_entry): Rename from
3734 named_label_use_list. Remove label_decl.
3735 (struct named_label_entry): Rename from
3736 named_label_list. Remove old_value and next. Change
3737 in_try_scope and in_catch_scope to bool. Add
3739 (pop_labels_1): New.
3740 (pop_labels): Use it.
3741 (pop_local_label, poplevel_named_label_1): New.
3742 (poplevel): Use them.
3743 (named_label_entry_hash, named_label_entry_eq): New.
3744 (make_label_decl): Create named_labels. Move label
3745 creation bits from lookup_label.
3746 (declare_local_label): Tidy.
3747 (identify_goto): Split out from ...
3748 (check_previous_goto_1): Add exited_omp argument.
3751 (use_label): Merge into...
3752 (check_goto): ... here. Handle omp scopes.
3753 (check_omp_return): New.
3754 (check_previous_gotos): Merge into...
3755 (define_label): ... here.
3756 (save_function_data): Remove x_named_label_uses reference.
3757 (finish_function): Likewise.
3758 * name-lookup.h (sk_omp): New.
3759 * name-lookup.c (begin_scope): Handle it.
3760 * parser.c (cp_parser_omp_for): Don't create extra
3763 (cp_parser_omp_sections): Likewise.
3764 * semantics.c (finish_return_stmt): Call check_omp_return.
3765 (begin_omp_structured_block): Use sk_omp.
3766 (finish_omp_structured_block): Use do_poplevel. Don't build a
3767 MUST_NOT_THROW expression here.
3768 (begin_omp_parallel, finish_omp_parallel): Don't create extra
3769 compound statements.
3771 2005-10-21 Diego Novillo <dnovillo@redhat.com>
3774 * cp/cp-tree.h (struct lang_decl_flags): Add field
3776 (CP_DECL_IS_THREADPRIVATE): Define.
3777 * cp/semantics.c (finish_omp_threadprivate): Set. Do
3778 not error out if CP_DECL_IS_THREADPRIVATE is set
3780 * cp/decl.c (duplicate_decls): Merge
3781 CP_DECL_THREADPRIVATE_P.
3783 2005-10-20 Richard Henderson <rth@redhat.com>
3785 * cp-gimplify.c (cp_gimplify_omp_for): New.
3786 (cp_gimplify_expr): Call it.
3787 * cp-tree.h (OMP_FOR_GIMPLIFYING_P): New.
3788 * parser.c (struct cp_parser): Rename
3789 in_iteration_statement_p to in_iteration_statement and
3790 change to unsigned char. Similarly with
3791 in_switch_statement. Update all users.
3792 (IN_OMP_BLOCK, IN_OMP_FOR): New.
3793 (cp_parser_labeled_statement): Diagnose case labels
3794 binding closer to an openmp block nested than the
3796 (cp_parser_jump_statement): Diagnose break and
3797 continue labels binding closer to an openmp block than
3798 an iteration or switch.
3799 (cp_parser_omp_for_loop): Mark in_iteration_statement
3801 (cp_parser_begin_omp_structured_block): New.
3802 (cp_parser_end_omp_structured_block): New.
3803 (cp_parser_omp_structured_block): Use them.
3804 (cp_parser_omp_for, cp_parser_omp_sections_scope): Likewise.
3805 (cp_parser_omp_parallel): Likewise.
3807 2005-10-20 Richard Henderson <rth@redhat.com>
3809 * semantics.c (begin_omp_structured_block): New.
3810 (finish_omp_structured_block): New.
3811 (begin_omp_parallel, finish_omp_parallel): Use them.
3812 * parser.c (cp_parser_omp_structured_block): Likewise.
3813 (cp_parser_omp_for): Likewise.
3814 (cp_parser_omp_sections_scope): Likewise.
3815 * cp-tree.h: Declare them.
3817 2005-10-20 Richard Henderson <rth@redhat.com>
3819 * parser.c (cp_parser_omp_master): Return the statement.
3820 (cp_parser_omp_ordered): Likewise.
3821 (cp_parser_omp_construct): Set the locus for them.
3823 2005-10-19 Richard Henderson <rth@redhat.com>
3825 * semantics.c (finish_omp_atomic): Revert to
3826 uses_template_parms.
3828 2005-10-19 Richard Henderson <rth@redhat.com>
3830 * semantics.c (finish_omp_clauses): Avoid
3831 DECL_THREAD_LOCAL_P on a PARM_DECL. Remove some
3832 stub asserts guaranteed to fail.
3834 2005-10-19 Richard Henderson <rth@redhat.com>
3836 * cp-tree.h (OMP_ATOMIC_DEPENDENT_P, OMP_ATOMIC_CODE): New.
3837 (finish_omp_clauses, finish_omp_for, finish_omp_atomic): New.
3838 * parser.c (cp_parser_omp_clause_copyin): Remove.
3839 (cp_parser_omp_all_clauses): Use cp_parser_omp_var_list instead.
3840 Call finish_omp_clauses.
3841 (cp_parser_omp_clause_if): Don't do error checking here.
3842 (cp_parser_omp_clause_num_threads): Likewise.
3843 (cp_parser_omp_clause_schedule): Likewise.
3844 (cp_parser_omp_atomic): Use finish_omp_atomic.
3845 (cp_parser_omp_for_loop): Don't discard DECL_EXPR.
3846 Don't decompose assignment statment here. Use
3849 * pt.c (tsubst_omp_clauses): New.
3850 (tsubst_expr): Handle OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
3851 OMP_SINGLE, OMP_SECTION, OMP_CRITICAL, OMP_ATOMIC.
3852 * semantics.c (finish_omp_clauses): New.
3853 (begin_omp_parallel, finish_omp_parallel): Know Less about the
3854 internals of the stmt_list stack.
3855 (finish_omp_for, finish_omp_atomic): New.
3857 2005-10-18 Jakub Jelinek <jakub@redhat.com>
3859 * semantics.c (cxx_omp_predetermined_sharing): New function.
3860 * cp-tree.h (cxx_omp_predetermined_sharing): New prototype.
3862 (LANG_HOOKS_OMP_PREDETERMINED_SHARING): Redefine.
3864 2005-10-18 Richard Henderson <rth@redhat.com>
3866 * parser.c (cp_parser_omp_single): Use make_node and accessors
3869 2005-10-17 Richard Henderson <rth@redhat.com>
3871 * parser.c (cp_parser_omp_for_loop): Handle declarations.
3873 2005-10-12 Richard Henderson <rth@redhat.com>
3875 * Make-lang.in (CXX_C_OBJS): Add c-omp.o.
3876 * cp-tree.h (begin_omp_parallel, finish_omp_parallel): Declare.
3877 (finish_omp_threadprivate): Declare.
3878 * parser.c (struct cp_lexer): Add in_pragma.
3879 (cp_lexer_consume_token): Don't consume a PRAGMA_EOL
3881 (cp_parser_skip_to_closing_parenthesis): Stop at PRAGMA_EOL.
3882 (cp_parser_skip_to_end_of_statement): Likewise.
3883 (cp_parser_skip_to_end_of_block_or_statement): Likewise.
3884 (cp_parser_skip_to_closing_brace): Likewise.
3885 (cp_parser_skip_to_pragma_eol): Reset in_pragma.
3886 (cp_parser_require_pragma_eol): New.
3887 (cp_parser_statement): Add in_compound argument;
3889 Restart if a non-statement pragma seen outside a
3891 (cp_parser_statement_seq_opt): Stop at PRAGMA_EOL.
3892 (cp_parser_declaration_seq_opt): Likewise.
3893 (cp_parser_member_specification_opt): Likewise.
3894 (cp_parser_function_definition_after_decl): Likewise.
3895 (cp_parser_skip_until_found): Likewise.
3896 (cp_parser_cache_group): Likewise.
3897 (enum pragma_omp_clause, cp_parser_omp_clause_name,
3898 check_no_duplicate_clause,
3899 cp_parser_omp_var_list_no_open,
3900 cp_parser_omp_var_list, cp_parser_omp_clause_copyin,
3901 cp_parser_omp_clause_default, cp_parser_omp_clause_if,
3902 cp_parser_omp_clause_nowait,
3903 cp_parser_omp_clause_num_threads,
3904 cp_parser_omp_clause_ordered,
3905 cp_parser_omp_clause_reduction,
3906 cp_parser_omp_clause_schedule,
3907 cp_parser_omp_all_clauses,
3908 cp_parser_omp_structured_block, cp_parser_omp_atomic,
3909 cp_parser_omp_barrier, cp_parser_omp_critical,
3910 cp_parser_omp_flush, cp_parser_omp_for_loop,
3911 cp_parser_omp_for, cp_parser_omp_master,
3912 cp_parser_omp_ordered, cp_parser_omp_sections_scope,
3913 cp_parser_omp_sections, cp_parser_omp_parallel,
3914 cp_parser_omp_single, cp_parser_omp_threadprivate,
3915 cp_parser_omp_construct): New.
3916 (cp_parser_pragma): Handle OpenMP pragmas.
3917 * semantics.c (finish_omp_threadprivate): New.
3918 (begin_omp_parallel, finish_omp_parallel): New.
3920 2005-10-11 Richard Henderson <rth@redhat.com>
3922 * parser.c (struct cp_token): Add pragma_kind.
3923 (eof_token): Initialize it.
3924 (cp_lexer_handle_pragma): Remove.
3925 (cp_parser_initial_pragma): New.
3926 (cp_lexer_new_main): Use it.
3927 (cp_lexer_get_preprocessor_token): Initialize pragma_kind.
3928 (cp_lexer_print_token): Don't handle CPP_PRAGMA.
3929 (cp_parser_skip_to_pragma_eol): New.
3930 (cp_parser_error): Use it.
3933 2005-10-09 Richard Henderson <rth@redhat.com>
3935 * lex.c (parse_strconst_pragma): Update for c_lex name change.
3936 (handle_pragma_java_exceptions): Likewise.
3937 * parser.c (cp_lexer_new_main): Likewise.
3939 2005-10-06 Richard Henderson <rth@redhat.com>
3941 * parser.c (cp_lexer_new_main): Comment out defer_pragmas.
3942 (cp_lexer_handle_pragma): Comment out
3943 cpp_handle_deferred_pragma.
3945 2005-10-01 Richard Henderson <rth@redhat.com>
3947 * name-lookup.c (lookup_name): Remove prefer_type argument.
3948 (lookup_name_prefer_type): New function.
3949 * name-lookup.h (lookup_name_prefer_type): Declare it.
3950 * decl.c (lookup_and_check_tag): Use it.
3951 * pt.c (tsubst_friend_class): Likewise. Update for
3953 (lookup_template_class, tsubst_copy_and_build): Likewise.
3955 2006-03-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3958 * tree.c (bot_manip): Don't call mark_used.
3960 2006-03-02 Mike Stump <mrs@apple.com>
3962 * decl2.c (import_export_decl): Remove redundant call to
3963 targetm.cxx.key_method_may_be_inline ().
3965 2006-03-02 Richard Sandiford <richard@codesourcery.com>
3967 * decl.c (start_decl): Use have_global_bss_p when deciding
3968 whether to make the decl common.
3970 2006-03-01 Mike Stump <mrs@apple.com>
3973 * decl2.c (import_export_decl): Fix ABI breakage on darwin.
3975 2006-02-24 Geoffrey Keating <geoffk@apple.com>
3977 * except.c (expand_start_catch_block): Handle
3978 flag_use_cxa_get_exception_ptr.
3980 2006-02-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3983 * decl.c (grok_op_properties): Check for ellipsis in arguments of
3986 2006-02-20 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
3988 * Make-lang.in (C++): Remove.
3989 (.PHONY): Remove C++.
3991 2006-02-18 Mark Mitchell <mark@codesourcery.com>
3994 * cp-tree.h (cp_finish_decl): Adjust declaration.
3995 (grokbitfield): Likewise.
3996 (finish_static_data_member_decl): Likewise.
3997 * init.c (constant_value_1): Ensure processing_template_decl when
3998 folding non-dependent initializers for static data members of
3999 dependent types. Return error_mark_node for erroneous
4001 * class.c (get_vtable_decl): Use finish_decl, not cp_finish_decl.
4002 * decl.c (cp_make_fname_decl): Adjust call to cp_finish_decl.
4003 (cp_finish_decl): Add init_const_expr_p parameter. Set
4004 DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P here.
4005 (finish_decl): Adjust call to cp_finish_decl.
4006 (compute_array_index_type): Robustify.
4007 (start_method): Use finish_decl, not cp_finish_decl.
4008 * rtti.c (emit_tinfo_decl): Likewise.
4009 * except.c (initialize_handler_parm): Adjust call to
4011 (expand_start_catch_block): Likewise.
4012 * cvt.c (build_up_reference): Adjust call to cp_finish_decl.
4013 * pt.c (instantiate_class_template): Adjust call to
4014 finish_static_data_member_decl.
4015 (tsubst_expr): Use finish_decl, not cp_finish_decl.
4016 (instantiate_decl): Adjust call to cp_finish_decl.
4017 * name-lookup.c (pushdecl_top_level_1): Use finish_decl, not
4019 * decl2.c (finish_static_data_member_decl): Add init_const_expr_p
4021 (grokfield): Likewise.
4022 * parser.c (cp_parser_condition): Check for constant initializers.
4023 (cp_parser_init_declarator): Adjust calls to grokfield and
4024 cp_finish_decl. Don't set
4025 DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P here.
4026 (cp_parser_member_declaration): Likewise.
4027 (cp_parser_objc_class_ivars): Likewise.
4029 2006-02-14 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4031 * call.c (standard_conversion): Return NULL instead of 0.
4032 (build_user_type_conversion_1): Likewise.
4033 (tourney): Likewise.
4034 * decl.c (redeclaration_error_message): Likewise.
4035 * error.c (language_to_string): Likewise.
4037 2006-02-13 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4039 * cp-tree.h (warn_hidden): Remove prototype.
4040 * class.c (warn_hidden): Make static.
4042 * cp-tree.h (build_type_conversion): Remove prototype.
4043 * cvt.c (build_type_conversion): Add prototype, make static.
4045 * cp-tree.h (push_tinst_level): Remove prototype.
4046 (pop_tinst_level): Likewise.
4047 * pt.c (push_tinst_level): Add prototype, make static.
4048 (pop_tinst_level): Likewise.
4050 2006-02-13 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4052 * decl.c (grokdeclarator): Return NULL_TREE instead of 0.
4053 * typeck.c (unary_complex_lvalue): Likewise.
4055 2006-02-13 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4057 * lex.c (parse_strconst_pragma): Return error_mark_node instead of
4058 "(tree)-1" to indicate failure. Simplify.
4059 (handle_pragma_interface): Test for error_mark_node instead of
4061 (handle_pragma_implementation): Likewise.
4063 2006-02-13 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4066 * parser.c (cp_parser_decl_specifier_seq): Check for duplicate
4067 decl-specifiers. Remove extra check for duplicate 'friend'.
4068 * decl.c (grokdeclarator): Remove check for duplicate
4069 decl-specifiers. Set longlong together with long_p.
4071 2006-02-12 Jason Merrill <jason@redhat.com>
4074 * except.c (build_throw): Add a CLEANUP_POINT_EXPR inside the
4075 TRY_CATCH_EXPR or MUST_NOT_THROW_EXPR.
4077 2006-02-10 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4079 * class.c (debug_class): Remove extern.
4080 (debug_thunks): Likewise.
4082 2006-02-09 Gabriel Dos Reis <gdr@integrable-solutions.net>
4084 * typeck.c (string_conv_p): Don't test for flag_const_strings.
4086 2006-02-08 Jason Merrill <jason@redhat.com>
4089 * cp-gimplify.c (cp_gimplify_expr): Don't call
4090 cp_gimplify_init_expr for MODIFY_EXPRs.
4091 * typeck2.c (split_nonconstant_init_1): Use INIT_EXPR.
4093 2006-02-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4096 * decl.c (grokdeclarator): Set dname also for destructor.
4099 * decl.c (grokdeclarator): Clear storage_class together with staticp.
4101 2006-02-07 Gabriel Dos Reis <gdr@integrable-solutions.net>
4103 * cp-tree.h (tf_warning_or_error): Renamed from tf_warn_or_error.
4104 (cp_build_qualified_type): Propogate renaming.
4105 * call.c (convert_like_real): Likewise.
4106 * cvt.c (cp_convert_to_pointer, convert_to_reference): Likewise.
4107 * decl.c (make_typename_type, grokdeclarator): Likewise.
4108 * pt.c (tsubst_friend_function, instantiate_class_template,
4109 tsubst_default_argument, instantiate_decl,
4110 tsubst_initializer_list, tsubst_enum): Likewise.
4111 * semantics.c (finish_template_type): Likewise.
4112 * typeck.c (build_ptrmemfunc, convert_for_assignment): Likewise.
4114 2006-02-07 Dirk Mueller <dmueller@suse.com>
4116 * typeck.c (build_binary_op): Annotate div-by-zero
4117 warnings to make -Wno-div-by-zero have an effect.
4119 2006-02-07 Mark Mitchell <mark@codesourcery.com>
4122 * pt.c (coerce_template_template_parms): Do not templates with
4123 excess default arguments to match template template parameters
4124 with fewer parameters.
4125 (coerce_template_parms): Add use_default_args parameter; use
4126 default arguments only when true.
4127 (lookup_template_class): Adjust call to coerce_template_parms.
4128 (fn_type_unification): Likewise.
4130 (get_bindings): Likewise.
4131 (dependent_type_p): Add assertions.
4133 2006-02-06 Roger Sayle <roger@eyesopen.com>
4135 * decl.c (grokdeclarator): Don't bother checking for CHAR_TYPE.
4136 * rtti.c (typeinfo_in_lib_p): Likewise.
4137 * cp-tree.h (INTEGRAL_CODE_P, CP_INTEGRAL_TYPE_P): Likewise.
4138 * name-lookup.c (arg_assoc_type): Likewise.
4140 2006-02-04 Gabriel Dos Reis <gdr@integrable-solutions.net>
4142 * cp-tree.h (tf_warn_or_error): New substituion flag.
4143 (cp_build_qualified_type): Use it.
4144 * call.c (convert_like_real): Likewise.
4145 * cvt.c (cp_convert_to_pointer): Likewise.
4146 (convert_to_reference): Likewise.
4147 * decl.c (make_typename_type): Likewise.
4148 (grokdeclarator): Likewise.
4149 * pt.c (tsubst_friend_function): Likewise.
4150 (tsubst_friend_class): Likewise.
4151 (instantiate_class_template): Likewise.
4152 (tsubst_default_argument): Likewise.
4153 (instantiate_decl): Likewise.
4154 (tsubst_initializer_list): Likewise.
4155 (tsubst_enum): Likewise.
4156 * semantics.c (finish_template_type): Likewise.
4157 * typeck.c (build_ptrmemfunc): Likewise.
4158 (convert_for_assignment): Likewise.
4160 2006-02-03 Lee Millward <lee.millward@gmail.com>
4162 * typeck.c (string_conv_p): Pass appropiate
4163 OPT_Wxxxx values when calling warning().
4164 (build_array_ref, cxx_mark_addressable): Likewise.
4165 (check_return_expr): Likewise.
4167 * init.c (perform_member_init): Likewise.
4168 (sort_mem_initializers, emit_mem_initializers): Likewise.
4170 * class.c (check_field_decls): Likewise.
4171 (warn_about_ambiguous_bases): Likewise.
4173 * decl.c (pop_label, poplevel): Likewise.
4174 (duplicate_decls, grok_op_properties): Likewise.
4175 (start_preparsed_function, finish_function): Likewise.
4177 * name-lookup.c (pushdecl_maybe_friend): Likewise.
4178 (pushdecl_maybe_friend): Likewise.
4180 * parser.c (cp_parser_warn_min_max): Likewise.
4181 (cp_parser_cast_expression): Likewise.
4183 * method.c (lazily_declare_fn): Likewise.
4184 * cvt.c (convert_to_void): Likewise.
4185 * mangle.c (finish_mangling): Likewise.
4186 * cp-gimplify.c (gimplify_expr_stmt): Likewise.
4188 2006-02-03 Mark Mitchell <mark@codesourcery.com>
4190 * name-lookup.c (do_class_using_decl): Use IDENTIFIER_TYPENAME_P,
4191 not IDENTIFIER_OPNAME_P.
4193 2006-01-31 Mark Mitchell <mark@codesourcery.com>
4196 * cp-tree.h (DECL_TEMPLATE_SPECIALIZATIONS): Revise
4198 * pt.c (determine_specialization): Use INNERMOST_TEMPLATE_PARMS,
4200 (instantiate_class_template): Simplify.
4201 (verify_class_unification): Remove.
4202 (unify): Document parameters. Use INNERMOST_TEMPLATE_ARGS to
4203 permit multiple levels of template arguments.
4204 (more_specialized_class): Simplify.
4205 (get_class_bindings): Pass full arguments to unify. Fold
4206 verify_class_unification into this function. Return full
4208 (most_specialized_class): Adjust for changes to
4209 get_class_bindings. Issue errors here for ambiguity. Return the
4210 fully deduced arguments for the most specialized class, in
4211 addition to the partial specialization.
4213 2006-01-31 Ben Elliston <bje@au.ibm.com>
4215 * mangle.c: Comment fix.
4217 2006-01-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
4219 * Make-lang.in (cp-warn): Include CXX_COMPAT_WARN.
4220 * repo.c (extract_string, afgets): Use cast when converting from
4223 2006-01-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
4225 * call.c (alloc_conversion): Use cast when converting from void *.
4226 (alloc_conversions): Likewise.
4227 (add_candidate): Likewise.
4228 (print_z_candidates): Likewise.
4229 (add_warning): Likewise.
4230 * pt.c (retrieve_local_specialization): Likewise.
4231 (process_partial_specialization): Likewise.
4232 (mangle_class_name_for_template): Likewise.
4233 (tsubst_template_args): Likewise.
4234 * typeck2.c (pat_calc_hash): Likewise.
4235 (pat_compare): Likewise.
4236 (abstract_virtuals_error): Likewise.
4237 * class.c (method_name_cmp): Likewise.
4238 (resort_method_name_cmp): Likewise.
4239 (get_vfield_name): Likewise.
4240 * decl2.c (generate_ctor_and_dtor_functions_for_priority): Likewise.
4241 * lex.c (init_reswords): Likewise.
4242 * rtti.c (create_pseudo_type_info): Likewise.
4243 * search.c (dfs_lookup_base): Likewise.
4244 (dfs_dcast_hint_pre): Likewise.
4245 (dfs_dcast_hint_post): Likewise.
4246 * tree.c (hash_tree_cons): Likewise.
4247 * repo.c (extract_string): Likewise.
4249 * cp-objcp-common.c (decl_shadowed_for_var_lookup): Likewise.
4250 * g++spec.c (lang_specific_driver): Likewise.
4252 2006-01-28 Gabriel Dos Reis <gdr@integrable-solutions.net>
4254 * call.c (joust): Pass option code to warning. Use inform for
4256 * class.c (check_bases): Likewise.
4257 (maybe_warn_about_overly_private_class): Likewise.
4258 (check_field_decls): Likewise.
4259 (layout_empty_base): Likewise.
4260 (layout_virtual_bases): Likewise.
4261 (layout_class_type): Likewise.
4263 2006-01-28 Mark Mitchell <mark@codesourcery.com>
4266 * decl.c (start_preparsed_function): Call maybe_apply_pragma_weak
4268 (start_function): ... here.
4270 2006-01-28 Mark Mitchell <mark@codesourcery.com>
4273 * class.c (resolve_address_of_overloaded_function): Adjust use of
4274 return value from most_specialized_instantiation.
4275 * pt.c (determine_specialization): Avoid multiple calls to
4277 (most_specialized_instantiation): When a tie occurs, set the
4278 current presumed champion to the next template. Return the
4279 TREE_LIST node containing the template, rather than the template
4281 (most_specialized): Remove.
4282 * name-lookup.c (push_overloaded_decl): When duplicate_decls
4283 indicates a failed redeclaration, report that to callers.
4285 2006-01-26 Jason Merrill <jason@redhat.com>
4288 * name-lookup.c (parse_using_directive): Require strong using to
4289 name a nested namespace.
4291 2006-01-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4294 * cp-tree.h (do_poplevel): Remove prototype.
4295 * semantics.c (do_poplevel): Add prototype. Make static.
4298 * cp-tree.h (default_conversion): Remove prototype.
4299 * typeck.c (default_conversion): Make static.
4301 2006-01-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4303 * cp-tree.h (get_primary_binfo): Remove prototype.
4304 (push_using_decl): Likewise.
4305 (current_template_args): Likewise.
4306 (more_specialized_class): Likewise.
4307 (mark_class_instantiated): Likewise.
4308 (default_conversion): Likewise.
4309 (pfn_from_ptrmemfunc): Likewise.
4310 * class.c (get_primary_binfo): Add prototype, make static, simplify.
4311 * name-lookup.c (push_using_decl): Make static.
4312 * pt.c (current_template_args): Likewise.
4313 (more_specialized_class): Likewise.
4314 (mark_class_instantiated): Likewise.
4315 * typeck.c (default_conversion): Make static.
4316 (pfn_from_ptrmemfunc): Add prototype, make static.
4318 2006-01-24 Dirk Mueller <dmueller@suse.de>
4320 * typeck.c (build_binary_op): Use OPT_Wfloat_equal in warning().
4322 2006-01-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4325 * parser.c (cp_parser_unqualified_id): Check that destructor name
4327 * call.c (check_dtor_name): Do not expect a BIT_NOT_EXPR.
4328 Adjust comment. Return early if possible.
4329 Use same_type_p to compare types.
4330 * typeck.c (lookup_destructor): Adjust call to check_dtor_name.
4332 2006-01-24 Mark Mitchell <mark@codesourcery.com>
4334 * semantics.c: Remove outdated comment.
4336 2006-01-23 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4338 * cp-tree.h (do_poplevel): Remove prototype.
4339 * semantics.c (do_poplevel): Add prototype. Make static.
4341 * cp-tree.h (original_type): Remove prototype.
4342 * typeck.c (original_type): Make static.
4344 * cp-tree.h (declare_global_var): Remove prototype.
4345 * decl.c (declare_global_var): Make static.
4347 * cp-tree.h (implicitly_declare_fn): Remove prototype.
4348 * method.c (implicitly_declare_fn): Make static.
4350 * cp-tree.h (fold_decl_constant_value): Remove prototype.
4351 * pt.c (fold_decl_constant_value): Make static.
4353 * cp-tree.h (build_x_delete): Remove prototype.
4354 * init.c (build_vec_delete_1): Call build_op_delete_call directly
4355 and not via build_x_delete.
4356 (build_x_delete): Remove.
4358 * cp-tree.h (get_vtt_name): Remove prototype.
4359 * class.c (get_vtt_name): Remove.
4360 (build_vtt): Call mangle_vtt_for_type instead of get_vtt_name.
4362 2006-01-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
4364 * rtti.c (build_dynamic_cast): Fix comment.
4366 2006-01-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
4369 * rtti.c (build_dynamic_cast): Reject dynamic_cast use if
4372 2006-01-21 Mark Mitchell <mark@codesourcery.com>
4375 * class.c (build_base_path): Generate a NOP_EXPR instead of a
4376 COMPONENT_REF if the base and derived classes are at the same
4380 * decl.c (begin_destructor_body): Robustify.
4383 * parser.c (cp_parser_direct_declarator): Robustify.
4385 2006-01-20 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4387 * parser.c (cp_lexer_next_token_is_keyword): Simplify.
4389 * parser.c (clear_decl_specs): Remove prototype.
4391 * parser.c (cp_parser_expression_fn): Remove.
4393 * call.c (add_builtin_candidates): Remove superfluous return.
4394 * name-lookup.c (do_toplevel_using_decl): Likewise.
4395 * parser.c (cp_parser_type_specifier_seq): Likewise.
4396 (cp_parser_save_default_args): Likewise.
4398 2006-01-20 Dirk Mueller <dmueller@suse.com>
4401 * semantics.c (finish_if_stmt): Call empty_body_warning.
4402 * parser.c (cp_parser_implicitly_scoped_statement):
4403 Mark empty statement with an empty stmt.
4405 2006-01-19 Mark Mitchell <mark@codesourcery.com>
4408 * name-lookup.c (do_class_using_decl): Don't try to look up base
4409 classes in templates with dependent base types.
4411 2006-01-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4414 * pt.c (maybe_process_partial_specialization): Return early on
4417 2006-01-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4420 * decl.c (start_preparsed_function): Check default arguments
4422 * name-lookup.c (pushdecl_maybe_friend): Check default arguments
4423 of all functions and function templates.
4424 * parser.c (cp_parser_late_parsing_default_args): Check default
4426 * decl2.c (check_default_args): Set missing default arguments to
4429 2006-01-18 Mark Mitchell <mark@codesourcery.com>
4432 * cp-tree.h (push_class_stack): New function.
4433 (pop_class_stack): Likewise.
4434 * class.c (class_stack_node): Add hidden field.
4435 (pushclass): Clear it.
4436 (push_class_stack): New function.
4437 (pop_class_stack): Likewise.
4438 (currently_open_class): Ignore hidden classes.
4439 (currently_open_derived_class): Likewise.
4440 * name-lookup.c (push_to_top_level): Call push_class_stack.
4441 (pop_from_top_level): Call pop_class_stack.
4443 2006-01-18 Kazu Hirata <kazu@codesourcery.com>
4445 * tree.c (find_tree_t, find_tree): Remove.
4446 * cp-tree.h: Remove the prototype for find_tree.
4448 2006-01-18 Jakub Jelinek <jakub@redhat.com>
4450 * search.c (lookup_conversions_r): Fix a pasto.
4452 2006-01-17 Eric Christopher <echristo@apple.com>
4454 * call.c (convert_like_real): When issuing conversion
4455 warnings, depend on OPT_Wconversion.
4456 * cvt.c (build_expr_type_conversion): Ditto.
4458 2006-01-17 Kazu Hirata <kazu@codesourcery.com>
4460 * name-lookup.c (lookup_namespace_name): Remove.
4461 * name-lookup.h: Remove the prototype for
4462 lookup_namespace_name.
4464 2006-01-17 Jakub Jelinek <jakub@redhat.com>
4467 * decl.c (compute_array_index_type): After issuing not an integral
4468 constant-expression error, set size to 1 to avoid ICEs later on.
4470 2006-01-16 Ian Lance Taylor <ian@airs.com>
4472 * parser.c: Include "cgraph.h".
4473 (cp_parser_asm_definition): Call cgraph_add_asm_node rather than
4476 2006-01-16 Rafael �ila de Esp�dola <rafael.espindola@gmail.com>
4478 * g++spec.c (lang_specific_spec_functions): Remove.
4480 2006-01-15 Gabriel Dos Reis <gdr@integrable-solutions.net>
4482 * decl.c (check_initializer): Fix thinko.
4484 2006-01-14 Mark Mitchell <mark@codesourcery.com>
4487 * parser.c (cp_parser_direct_declarator): Use cp_parser_error
4490 2006-01-13 Jason Merrill <jason@redhat.com>
4492 * pt.c (check_explicit_specialization): Use CP_DECL_CONTEXT even more.
4494 * name-lookup.c (set_decl_namespace): Use CP_DECL_CONTEXT.
4495 * pt.c (check_explicit_specialization): Likewise.
4497 2006-01-12 Jason Merrill <jason@redhat.com>
4500 * pt.c (check_explicit_specialization): Handle namespace
4502 * name-lookup.c (set_decl_namespace): Likewise.
4504 2006-01-12 Nathan Sidwell <nathan@codesourcery.com>
4507 * class.c (handle_using_decl): Pass correct scope to
4508 cp_emit_debug_info_for_using.
4510 2006-01-11 Nathan Sidwell <nathan@codesourcery.com>
4513 * tree.c (lvalue_p_1): Any part of a COMPONENT_REF affects
4516 2006-01-06 Gabriel Dos Reis <gdr@integrablesolutions.net>
4518 * parser.c (cp_parser_primary_expression): Document the grammar
4519 for the built-in offsetof, a GNU extension.
4521 2006-01-04 Zdenek Dvorak <dvorakz@suse.cz>
4524 * init.c (constant_value_1): Unshare use of DECL_INITIAL. Fix a typo
4527 2006-01-04 Chris Lattner <sabre@gnu.org>
4529 * typeck2.c: update copyright to 2006
4530 (split_nonconstant_init_1): Set TREE_CONSTANT to true.
4532 2006-01-04 Mark Mitchell <mark@codesourcery.com>
4535 * parser.c (cp_parser_nested_name_specifier_opt): Preserve access
4536 checks, even when parsing tentatively.
4538 2006-01-04 Richard Henderson <rth@redhat.com>
4540 Merge from gomp branch.
4541 * lex.c (handle_pragma_java_exceptions): Fix whitespace.
4542 * parser.c (struct cp_token): Add pragma_kind.
4543 (eof_token): Update to match.
4544 (struct cp_lexer): Add in_pragma; rearrange next for better packing.
4545 (cp_parser_initial_pragma): New.
4546 (cp_lexer_new_main): Use it. Don't bother clearing
4547 c_lex_return_raw_strings.
4548 (cp_lexer_get_preprocessor_token): Always initialize keyword
4549 and pragma_kind fields. Handle CPP_PRAGMA.
4550 (cp_lexer_consume_token): Don't allow CPP_PRAGMA_EOL when
4552 (cp_lexer_handle_pragma): Remove. Update callers to cp_parser_pragma.
4553 (cp_lexer_print_token) <CPP_PRAGMA>: Don't print as a string.
4554 (cp_parser_skip_to_pragma_eol): New.
4555 (cp_parser_error): Use it.
4556 (cp_parser_skip_to_closing_parenthesis): Stop at CPP_PRAGMA_EOL;
4557 rearrange with switch statement.
4558 (cp_parser_skip_to_end_of_statement): Likewise.
4559 (cp_parser_skip_to_end_of_block_or_statement): Likewise.
4560 (cp_parser_skip_to_closing_brace): Likewise.
4561 (cp_parser_skip_until_found): Likewise.
4562 (cp_parser_statement): Add in_compound argument; update callers.
4563 Use it to decide how to handle pragma parsing.
4564 (cp_parser_labeled_statement): Add in_compound argument; pass
4565 it on to cp_parser_statement.
4566 (cp_parser_statement_seq_opt): Stop at CPP_PRAGMA_EOL.
4567 (cp_parser_declaration_seq_opt): Likewise.
4568 (cp_parser_parameter_declaration): Likewise.
4569 (cp_parser_member_specification_opt): Likewise.
4570 (cp_parser_function_definition_after_decl): Likewise.
4571 (cp_parser_cache_group): Handle CPP_PRAGMA/CPP_PRAGMA_EOL pairs.
4572 (cp_parser_pragma): New.
4575 2006-01-04 Dirk Mueller <dmueller@suse.com>
4577 * decl.c (finish_constructor_body): create simple
4578 compound stmt instead of a if(1) { } construct.
4580 2006-01-03 Mark Mitchell <mark@codesourcery.com>
4583 * name-lookup.c (push_class_level_binding): When a derived class
4584 provides a type binding, eliminate any type binding from a base
4588 * repo.c (repo_emit_p): Always instantiate static data members
4589 initialized by constant expressions, so that there values are
4592 2006-01-02 Mark Mitchell <mark@codesourcery.com>
4595 * class.c (add_method): Set TYPE_HAS_CONVERSION for classes with a
4596 conversion operator.
4597 * decl.c (grokdeclarator): Do not set TYPE_HAS_CONVERSION here.
4600 * class.c (add_method): Never associate more than one destructor
4601 with a single class.
4604 * cp-tree.h (do_friend): Adjust prototype.
4605 * decl.c (grokfndecl): Make funcdef_flag a bool, not an int.
4606 (grokdeclarator): Likewise. Refine check for invalid
4607 declarations/definitions of member functions outside of their own
4609 * friend.c (do_friend): Make funcdef_flag a bool, not an int.
4612 * parser.c (cp_parser_mem_initializer_list): Check result of
4613 cp_parser_mem_initializer against error_mark_node, not NULL_TREE.
4614 (cp_parser_mem_initializer): Return error_mark_node for failure.
4617 * parser.c (cp_parser_template_parameter_list): Call
4618 begin_template_parm_list and end_template_parm_list here.
4619 (cp_parser_type_parameter): Not here.
4620 (cp_parser_template_declaration_after_export): Or here.
4621 (cp_parser_elaborated_type_specifier): Call
4622 cp_parser_check_template_parameters.
4624 * tree.c (build_target_expr_with_type): Use force_target_expr.
4626 * decl2.c (mark_used): Fix typo in comment.
4628 2006-01-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4630 * parser.c (cp_parser_using_declaration): Skip name-lookup on
4633 2005-12-30 Gabriel Dos Reis <gdr@integrable-solutions.net>
4635 * cxx-pretty-print.c (pp_cxx_constant): New. Print
4636 string-literal in parens if input program says so.
4637 (pp_cxx_primary_expression): Hand off constant printing to
4639 (pp_cxx_pretty_printer_init): Set pp->c_base.constant.
4640 (pp_cxx_expression): Use pp_cxx_constant for literals.
4641 * error.c (dump_expr): Use pp_constant for literals.
4643 2005-12-29 Nathan Sidwell <nathan@codesourcery.com>
4645 * method.c (make_thunk): Don't set comdat_linkage here.
4646 (use_thunk): Make thunk one only here, if thunk target is
4649 2005-12-26 Mark Mitchell <mark@codesourcery.com>
4652 * decl.c (grokdeclarator): Remove dead code.
4653 * ptree.c (cxx_print_xnode): Handle BASELINK.
4654 * parser.c (make_id_declarator): Add sfk parameter.
4655 (cp_parser_direct_declarator): Do not pass TYPE_DECLs to
4657 (cp_parser_declarator_id): Simplify BASELINKs here.
4658 (cp_parser_member_declaration): Adjust calls to
4661 2005-12-26 Mark Mitchell <mark@codesourcery.com>
4663 PR c++/23171, c++/23172, c++/25417.
4664 * typeck.c (build_unary_op): Create temporary variables for
4665 compound literals whose addresses are taken.
4666 * init.c (expand_aggr_init_1): Use COMPOUND_LITERAL_P.
4667 * decl.c (reshape_init_vector): Likewise.
4668 (reshape_init): Give it external linkage.
4669 (check_initializer): Use COMPOUND_LITERAL_P.
4670 (initialize_artificial_var): Allow the initializer to be a
4672 * call.c (make_temporary_var_for_ref_to_temp): Use
4673 create_temporary_var.
4674 * cp-tree.h (COMPOUND_LITERAL_P): New macro.
4675 (rehape_init): Declare.
4676 * typeck2.c (digest_init): Use COMPOUND_LITERAL_P.
4677 * semantics.c (finish_compound_literal): Use reshape_init.
4679 2005-12-23 Mark Mitchell <mark@codesourcery.com>
4682 * pt.c (instantiate_template): Handle SFINAE.
4684 2005-12-23 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4686 * decl.c (grokdeclarator): Improve diagnostic for friend
4687 declarations of class members.
4689 2005-12-22 Mark Mitchell <mark@codesourcery.com>
4692 * tree.c (really_overloaded_fn): Tweak comment.
4693 * pt.c (tsubst_call_declarator_parms): Remove.
4694 (tsubst_copy): Call mark_used on the member referenced by an
4696 * semantics.c (finish_qualified_id_expr): Simplify.
4697 * decl2.c (mark_used): Accept BASELINKs.
4700 * typeck.c (build_unary_op): Pass DECLs not names to
4702 * init.c (build_offset_ref): Do not do name lookup. Do not call
4704 * call.c (build_call): Simplify and tidy.
4705 * semantics.c (finish_qualified_id_expr): Call mark_used.
4707 2005-12-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4710 * parser.c (cp_parser_pure_specifier): Check for PURE_ZERO to
4711 identify a single '0'.
4713 2005-12-20 Mark Mitchell <mark@codesourcery.com>
4716 * decl.c (use_eh_spec_block): New function.
4717 (store_parm_decls): Use it.
4718 (finish_function): Likewise.
4720 2005-12-19 Mark Mitchell <mark@codesourcery.com>
4723 * init.c (expand_member_init): Print messages about baseclasses
4724 using %T rather than %D.
4727 * class.c (add_method): Do not treat templates as identical unless
4728 their return types are the same.
4730 2005-12-12 Mark Mitchell <mark@codesourcery.com>
4733 * tree.c (build_qualified_name): Return error_mark_node for
4736 2005-12-10 Mark Mitchell <mark@codesourcery.com>
4739 * pt.c (tsubst_copy_and_build): Permit dependent types for the
4740 object in a class member access expression.
4742 2005-12-10 Terry Laurenzo <tlaurenzo@gmail.com>
4745 * mangle.c (write_bare_function_type): Mangle return type for
4746 methods of Java classes
4748 2005-12-08 Th�dore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
4750 * call.c (build_conditional_expr): Print types in error messages.
4752 2005-12-07 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4754 * expr.c (cxx_expand_expr): Call gcc_unreachable instead of abort.
4756 2005-12-07 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4758 * cp-gimplify.c (gimplify_cp_loop): Use fold_build3.
4760 2005-12-07 Rafael �ila de Esp�dola <rafael.espindola@gmail.com>
4762 * Make-lang.in (c++.all.build, c++.install-normal): Remove.
4764 2005-12-07 Rafael �ila de Esp�dola <rafael.espindola@gmail.com>
4766 * Make-lang.in: Remove all dependencies on s-gtype.
4768 2005-12-06 Aldy Hernandez <aldyh@redhat.com>
4771 * decl.c (reshape_init_array_1): Handle max_index of -1.
4773 2005-12-06 Roger Sayle <roger@eyesopen.com>
4775 * typeck.c (build_binary_op): Issue warning if either operand of a
4776 comparison operator is a string literal, except for testing equality
4777 or inequality against NULL.
4779 2005-12-06 Roger Sayle <roger@eyesopen.com>
4782 * decl.c (compute_array_index_type): Check that itype is an
4783 INTEGER_CST node before testing/clearing TREE_OVERFLOW.
4785 2005-12-05 Daniel Berlin <dberlin@dberlin.org>
4787 * ptree.c (cxx_print_decl): Update to check for decl_common
4790 2005-12-02 Mark Mitchell <mark@codesourcery.com>
4793 * decl.c (duplicate_decls): Don't rely on DECL_TEMPLATE_INFO after
4796 2005-12-02 Richard Guenther <rguenther@suse.de>
4798 * semantics.c (simplify_aggr_init_expr): Use buildN instead
4801 2005-12-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
4803 * parser.c (cp_lexer_new_main): Usr GGC_RESIZEVEC instead of
4805 (cp_parser_template_argument_list): Use XRESIZEVEC instead of
4807 * class.c (pushclass): Likewise.
4809 2005-12-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
4811 * decl2.c (get_priority_info): Use XNEW, not xmalloc.
4812 * decl.c (push_switch): Likewise.
4813 * lex.c (handle_pragma_implementation): Likewise.
4814 * cp-objcp-common.c (decl_shadowed_for_var_insert): Use GGC_NEW,
4816 (cxx_initialize_diagnostics): Use XNEW, not xmalloc.
4817 * class.c (init_class_processing): Use XNEWVEC, not xmalloc.
4818 * g++spec.c (lang_specific_driver): Likewise.
4819 * mangle.c (save_partially_mangled_name): Likewise.
4820 * parser.c (cp_lexer_new_main): Use GGC_NEWVEC, not ggc_alloc.
4821 (cp_parser_template_argument_list): Use XNEWVEC, nto xmalloc.
4822 (cp_parser_sizeof_operand): Likewise.
4823 * repo.c (open_repo_file, open_repo_file): Likewise.
4825 2005-12-01 Gabriel Dos Reis <gdr@integrable-solutions.net>
4827 * parser.c (cp_parser_make_typename_type): Call make_typename_type
4828 with tf_none instead of magic value 0.
4829 (cp_parser_explicit_instantiation): Call do_type_instantiation
4830 with tf_error instead of magic value 1.
4831 (cp_parser_elaborated_type_specifier): Call make_typename_type
4832 with tf_error instead of magic value 1.
4833 (cp_parser_class_name): Likewise.
4834 (cp_parser_lookup_name): Likewise.
4836 2005-12-01 Gabriel Dos Reis <gdr@integrable-solutions.net>
4838 * parser.c (cp_parser_declaration): Set token2.type to CPP_EOF,
4841 2005-11-30 Jason Merrill <jason@redhat.com>
4844 * cp-gimplify.c (cp_genericize_r): Don't dereference invisible reference
4847 2005-11-30 Ben Elliston <bje@au.ibm.com>
4849 * typeck.c (build_x_unary_op): Correct spelling in error message.
4851 2005-11-28 Nathan Sidwell <nathan@codesourcery.com>
4854 * class.c (check_field_decls): Only set DECL_PACKED on a field
4855 when its natural alignment is > BITS_PER_UNIT.
4857 2005-11-27 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4860 * cp-tree.h (DECL_MAIN_P): Remove duplicate definition.
4862 2005-11-26 Richard Henderson <rth@redhat.com>
4864 * lex.c: Update for pragma_lex rename.
4865 * parser.c: Likewise.
4867 2005-11-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4870 * decl.c (grokparms): Do not allow typedef-names in a '(void)'
4873 2005-11-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4875 * typeck2.c (process_init_constructor_union): Remove check for
4876 unnamed union members.
4878 2005-11-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4880 * name-lookup.c (lookup_name_real): Merge two if's.
4882 2005-11-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4884 * pt.c (instantiate_class_template): Clean-up.
4886 2005-11-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4888 * pt.c (template_class_depth_real): Remove. Move functionality to ...
4889 (template_class_depth): ... here, replacing count_specializations
4890 with 0. Adjust comment.
4892 2005-11-24 Richard Guenther <rguenther@suse.de>
4893 Dirk Mueller <dmueller@suse.de>
4896 * typeck.c (build_reinterpret_cast_1): Use
4897 strict_aliasing_warning.
4899 2005-11-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
4902 * pt.c (check_instantiated_args): Reword diagnostic message about
4903 template argument involving local types.
4905 2005-11-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
4908 * typeck.c (build_array_ref): Avoid code duplicate. Use common
4909 C/C++ diagnostic function warn_array_subscript_with_type_char.
4911 2005-11-21 Gabriel Dos Reis <gdr@integrable-solutions.net>
4914 * error.c (resolve_virtual_fun_from_obj_type_ref): New.
4915 (dump_expr): Use it in <case CALL_EXPR>.
4917 2005-11-21 Richard Henderson <rth@redhat.com>
4919 * cp-objcp-common.h, name-lookup.c, name-lookup.h: Revert 11-18 patch.
4921 * name-lookup.c (lookup_name): Remove prefer_type argument.
4922 (lookup_name_prefer_type): New.
4923 * decl.c (lookup_and_check_tag): Use them.
4924 * pt.c (tsubst_friend_class): Likewise.
4925 (lookup_template_class): Likewise.
4926 (tsubst_copy_and_build): Likewise.
4927 * name-lookup.h (lookup_name_prefer_type): New.
4928 (lookup_name): Remove declaration.
4930 2005-11-18 Mark Mitchell <mark@codesourcery.com>
4933 * decl.c (grokfndecl): Set up DECL_TEMPLATE_INFO before calling
4935 * name-lookup.c (set_decl_namespace):
4937 2005-11-18 Mike Stump <mrs@apple.com>
4939 * cp-objcp-common.h (LANG_HOOKS_LOOKUP_NAME): Add.
4940 * name-lookup.c (lookup_name_two): Remove.
4941 (lookup_name_one): Add.
4942 * name-lookup.h (lookup_name_two): Remove.
4943 (lookup_name_one): Add.
4945 2005-11-15 Jason Merrill <jason@redhat.com>
4948 * method.c (locate_copy): Also use skip_artificial_parms here.
4949 (synthesize_exception_spec): Use CLASS_TYPE_P rather than checking
4951 (locate_ctor): Abort if we fail to find a default constructor.
4953 2005-11-15 Mike Stump <mrs@apple.com>
4955 * name-lookup.c (lookup_name_two): Add.
4956 * name-lookup.h: Likewise.
4958 2005-11-15 Mark Mitchell <mark@codesourcery.com>
4961 * typeck.c (check_for_casting_away_constness): Use the diag_fn.
4962 (build_const_cast_1): Call it, for C-style casts.
4964 2005-11-14 Mark Mitchell <mark@codesourcery.com>
4967 * pt.c (check_explicit_specialization): Don't check for C linkage.
4968 (push_template_decl_real): Likewise.
4969 * parser.c (cp_parser_explicit_specialization): Check here.
4970 (cp_parser_template_declaration_after_export): And here.
4972 * parser.c (cp_lexer_get_preprocessor_token): Initialize keyword
4975 2005-11-14 Jason Merrill <jason@redhat.com>
4978 * method.c (locate_ctor): Skip all artificial parms, not just
4981 2005-11-14 Mark Mitchell <mark@codesourcery.com>
4983 * parser.c (eof_token): Add initializer for ambiguous_p.
4985 2005-11-13 Mark Mitchell <mark@codesourcery.com>
4988 * decl.c (check_redeclaration_exception_specification): New
4990 (duplicate_decls): Use it.
4991 * error.c (fndecl_to_string): Print the template parameter list.
4994 * cxx-pretty-print.c (pp_cxx_statement): Print qualifying scopes
4996 (pp_cxx_original_namespace_definition): Likewise.
4997 * name-lookup.c (ambiguous_decl): Don't issue error messages;
4998 instead return lists of ambiguous candidates.
4999 (select_decl): Handle ambiguous namespace lookups.
5000 * parser.c (cp_token): Add ambiguous_p.
5001 (cp_lexer_get_preprocessor_token): Set it.
5002 (cp_parser_diagnose_invalid_type_name): Avoid duplicate messages
5003 when a qualified name uses an invalid scope.
5004 (cp_parser_primary_expression): Print ambiguous candidates.
5005 (cp_parser_type_parameter): Adjust comment to reflect new
5006 parameter name for cp_parser_lookup_name.
5007 (cp_parser_template_argument): Likewise.
5008 (cp_parser_elaborated_type_specifier): Likewise.
5009 (cp_parser_namespace_name): Likewise.
5010 (cp_parser_class_name): Print ambiguous candidates.
5011 (cp_parser_lookup_name): Rename ambiguous_p parameter to
5012 ambiguous_decls. Use it to return a list of ambiguous candiates
5013 when a lookup is ambiguous.
5014 (cp_parser_lookup_name_simple): Adjust comment to reflect new
5015 parameter name for cp_parser_lookup_name.
5017 2005-11-12 Jakub Jelinek <jakub@redhat.com>
5020 * typeck.c (complete_type): Set TYPE_NEEDS_CONSTRUCTING
5021 and TYPE_HAS_NONTRIVIAL_DESTRUCTOR flags for all variants
5025 * pt.c (tsubst_copy_asm_operands): New function.
5026 (tsubst_expr) <case ASM_EXPR>: Use it.
5028 2005-11-08 Jakub Jelinek <jakub@redhat.com>
5031 * decl.c (redeclaration_error_message): Issue diagnostics about
5032 olddecl and newdecl disagreement on __thread property.
5033 (grokdeclarator): Set DECL_TLS_MODEL on class static variables.
5035 2005-11-08 Jason Merrill <jason@redhat.com>
5038 * method.c (use_thunk): Use build_cplus_new instead of
5041 2005-11-06 Jason Merrill <jason@redhat.com>
5042 James A. Morrison <phython@gcc.gnu.org>
5045 * decl2.c (cp_finish_file): Fix conditions for undefined warning.
5046 Set TREE_NO_WARNING instead of TREE_PUBLIC.
5047 * pt.c (instantiate_pending_templates): Set DECL_INITIAL to avoid
5048 a warning on a function we didn't instantiate because of excessive
5051 2005-11-06 Mark Mitchell <mark@codesourcery.com>
5053 * class.c (record_subobject_offsets): Don't record offsets past
5054 biggest empty class for non-empty base classes.
5055 (layout_class_type): Use TYPE_SIZE_UNIT, not TYPE_SIZE, when
5056 keeping track of the size of emptyclasses.
5059 * class.c (sizeof_biggest_empty_class): New variable.
5060 (record_subobject_offsets): Don't record offsets past biggest
5061 empty class for data members. Replace vbases_p parameter with
5062 is_data_member parameter.
5063 (build_base_field): Adjust call.
5064 (layout_class_type): Likewise. Maintain
5065 sizeof_biggest_empty_class.
5067 2005-11-05 Kazu Hirata <kazu@codesourcery.com>
5069 * decl2.c, init.c, typeck.c: Fix comment typos.
5071 2005-11-04 Richard Guenther <rguenther@suse.de>
5074 * init.c (build_vec_init): Build comparison of matching
5077 2005-11-03 Josh Conner <jconner@apple.com>
5080 pt.c (tsubst): Accept zero-length array if tf_error is set
5081 in complain flags. Change error message for negative-
5084 2005-11-04 Joseph S. Myers <joseph@codesourcery.com>
5086 * cp-tree.h (cp_cpp_error), error.c (cp_cpp_error): Take va_list*
5089 2005-11-03 Joseph S. Myers <joseph@codesourcery.com>
5092 * error.c (cp_cpp_error): New function.
5093 * cp-tree.h (cp_cpp_error): Declare.
5094 * parser.c (cp_lexer_new_main): Set CPP option client_diagnostic
5095 and error callback after lexing.
5097 2005-11-03 Mark Mitchell <mark@codesourcery.com>
5100 * pt.c (register_specialization): Update inline flags on clones.y
5102 2005-11-03 Andrew Pinski <pinskia@physics.uc.edu>
5105 * decl.c (declare_local_label): Return 0 for variables
5106 with error_mark_node as their types.
5108 2005-11-02 Mark Mitchell <mark@codesourcery.com>
5111 * call.c (build_conditional_expr): Do bad conversions, if there's
5115 * parser.c (cp_parser_postfix_dot_deref_expression): Improve error
5116 message for use of overloaded functions on LHS of "." operator.
5119 * parser.c (cp_parser_postfix_expression): Use
5120 cp_parser_elaborated_type_specifier to handle typename-types in
5122 (cp_parser_enclosed_argument_list): Skip ahead to the end of the
5123 template argument list if the closing ">" is not found.
5126 * pt.c (instantiate_decl): Use cp_finish_decl, not
5127 finish_static_data_member_decl.
5129 2005-10-28 Andrew Pinski <pinskia@physics.uc.edu>
5131 * decl.c (grokfndecl): Remove the setting
5132 of the return type of the function type
5133 of main after erroring about must returning
5136 2005-10-28 Andrew Pinski <pinskia@physics.uc.edu>
5139 * decl.c (grokfndecl): Create a new function type
5140 after erroring out about main not returning int.
5142 2005-10-28 Josh Conner <jconner@apple.com>
5145 * parser.c (cp_parser_member_declaration): Detect and handle
5146 a template specialization.
5148 2005-10-28 Andrew Pinski <pinskia@physics.uc.edu>
5151 * decl.c (start_decl): Check that the decl is an
5152 error_mark_node before getting the type.
5153 Remove the check for the decl's type being an
5156 2005-10-21 Mark Mitchell <mark@codesourcery.com>
5159 * parser.c (cp_parser_init_declarator): Pass attributes to
5162 2005-10-20 Mark Mitchell <mark@codesourcery.com>
5165 * search.c (accessible_p): Check access in the outermost set of
5166 template parameters.
5168 2005-10-20 Richard Guenther <rguenther@suse.de>
5170 * decl.c (grokdeclarator): Fix ambiguous pedwarn message.
5172 2005-10-18 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5175 * decl.c (grokdeclarator): Reject unqualified destructors in
5176 friend declarations.
5178 2005-10-18 Mark Mitchell <mark@codesourcery.com>
5181 * pt.c (convert_template_argument): Use canonical type variants in
5182 template specializations.
5184 2005-10-18 Nathan Sidwell <nathan@codesourcery.com>
5187 * name-lookup.c (arg_assoc): Template args can be null in a
5191 * class.c (update_vtable_entry_for_fn): Don't process invalid
5192 covariant overriders.
5195 * cp-tree.h (add_method): Add return value.
5196 * class.c (add_method): Return success indicator.
5197 * semantics.c (finish_member_declaration): Don't add an invalid
5198 method to the method list.
5200 2005-10-17 Mark Mitchell <mark@codesourcery.com>
5203 * call.c (build_new_method_call): Do not show VTT parameters to
5206 2005-10-17 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5209 * parser.c (cp_parser_statement): If the parser reached CPP_EOF,
5210 only complain about missing statement.
5212 2005-10-17 Nathan Sidwell <nathan@codesourcery.com>
5215 * cp-tree.h (BASELINK_QUALIFIED_P): New.
5216 * pt.c (tsubst_copy_and_build): <CALL_EXPR case>: Use it.
5217 * typeck.c (finish_class_member_access_expr): Set it.
5220 * decl.c (check_default_argument): Don't check
5221 processing_template_decl or uses_template_parms here.
5222 (grokparms): Only call check_default_argument when not processing
5224 * parser.c (cp_parser_late_parsing_default_arg): Call
5225 check_default_argument when not processing a template decl.
5227 2005-10-16 Mark Mitchell <mark@codesourcery.com>
5230 * decl2.c (mark_used): Use uses_template_parms instead of
5232 * init.c (constant_value_1): Handle uninstantiated templates
5234 * pt.c (instantiate_decl): Add sanity check.
5236 2005-10-16 Mark Mitchell <mark@codesourcery.com>
5239 * typeck.c (check_template_keyword): Fix thinko.
5241 2005-10-16 Andrew Pinski <pinskia@physics.uc.edu>
5244 * decl.c (pop_switch): Only call c_do_switch_warnings
5245 when not processing templates.
5247 2005-10-16 Mark Mitchell <mark@codesourcery.com>
5250 * cp-tree.h (QUALIFIED_NAME_IS_TEMPLATE): New macro.
5251 (check_template_keyword): New function.
5252 (finish_id_expression): Change prototoype.
5253 (finish_qualified_id_expr): Change prototype.
5254 (build_qualified_name): New function.
5255 (finish_class_member_access_expr): Change prototype.
5256 * init.c (build_offset_ref): Use build_qualified_name.
5257 * mangle.c (write_expression): Likewise.
5258 * parser.c (cp_parser_primary_expression): Remove qualifying_class
5259 parameter. Add address_p and template_arg_p. Use
5260 build_qualified_name.
5261 (cp_parser_id_expression): Default *template_p to
5262 template_keyword_p. Check for invalid uses of the template
5264 (cp_parser_postfix_expression): Eliminate special handling for
5265 qualified names. Adjust call to cp_parser_primary_expression.
5266 (cp_parser_postfix_dot_deref_expression): Adjust call to
5267 cp_parser_id_expression and finish_class_member_access_expr.
5268 (cp_parser_template_argument_list): Add comment.
5269 (cp_parser_template_argument): Adjust use of
5270 cp_parser_primary_expression. Remove call to
5271 finish_qualified_id_expr.
5272 (cp_parser_lookup_name): Use build_qualified_name.
5273 * pt.c (tsubst): Use build_qualified_name.
5274 (tsubst_qualified_id): Likewise. Adjust call to
5275 finish_qualified_id_expr.
5276 (tsubst_copy): Use build_qualified_name.
5277 (tsubst_copy_and_build): Adjusts call to finish_id_expression and
5278 finish_class_member_access_expr.
5279 * semantics.c (finish_non_static_data_member): Use
5280 build_qualified_name.
5281 (finish_qualified_id_expr): Add template_p and template_arg_p
5283 (finish_id_expression): Remove qualifiying_class parameter. Add
5284 template_p, done, address_p, and template_arg_p. Use
5285 build_qualified_name. Adjust calls to
5286 finish_class_member_acess_expr.
5287 * tree.c (build_qualified_name): New function.
5288 * typeck.c (check_template_keyword): New function.
5289 (finish_class_member_access_expr): Add template_p argument. Check
5290 for invalid uses of the template keyword.
5292 2005-10-15 Mark Mitchell <mark@codesourcery.com>
5295 * class.c (maybe_warn_about_overly_private_class): Lazy
5296 constructors are public.
5298 2005-10-14 Mark Mitchell <mark@codesourcery.com>
5301 * call.c (convert_like_real): Rely on convert_and_check to issue
5302 warnings about overflow and conversion to unsigned.
5303 * decl.c (finish_enum): Use the location of the enumerators, not
5304 the closing brace of the enumeration, when reporting warnings
5306 (build_enumerator): Use error_mark_node for erroneous values.
5307 * typeck2.c (digest_init): Remove reference to "signature pointer"
5310 2005-10-14 Nathan Sidwell <nathan@codesourcery.com>
5313 * optimize.c (update_cloned_parm): Add FIRST parameter. Use it.
5314 (maybe_clone_body): Track the first clone.
5316 2005-10-13 Nathan Sidwell <nathan@codesourcery.com>
5319 * class.c (build_base_path): The vtable is always the first thing
5322 2005-10-13 Mark Mitchell <mark@codesourcery.com>
5325 * cp-tree.h (DECL_NONTRIVIALLY_INITIALIZED_P): New macro.
5326 * decl.c (duplicate_decls): Merge it into new declarations.
5327 (decl_jump_unsafe): Use it, rather than DECL_INITIAL.
5328 (cp_finish_decl): Set it, when appropriate.
5331 * call.c (build_new_method_call): Correct pretty-printing of
5333 * pt.c (tsubst_qualified_id): Recognize invalid uses of "~T" as an
5337 * decl.c (start_method): Return error_mark_node for errors.
5340 * pt.c (push_template_decl_real): Complain about attempts to
5341 declare template variables.
5344 * pt.c (tsubst_template_parms): Set processing_template_decl while
5345 processing the parameters.
5346 (tsubst_decl): Set processing_template_decl when substituting into
5350 * pt.c (most_specialized_instantiation): Robustify.
5353 * semantics.c (finish_id_expression): Issue errors about uses of
5354 local variables in containing functions even in templates.
5356 2005-10-12 Danny Smith <dannysmith@users.sourceforge.net>
5360 * class.c (finish_struct_1): Call
5361 targetm.cxx.adjust_class_at_definition.
5364 2005-10-12 Nathan Sidwell <nathan@codesourcery.com>
5367 * pt.c (build_non_dependent_expr): Don't wrap a COMPONENT_REF
5368 with already looked up member functions. Assert we're not
5369 returning a NON_DEPENDENT_EXPR with unknown type.
5370 * typeck.c (finish_class_member_access_expr): We can get
5371 non-template-id-expr baselinks. If the lookup finds a baselink,
5372 remember it even inside templates.
5375 * parser.c (cp_parser_functional_cast): Cope when TYPE is not a
5376 TYPE_DECL. Use dependent_type_p to check type.
5377 * pt.c (uses_template_parms_p): Use dependent_type_p for a
5379 (type_dependent_expression_p): Assert we've not been given a
5383 * decl.c (check_function_type): Correctly overwrite incomplete
5384 return type with void type.
5385 * typeck.c (check_return_expr): If the function's return type is
5386 void, don't try and convert a return expr.
5388 2005-10-12 David Edelsohn <edelsohn@gnu.org>
5391 * call.c (build_object_call): If BINFO is NULL, bypass
5392 lookup_fnfields and set fns to NULL_TREE.
5394 2005-10-12 Paolo Bonzini <bonzini@gnu.org>
5397 * error.c (dump_expr): Pass LABEL_DECL to dump_decl. Print
5398 an ADDR_EXPR of a LABEL_DECL as &&.
5400 2005-10-12 Nathan Sidwell <nathan@codesourcery.com>
5403 * class.c (walk_subobject_offsets): Don't walk error_mark_node.
5405 2005-10-11 Ian Lance Taylor <ian@airs.com>
5408 * cvt.c (convert_to_void): Don't warn about unused values when
5409 processing a template declaration.
5411 2005-10-11 Mark Mitchell <mark@codesourcery.com>
5414 * call.c (convert_like_real): Use decl_constant_value, not
5415 integral_constant_value.
5416 * init.c (constant_value_1): New function.
5417 (integral_constant_value): Use it.
5418 (decl_constant_value): Likewise.
5419 * typeck.c (decay_conversion): Use decl_constant_value, not
5420 integral_constant_value.
5423 * parser.c (cp_parser_elaborated_type_specifier): Don't treat
5424 class types as templates if the type is not appearing as part of a
5425 type definition or declaration.
5427 2005-10-10 Mark Mitchell <mark@codesourcery.com>
5430 * pt.c (instantiate_decl): Call finish_static_data_member_decl for
5431 static data members.
5433 2005-10-10 Giovanni Bajo <giovannibajo@gcc.gnu.org>
5434 Mark Mitchell <mark@codesourcery.com>
5437 * parser.c (cp_parser_template_argument_list): Do not treat
5438 contents of argument list as part of a constant expression.
5440 2005-10-10 Mark Mitchell <mark@codesourcery.com>
5443 * decl.c (grokdeclarator): Do not require template parameter lists
5444 for explicitly specialized class.
5445 * error.c (dump_aggr_type): Do not dump template arguments for
5446 non-primary specializations.
5447 (dump_function_name): Likewise.
5450 * pt.c (instantiate_decl): Instantiate the initializer of
5451 a static data member in the namespace containing the class
5452 containing the static data member.
5454 2005-10-08 James A. Morrison <phython@gcc.gnu.org>
5457 * parser.c (cp_parser_postfix_expression) <RID_TYPENAME>: Treat nontype
5458 scopes as nondependent.
5460 2005-10-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5462 * call.c (resolve_args): Remove redundant test.
5464 2005-10-05 Paolo Bonzini <bonzini@gnu.org>
5466 PR tree-optimization/21419
5467 PR tree-optimization/24146
5468 PR tree-optimization/24151
5470 * semantics.c (finish_asm_stmt): Call readonly_error if outputs are
5471 read-only. Set ASM_VOLATILE_P for asms without outputs.
5473 2005-10-05 Nathan Sidwell <nathan@codesourcery.com>
5476 * call.c (joust): Adjust length count to more_specialized_fn.
5477 * pt.c (more_specialized_fn): Cope with non-static member vs
5480 2005-10-04 Andrew Pinski <pinskia@physics.uc.edu>
5483 * decl.c (make_rtl_for_nonlocal_decl): Use set_user_assembler_name
5484 instead of change_decl_assembler_name.
5486 2005-10-03 Alexandre Oliva <aoliva@redhat.com>
5488 * error.c (dump_type) <UNKNOWN_TYPE>: Print reworded message.
5490 2005-10-03 Mark Mitchell <mark@codesourcery.com>
5493 * repo.c: Include flags.h.
5494 (finish_repo): Add -frandom-seed to the arguments.
5496 2005-10-02 Mark Mitchell <mark@codesourcery.com>
5499 * parser.c (cp_parser_template_argument): Don't turn "T::f" into
5501 * pt.c (convert_nontype_argument): Remove ??? comment.
5504 * tree.c (lvalue_p_1): A VA_ARG_EXPR with class type is an lvalue,
5505 when class rvalues are lvalues.
5507 2005-09-28 Mark Mitchell <mark@codesourcery.com>
5510 * decl.c (grokdeclarator): Always pedwarn about overqualified
5513 2005-09-27 Mark Mitchell <mark@codesourcery.com>
5516 * name-lookup.c (maybe_process_template_type_declaration): Don't
5517 treat forward declarations of classes as templates just because
5518 we're processing_template_decl.
5519 * pt.c (tsubst_decl): Clear DECL_TEMPLATE_INFO for friend
5522 2005-09-26 Jason Merrill <jason@redhat.com>
5525 * cp-tree.h (FUNCTION_NEEDS_BODY_BLOCK): New macro.
5526 * name-lookup.c (pushdecl_maybe_friend): Check it.
5527 * decl.c (begin_function_body): Do nothing if it's false.
5528 (finish_function_body): Ditto.
5529 (outer_curly_brace_block): New fn.
5530 (finish_function): Use it.
5532 2005-09-26 Richard Guenther <rguenther@suse.de>
5535 * decl2.c (do_static_destruction): Remove.
5536 (finish_static_initialization_or_destruction): Likewise.
5537 (DECL_EFFECTIVE_INIT_PRIORITY): New macro.
5538 (NEEDS_GUARD_P): Likewise.
5539 (do_static_initialization): Rename to
5540 do_static_initialization_or_destruction. Process all
5541 initializers/destructors and handle common conditionalizing.
5542 (start_static_initialization_or_destruction): Rename to
5543 one_static_initialization_or_destruction. Handle only
5544 decl-specific conditionalizing.
5545 (cp_finish_file): Call do_static_initialization_or_destruction.
5547 2005-09-22 Jakub Jelinek <jakub@redhat.com>
5550 * class.c (find_final_overrider): Move diagnostic about no unique final
5552 (update_vtable_entry_for_fn): ... here.
5554 2005-09-21 Mark Mitchell <mark@codesourcery.com>
5557 * init.c (integral_constant_value): Use DECL_INTEGRAL_CONSTANT_VAR_P.
5559 2005-09-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5562 * call.c (resolve_args): Return error_mark_node on arguments
5563 whose TREE_TYPE is error_mark_node.
5565 2005-09-20 Jakub Jelinek <jakub@redhat.com>
5568 * rtti.c (get_pseudo_ti_init): Recompute ti pointer after
5569 get_tinfo_ptr calls.
5571 2005-09-16 Mark Mitchell <mark@codesourcery.com>
5574 * parser.c (cp_parser_enclosed_template_argument_list): Make sure
5575 skip_evaluation is false when processing template arguments.
5578 * pt.c (check_instantiated_args): Treat uses of anonymous types as
5579 causing type-deduction failure.
5581 2005-09-15 Jason Merrill <jason@redhat.com>
5584 * cp-tree.def (SIZEOF_EXPR, ALIGNOF_EXPR): Change code class to
5587 2005-09-15 Mark Mitchell <mark@codesourcery.com>
5590 * pt.c (tsubst_aggr_type): Make sure skip_evaluation is false when
5591 processing template arguments.
5593 * pt.c (check_explicit_instantiation_namespace): Fix typo.
5596 * decl.c (check_class_member_definition_namespace): New function.
5597 (grokfndecl): Use it.
5598 (grokvardecl): Likewise.
5599 (grokdecl): Improve documentation.
5600 * pt.c (check_explicit_instantiation_namespace): New function.
5601 (register_specialization): Call check_specialization_namespace
5602 when replacing an implicitly instantiated function.
5603 (check_explicit_specialization): Ensure that DECL_CONTEXT is set
5604 correctly for namespace-scope specializations.
5605 (do_decl_instantiation): Use
5606 check_explicit_instantiation_namespace.
5607 (do_type_instantiation): Likewise.
5609 2005-09-15 Nathan Sidwell <nathan@codesourcery.com>
5612 * error.c (dump_decl): <USING_DECL case> Use USING_DECL_SCOPE.
5614 2005-09-13 Bastian Blank <waldi@debian.org>
5617 * mangle.c (find_substitution): Do not use special substitutions
5618 for identifiers not in std::.
5620 2005-09-13 Mark Mitchell <mark@codesourcery.com>
5623 * typeck.c (cxx_mark_addressable): Only check DECL_HARD_REGISTER
5626 2005-09-13 Mark Mitchell <mark@codesourcery.com>
5629 * pt.c (tsubst_default_argument): Do treat default argument
5630 expressions as occurring in the context of the function called.
5632 2005-09-12 Mark Mitchell <mark@codesourcery.com>
5635 * parser.c (cp_parser_primary_expression): Recognize the closing
5636 ">" of a template-argument-list after a floating-point literal as
5637 the end of a cast expression.
5639 2005-09-12 Mark Mitchell <mark@codesourcery.com>
5642 * cvt.c (perform_qualification_conversions): Don't create
5643 unnecessary NOP_EXPRs.
5644 * pt.c (tsubst_template_arg): Use fold_non_dependent_expr.
5646 2005-09-12 Ian Lance Taylor <ian@airs.com>
5649 * cp-tree.h (struct lang_decl_flags): Add hidden_friend_p
5650 bitfield. Make dummy bitfield one bit smaller.
5651 (DECL_HIDDEN_FRIEND_P): Define.
5652 (pushdecl_maybe_friend): Declare.
5653 (pushdecl_top_level_maybe_friend): Declare.
5654 * decl.c (duplicate_decls): Add newdecl_is_friend parameter.
5655 Change prototype and all callers. Add assertion that a
5656 DECL_ARTIFICIAL FUNCTION_DECL is not DECL_HIDDEN_FRIEND_P. Set
5657 DECL_ANTICIPATED and DECL_HIDDEN_FRIEND_P in duplicated decl if
5659 * name-lookup.c (supplement_binding): Don't ignore a
5660 DECL_HIDDEN_FRIEND_P.
5661 (pushdecl_maybe_friend): Break out contents of pushdecl. Add
5662 is_friend parameter. Set DECL_ANTICIPATED and
5663 DECL_HIDDEN_FRIEND_P for a friend function.
5664 (pushdecl): Just call pushdecl_maybe_friend.
5665 (pushdecl_with_scope): Add is_friend parameter. Change prototype
5667 (pushdecl_namespace_level): Likewise.
5668 (push_overloaded_decl): Likewise. Check DECL_HIDDEN_FRIEND_P as
5669 well as DECL_ANTICIPATED when checking for a builtin.
5670 (do_nonmember_using_decl): Check DECL_HIDDEN_FRIEND_P as well as
5671 DECL_ANTICIPATED when checking for a builtin.
5672 (do_nonmember_using_decl): Likewise.
5673 (pushdecl_top_level_1): Add is_friend parameter. Change all
5675 (pushdecl_top_level_maybe_friend): New function.
5676 (remove_hidden_names): New function.
5677 (struct arg_lookup): Add args field.
5678 (friend_of_associated_class_p): New static function.
5679 (arg_assoc_namespace): Ignore hidden functions which are not
5680 friends of an associated class of some argument.
5681 (lookup_arg_dependent): Remove hidden functions from list passed
5682 in. Initialize k.args.
5683 * name-lookup.h (remove_hidden_names): Declare.
5684 * friend.c (do_friend): Call pushdecl_maybe_friend instead of
5686 * call.c (add_function_candidate): Change DECL_ANTICIPATED test to
5687 an assertion, with a check for DECL_HIDDEN_FRIEND_P.
5688 (build_new_function_call): Add koenig_p parameter. Change
5689 prototype and callers.
5690 * pt.c (register_specialization): Add is_friend parameter. Change
5692 (push_template_decl_real): Change is_friend parameter to bool.
5693 Change prototype and all callers.
5694 (tsubst_friend_class): Call pushdecl_top_level_maybe_friend
5695 instead of pushdecl_top_level.
5697 2005-09-11 Richard Henderson <rth@redhat.com>
5699 * decl2.c (build_anon_union_vars): Copy attributes from the base addr.
5700 * pt.c (tsubst_decl): Substitute in DECL_VALUE_EXPR.
5702 2005-09-09 Gabriel Dos Reis <gdr@integrable-solutions.net>
5704 * parser.c (cp_parser_translation_unit): Simplify. The while-block
5705 was actually executed at most once.
5707 2005-09-09 Richard Henderson <rth@redhat.com>
5710 * cp-tree.def (ALIAS_DECL): Remove.
5711 * cp-lang.c (cp_init_ts): Remove support for it.
5712 * error.c (dump_decl): Likewise.
5713 * name-lookup.c (pushdecl): Likewise.
5714 * semantics.c (finish_id_expression): Likewise.
5715 * decl2.c (build_anon_union_vars): Use a VAR_DECL with
5716 DECL_VALUE_EXPR instead.
5718 2005-09-09 Mark Mitchell <mark@codesourcery.com>
5721 * decl.c (start_preparsed_function): Do not pay attention to
5722 #pragma interface for implicitly-defined methods.
5723 * decl2.c (cp_finish_file): Do not complain about uses of inline
5724 functions that have bodies, even if we decided not to emit the
5725 body in this translation unit.
5726 * semantics.c (note_decl_for_pch): Do not mess with linkage.
5727 (expand_or_defer_fn): Make inline, non-template functions COMDAT
5730 2005-09-08 Richard Henderson <rth@redhat.com>
5733 * decl.c (wrapup_globals_for_namespace): Call
5734 emit_debug_global_declarations.
5735 * decl2.c (cp_finish_file): Likewise.
5737 2005-09-08 Mark Mitchell <mark@codesourcery.com>
5740 * decl2.c (mark_used): Instantiate static data members initialized
5741 by constants, even in a template.
5743 2005-09-08 Andrew Pinski <pinskia@physics.uc.edu>
5746 * parser.c (cp_parser_objc_selector_expression): Treat CPP_SCOPE as
5749 2005-09-07 Richard Guenther <rguenther@suse.de>
5751 * cp-gimplify.c (cp_gimplify_expr): Create empty CONSTRUCTOR
5752 for EMPTY_CLASS_EXPR.
5754 2005-09-06 Jakub Jelinek <jakub@redhat.com>
5757 * typeck.c (check_return_expr): Add no_warning argument. Set
5758 *no_warning to true if "return-statement with no value, in function
5759 returning" warning has been issued.
5760 * cp-tree.h (check_return_expr): Adjust prototype.
5761 * semantics.c (finish_return_stmt): Set TREE_NO_WARNING if
5762 check_return_expr set *no_warning to true.
5764 2005-09-06 Mark Mitchell <mark@codesourcery.com>
5766 * cp-tree.h (rvalue): New function.
5767 * call.c (build_conditional_expr): Use it.
5768 * init.c (build_new_1): Likewise.
5769 * rtti.c (build_dynamic_cast_1): Likewise.
5770 * tree.c (rvalue): New function.
5771 * typeck.c (build_unary_op): Use it.
5772 (build_static_cast_1): Likewise.
5775 * init.c (build_new_1): Make sure the entire array type is
5776 complete, not just its element types.
5778 2005-09-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5780 * decl.c (check_elaborated_type_specifier): Remove redundant check.
5782 2005-09-06 Jakub Jelinek <jakub@redhat.com>
5785 * typeck.c (ignore_overflows): New helper function.
5786 (build_static_cast_1): Use it.
5788 2005-09-06 Kazu Hirata <kazu@codesourcery.com>
5790 * cp-tree.h, decl.c, decl2.c, semantics.c: Fix comment typos.
5791 Follow spelling conventions.
5793 2005-09-05 Mark Mitchell <mark@codesourcery.com>
5796 * pt.c (tsubst_decl): Clear DECL_TEMPLATE_INSTANTIATED when
5799 2005-09-05 Mark Mitchell <mark@codesourcery.com>
5802 * semantics.c (finish_stmt_expr_expr): Add an explicit
5803 initialization to the last statement in the statement-expression.
5804 * (finish_stmt_expr): Adjust accordingly.
5806 2005-09-03 Mark Mitchell <mark@codesourcery.com>
5809 * decl2.c (mark_used): Always instantiate static data members
5810 initialized by constant expressions.
5811 * pt.c (instantiate_decl): Instantiate the initializers for static
5812 data members initialized by constant expressions.
5815 * semantics.c (expand_or_defer_fn): Do not call ggc_collect when
5816 finishing processing for a template function in a local class.
5818 2005-09-02 Mark Mitchell <mark@codesourcery.com>
5819 * parser.c (cp_parser_class_specifier): Push/pop GC contexts
5820 around functions in local classes.
5822 2005-09-02 Mark Mitchell <mark@codesourcery.com>
5825 * parser.c (cp_parser_class_specifier): Push/pop GC contexts
5826 around functions in local classes.
5828 2005-08-31 Andrew Pinski <pinskia@physics.uc.edu>
5831 * decl2.c (cp_finish_file): If this is obj-c++ and we need a static
5832 init, call generate_ctor_or_dtor_function.
5834 2005-08-31 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5837 * parser.c (cp_parser_lookup_name): Pass LOOKUP_COMPLAIN to
5838 lookup_name_real on final parse.
5840 2005-08-31 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5843 * semantics.c (qualified_name_lookup_error): Do not complain again
5846 2005-08-30 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5849 * parser.c (cp_parser_namespace_name): Move diagnostic for
5850 invalid namespace-name to here from ...
5851 * name-lookup.c (do_namespace_alias): ... here and ...
5852 (do_using_directive): ... here. Remove dead code.
5854 2005-08-28 Mark Mitchell <mark@codesourcery.com>
5857 * cp-tree.h (saved_scope): Add skip_evaluation.
5858 * decl.c (start_decl): Use DECL_INITIALIZED_IN_CLASS_P, not
5859 DECL_INITIAL, to determine whether or not a static data member was
5860 initialized in the class-specifier.
5861 (cp_finish_decl): Add comment.
5862 * init.c (integral_constant_value): Subtitute into the
5863 initializers for static data members in templates.
5864 * name-lookup.c (push_to_top_level): Save skip_evaluation.
5865 (pop_from_top_level): Restore it.
5866 * pt.c (instantiate_class_template): Do not substitute into the
5867 intializers of static data members when instantiating a class.
5868 (regenerate_decl_from_template): Simplify.
5869 (instantiate_decl): Tidy. Substitute into the initializer for a
5870 static data member even when the definition of the data member is
5873 2005-08-26 Mark Mitchell <mark@codesourcery.com>
5876 * pt.c (uses_template_parms): Handle IDENTIFIER_NODE.
5877 (type_dependent_expression_p): Allow BASELINKs whose associated
5878 functions are simply a FUNCTION_DECL.
5881 * cp-tree.h (build_vec_init): Adjust prototype.
5882 * init.c (perform_member_init): Adjust call to build_vec_init.
5883 (build_aggr_init): Likewise.
5884 (build_new_1): Do not call build_default_init for array types.
5885 (build_vec_init): Add explicit_default_init_p parameter. Perform
5886 default initialization of vector elements when set.
5887 * typeck.c (build_modify_expr): Adjust call to build_vec_init.
5889 2005-08-25 Nathan Sidwell <nathan@codesourcery.com>
5892 * typeck.c (build_x_unary_op): Make sure OFFSET_REF is not for a
5895 2005-08-24 Nathan Sidwell <nathan@codesourcery.com>
5898 * parser.c (cp_lexer_peek_nth_token): Relax assert.
5900 2005-08-23 Nathan Sidwell <nathan@codesourcery.com>
5903 * pt.c (tsubst_qualified_id): A SCOPE_REF can still remain.
5905 2005-08-22 James E Wilson <wilson@specifix.com>
5907 PR tree-optimization/23426
5908 * decl.c (grokdeclarator): Use TYPE_SIZE_UNIT not TYPE_SIZE for
5911 2005-08-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5914 * pt.c (push_template_decl_real): Return error_mark_node if the
5915 number of template parameters does not match previous definition.
5917 2005-08-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5920 * decl.c (require_complete_types_for_parms): Mark incomplete types
5923 2005-08-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5925 * parser.c (cp_parser_nth_token_starts_template_argument_list_p):
5926 Fix typo in leading comment.
5928 2005-08-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5930 * name-lookup.c, ptree.c: Delete HOST_PTR_PRINTF.
5932 2005-08-15 Fariborz Jahanian <fjahanian@apple.com>
5934 * cp-tree.h (can_convert_arg, fn_type_unification): New argument.
5935 * call.c (add_template_candidate_real): Pass down 'flags' to
5936 fn_type_unification.
5937 (can_convert_arg): New 'flags' argument. Pass it to call to
5938 implicit_conversion instead of LOOKUP_NORMAL.
5939 (can_convert): Add LOOKUP_NORMAL to call to can_convert_arg.
5940 * class.c (resolve_address_of_overloaded_function): Ditto.
5941 (resolve_address_of_overloaded_function): Ditto.
5942 * decl.c (reshape_init, check_default_argument): Ditto.
5943 * typeck.c (build_ptrmemfunc): Ditto.
5944 * pt.c (type_unification_real): Add 'flags' argument.
5945 (fn_type_unification): Pass 'flags' to type_unification_real.
5946 (type_unification_real): Pass new 'flags' argument to call to
5949 2005-08-12 Giovanni Bajo <giovannibajo@libero.it>
5950 Nathan Sidwell <nathan@codesourcery.com>
5954 * pt.c (unify) <METHOD_TYPE>: Check this-pointer cv-qualifiers
5957 2005-08-12 Nathan Sidwell <nathan@codesourcery.com>
5960 Revert my 2005-07-08 patch
5961 * pt.c (type_unification_real): Remove is_method_argument and
5963 (fn_type_unification, unify): Adjust type_unification_real calls.
5965 2005-08-11 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5968 * decl2.c (grokfield): Check that method is not static before
5971 2005-08-11 Nathan Sidwell <nathan@codesourcery.com>
5974 * name-lookup.c (pushtag): Process the template type before
5975 altering the identifier lookup fields. Remove unreachable code
5976 creating an empty stub decl.
5978 2005-08-10 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5981 * decl.c (grokdeclarator): Reset storage_class after error.
5983 2005-08-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5986 * init.c (build_new_1): Check for empty candidate list.
5988 2005-08-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5991 * pt.c (tsubst) <case METHOD_TYPE>: Check for error_mark_node
5992 before calling build_exception_variant.
5994 2005-08-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5997 * pt.c (tsubst_decl) <case TEMPLATE_DECL>: Return ERROR_MARK_NODE
5998 if substitution of template args did not succeed.
6000 2005-08-06 Michael Matz <matz@suse.de>
6002 * method.c (use_thunk): Call init_insn_lengths.
6004 2005-08-05 James A. Morrison <phython@gcc.gnu.org>
6007 * name-lookup.c (cp_emit_debug_info_for_using): Do nothing if
6008 sorrycount or errorcount are nonzero.
6010 2005-08-05 Mark Mitchell <mark@codesourcery.com>
6012 * name-lookup.c (pushtag): Remove accidental commit from:
6013 2004-12-21 Mark Mitchell <mark@codesourcery.com>
6015 * decl.c (grokdeclarator): Return error_mark_node, not
6016 void_type_node, to indicate errors.
6017 * parser.c (cp_parser_template_parameter_list): Robustify.
6018 (cp_parser_template_parameter): Likewise.
6020 2005-08-01 Kazu Hirata <kazu@codesourcery.com>
6022 * class.c, decl.c, name-lookup.c, pt.c, typeck.c, typeck2.c:
6025 2005-07-29 Kazu Hirata <kazu@codesourcery.com>
6027 * method.c: Fix a comment typo.
6029 2005-07-28 Mark Mitchell <mark@codesourcery.com>
6032 * call.c (add_builtin_candidate): Adjust for changes in
6033 representation of pointer-to-member types.
6035 2005-07-28 Mike Stump <mrs@apple.com>
6037 * pt.c (check_explicit_specialization): Add visibility logic.
6038 (lookup_template_class): Likewise.
6039 (instantiate_class_template): Likewise.
6041 2005-07-27 Devang Patel <dpatel@apple.com>
6043 * name-lookup.c (pushtag): Do no set DECL_IGNORED_P bit.
6045 2005-07-25 Ian Lance Taylor <ian@airs.com>
6047 * ptree.c (cxx_print_identifier): Print a leading space if the
6050 2005-07-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6052 * call.c (convert_for_arg_passing): Check function pointers when
6053 -Wmissing-format-attribute is activated.
6054 * typeck.c (convert_for_assignment): Likewise.
6056 2005-07-22 Manfred Hollstein <mh@suse.com>
6058 * parser.c (cp_parser_declaration): Fix unitialised warnings.
6060 2005-07-21 Andrew Pinski <pinskia@physics.uc.edu>
6062 * class.c (build_base_path): Fix typo.
6064 2005-07-21 Andrew Pinski <pinskia@physics.uc.edu>
6067 * class.c (build_base_path): Convert BINFO_OFFSET to the correct type.
6069 2005-07-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
6071 * call.c: Fix comment typo(s).
6072 * cxx-pretty-print.h: Likewise.
6073 * name-lookup.c: Likewise.
6074 * parser.c: Likewise.
6076 2005-07-20 Douglas Gregor <doug.gregor@gmail.com>
6079 * semantics.c (perform_koenig_lookup): For dependent calls, just
6080 return the set of functions we've found so far. Later, it will be
6081 augmented by those found through argument-dependent lookup.
6082 * name-lookup.c (lookup_arg_dependent): Implement DR 164 by removing
6083 the optimization that skips namespaces where the functions were
6086 2005-07-20 Giovanni Bajo <giovannibajo@libero.it>
6088 Make CONSTRUCTOR use VEC to store initializers.
6089 * call.c (convert_default_arg): Update call to digest_init.
6090 * class.c (dump_class_hierarchy, dump_array): Update to cope with
6091 VEC in CONSTRUCTOR_ELTS.
6092 * cp-tree.h (EMPTY_CONSTRUCTOR_P): Likewise.
6093 (finish_compound_literal, digest_init): Update declaration.
6094 * decl.c (struct reshape_iter): New data type.
6095 (reshape_init_array): Rename to...
6096 (reshape_init_array_1): Update to cope with VEC in CONSTRUCTOR_ELTS.
6097 (reshape_init): Rewrite from scratch. Split parts into...
6098 (reshape_init_array, reshape_init_vector, reshape_init_class,
6099 reshape_init_r): New functions.
6100 (check_initializer): Update call to reshape_init. Remove obsolete
6102 (initialize_artificial_var, cp_complete_array_type): Update to cope
6103 with VEC in CONSTRUCTOR_ELTS.
6104 * decl2.c (grokfield): Update calls to digest_init.
6105 (mark_vtable_entries): Update to cope with VEC in CONSTRUCTOR_ELTS.
6106 * error.c (dump_expr_init_vec): New function.
6107 (dump_expr): Use dump_expr_init_vec.
6108 * init.c (build_zero_init, build_vec_init): Update to cope with VEC
6109 in CONSTRUCTOR_ELTS.
6110 (expand_default_init): Update call to digest_init.
6111 * parser.c (cp_parser_postfix_expression): Use a VEC for the
6113 (cp_parser_initializer_list): Build a VEC of initializers.
6114 * pt.c (tsubst_copy, tsubst_copy_and_build): Update to cope with VEC
6115 in CONSTRUCTOR_ELTS.
6116 * rtti.c (tinfo_base_init, generic_initializer, ptr_initializer,
6117 ptm_initializer, class_initializer, get_pseudo_ti_init): Use
6118 build_constructor_from_list instead of build_constructor.
6119 * semantics.c (finish_compound_literal): Update call to digest_init.
6120 * tree.c (stabilize_init): Update to cope with VEC in
6122 * typeck.c (build_ptrmemfunc1): Likewise.
6123 * typeck2.c: (cxx_incomplete_type_error, split_nonconstant_init_1):
6125 (store_init_value): Use build_constructor_from_list and update call
6127 (digest_init): Rewrite.
6128 (process_init_constructor): Rewrite from scratch. Split into...
6129 (process_init_constructor_array, picflag_from_initializer,
6130 process_init_constructor_record, process_init_constructor_union):
6132 (PICFLAG_ERRONEOUS, PICFLAG_NOT_ALL_CONSTANT, PICFLAG_NOT_ALL_SIMPLE):
6134 (build_functional_cast): Use build_constructor_from_list instead of
6137 2005-07-18 Mark Mitchell <mark@codesourcery.com>
6140 * cp-tree.h (instantiate_decl): Change prototype.
6141 * decl2.c (mark_used): Adjust accordingly.
6142 * pt.c (do_decl_instantiation): Likewise.
6143 (instantiate_class_member): Likewise.
6144 (instantiate_decl): Rename undefined_ok as expl_inst_class_mem_p.
6145 Clear DECL_INTERFACE_KNOWN for an explicitly instantiated template
6146 that has no definition available.
6147 (instantiate_pending_templates): Adjust call to instantiate_decl.
6149 2005-07-17 Mark Mitchell <mark@codesourcery.com>
6152 * cp-tree.h (DECL_TEMPLATE_INFO): Improve documentation.
6153 * decl.c (duplicate_decls): Re-register template specializations
6154 for functions that have DECL_TEMLPLATE_INFO, even if they do not
6155 have DECL_TEMPLATE_INSTANTIATION set.
6157 2005-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6159 * call.c (diagnostic_fn_t): New.
6160 (build_temp, convert_like_real): Use diagnostic_fn_t.
6162 2005-07-15 Mark Mitchell <mark@codesourcery.com>
6165 * repo.c (repo_emit_p): Robustify.
6167 2005-07-14 Daniel Berlin <dberlin@dberlin.org>
6170 * tree.c (decl_linkage): Don't check DECL_COMDAT on CONST_DECL.
6172 2005-07-15 Mark Mitchell <mark@codesourcery.com>
6175 * call.c (implicit_conversion): Add c_cast_p parameter.
6176 (standard_conversion): Likewise. Allow conversions between
6177 differently-qualified pointer types when performing a C-style
6179 (add_function_candidate): Adjust callee.
6180 (build_builtin_candidate): Likewise.
6181 (build_user_type_conversion_1): Likewise.
6182 (conditional_conversion): Likewise.
6183 (can_convert_arg): Likewise.
6184 (can_convert_arg_bad): Likewise.
6185 (perform_implicit_conversion): Likewise.
6186 * cp-tree.h (comp_ptr_ttypes_const): Declare.
6187 * typeck.c (comp_ptr_ttypes_const): Give it external linkage.
6190 2005-07-12 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
6191 Nathan Sidwell <nathan@codesourcery.com>
6194 * pt.c (tsubst_template_parms): Check for invalid non-type
6197 2005-07-09 Andrew Pinski <pinskia@physics.uc.edu>
6199 * cp-lang.c (shadowed_var_for_decl, decl_shadowed_for_var_lookup,
6200 decl_shadowed_for_var_insert): Move over to cp-objcp-common.c.
6201 (cp_init_ts): Call init_shadowed_var_for_decl.
6202 Remove include of gt-cp-cp-lang.h.
6203 * cp-objcp-common.c (shadowed_var_for_decl,
6204 decl_shadowed_for_var_lookup, decl_shadowed_for_var_insert): Moved from
6206 (init_shadowed_var_for_decl): New function to initialize
6207 shadowed_var_for_decl.
6208 Include gt-cp-cp-objcp-common.h.
6209 * Make-lang.in (gt-cp-lang.h): Remove.
6210 (gt-cp-cp-objcp-common.h): Add.
6211 (cp/cp-lang.o): Remove dependancy on gt-cp-lang.h.
6212 (cp/cp-objcp-common.o): Add dependancy on gt-cp-cp-objcp-common.h.
6213 * config-lang.in (gtfiles): Remove cp-lang.c and Add cp-objcp-common.c.
6214 * cp-tree (init_shadowed_var_for_decl): Add prototype.
6216 2005-07-08 Daniel Berlin <dberlin@dberlin.org>
6218 * Make-lang.in: Add gt-cp-lang.h.
6220 * class.c (create_vtable_ptr): Stop setting DECL_ASSEMBLER_NAME on
6222 * config-lang.in: Add cp-lang.c to gtfiles.
6223 * cp-lang.c: Include hashtab.h.
6224 (cp_init_ts): New function.
6225 (LANG_HOOK_INIT_TS): Use macro.
6226 (decl_shadowed_for_var_lookup): New function.
6227 (decl_shadowed_for_var_insert): Ditto.
6228 * cp-tree.h (THUNK_FUNCTION_CHECK): Use decl_common.
6229 (NON_THUNK_FUNCTION_CHECK): Ditto.
6230 (DECL_NAMESPACE_ASSOCIATIONS): Use decl_non_common.
6231 (DECL_INIT_PRIORITY): Ditto.
6232 (DECL_HAS_SHADOWED_FOR_VAR_P): Ditto.
6233 (DECL_SHADOWED_FOR_VAR): Use hashtable.
6234 (SET_DECL_SHADOWED_FOR_VAR): Ditto.
6235 * decl.c (duplicate_decls): Update for new/updated structures.
6236 (poplevel): Use SET_DECL_SHADOWED_FOR_VAR.
6237 * decl2.c (start_static_initialization_or_destruction): Deal with
6239 * pt.c (tsubst_decl): Check TS_DECL_WRTL before doing
6241 * tree.c (handle_init_priority_attribute): Handle priority.
6243 2005-07-08 Nathan Sidwell <nathan@codesourcery.com>
6246 * pt.c (type_unification_real): Add is_method argument. Use it
6247 for this pointer unification.
6248 (fn_type_unification): Adjust type_unification_real call.
6251 2005-07-07 Nathan Sidwell <nathan@codesourcery.com>
6253 * pt.c (type_unification_real): Remove allow_incomplete argument.
6254 Remove unreachable code.
6255 (fn_type_unification): Adjust call to type_unification_real.
6258 2005-07-05 Paolo Bonzini <bonzini@gnu.org>
6260 * Makefile.in (class.o, decl2.o): Adjust dependencies.
6261 * class.c: Include tree-dump.h.
6262 * decl2.c: Include tree-dump.h.
6264 2005-07-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
6266 * dump.c: Use dump_string_field.
6268 2005-07-03 Joseph S. Myers <joseph@codesourcery.com>
6270 * cp-tree.h (GCC_DIAG_STYLE): #undef before defining. Change
6271 minimum GCC version for format checking to 4.1.
6273 2005-07-02 Kazu Hirata <kazu@codesourcery.com>
6275 * Make-lang.in (cc1plus-checksum.c): Use
6276 build/genchecksum$(build_exeext), not build/genchecksum$(exeext).
6278 2005-07-02 Joseph S. Myers <joseph@codesourcery.com>
6280 * name-lookup.c, parser.c: Use %q, %< and %> to quote in
6283 2005-07-02 Zack Weinberg <zack@codesourcery.com>
6284 Joseph S. Myers <joseph@codesourcery.com>
6286 * error.c (location_of): Add comment.
6287 (locate_error, cp_error_at, cp_warning_at, cp_pedwarn_at): Remove.
6288 * cp-tree.h (cp_error_at, cp_warning_at, cp_pedwarn_at): Remove.
6289 * call.c, class.c, decl.c, decl2.c, friend.c, init.c,
6290 name-lookup.c, parser.c, pt.c, search.c, semantics.c, typeck.c,
6291 typeck2.c: Use '+' flag instead of %J, cp_error_at, cp_warning_at
6292 or cp_pedwarn_at. Mark up some diagnostic strings with N_.
6294 2005-06-30 Daniel Berlin <dberlin@dberlin.org>
6296 * decl.c (require_complete_types_for_parms): Call relayout_decl
6297 instead of layout_decl.
6299 2005-06-30 Zack Weinberg <zack@codesourcery.com>
6300 Jakub Jelinek <jakub@redhat.com>
6302 * cp-lang.c: No need to include cxx-pretty-print.h.
6303 * error.c (cp_printer): Update signature. No need to process
6305 (print_instantiation_partial_context): Output last newline
6306 with pp_base_newline.
6307 * Make-lang.in: Update dependencies.
6309 2005-06-30 Steven Bosscher <stevenb@suse.de>
6311 * decl.c (start_decl): Replace DECL_THREAD_LOCAL with
6312 DECL_THREAD_LOCAL_P.
6313 (cp_finish_decl): Likewise.
6314 (grokvardecl): Set the default DECL_TLS_MODEL here.
6316 2005-06-28 Joseph S. Myers <joseph@codesourcery.com>
6318 * cvt.c (ocp_convert): Use invalid_conversion hook.
6319 * typeck.c (build_binary_op): Use invalid_binary_op hook.
6320 (build_unary_op): Use invalid_unary_op hook.
6322 2005-06-28 Paul Brook <paul@codesourcery.com>
6324 * Make-lang.in (cp/except.o): Depend on $(TARGET_H)
6325 * except.c: Include target.h.
6326 (init_exception_processing): Initialize unwind_resume_libfunc.
6327 * doc/tm.texi: Document TARGET_ASM_TTYPE
6329 2005-06-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6331 * call.c (build_over_call): Pass in named argument list to
6332 `check_function_arguments'.
6333 * typeck.c (build_function_call): Likewise.
6335 2005-06-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6337 * cp-tree.h (lang_check_failed): Add noreturn attribute.
6339 2005-06-25 Kelley Cook <kcook@gcc.gnu.org>
6341 * all files: Update FSF address in copyright headers.
6343 2005-06-23 Jason Merrill <jason@redhat.com>
6346 * semantics.c (simplify_aggr_init_expr): Use
6347 CALL_EXPR_RETURN_SLOT_OPT, not CALL_EXPR_HAS_RETURN_SLOT_ADDR.
6349 2005-06-23 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
6351 * pt.c (register_specialization): Remove superfluous assertion.
6353 2005-06-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6355 * call.c (convert_like_real): Add format attribute.
6356 * typeck.c (check_for_casting_away_constness,
6357 build_static_cast_1): Likewise.
6358 * typeck2.c (readonly_error, cxx_incomplete_type_diagnostic):
6361 2005-06-17 Geoffrey Keating <geoffk@apple.com>
6364 * pt.c (type_unification_real): Apply template type deduction even
6365 to procedure parameters that are not dependent on a template
6368 2005-06-16 Nathan Sidwell <nathan@codesourcery.com>
6370 * rtti.c (get_tinfo_decl): Avoid caching tinfo_descs when it might
6372 (create_pseudo_type_info): First parameter is an int.
6374 2005-06-15 Nathan Sidwell <nathan@codesourcery.com>
6377 * error.c (dump_expr) <COMPONENT_REF case>: Check DECL_NAME is not
6380 * Make-lang.in: Reformat some long lines.
6381 (gt-cp-rtti.h): New target.
6382 (cp/rtti.o): Add dependency.
6383 * config-lang.in (gtfiles): Add cp/rtti.c.
6384 * cp-tree.h (CPTI_TI_DESC_TYPE, CPTI_BLTN_DESC_TYPE,
6385 CPTI_PTR_DESC_TYPE, CPTI_ARY_DESC_TYPE, CPTI_FUNC_DESC_TYPE,
6386 CPTI_ENUM_DESC_TYPE, CPTI_CLASS_DESC_TYPE,
6387 CPTI_SI_CLASS_DESC_TYPE, CPTI_VMI_CLASS_DESC_TYPE,
6388 CPTI_PTM_DESC_TYPE, CPTI_BASE_DESC_TYPE): Remove.
6389 (ti_desc_type_node, bltn_desc_type_node, ptr_desc_type_node,
6390 ary_desc_type_node, func_desc_type_node, enum_desc_type_node,
6391 class_desc_type_node, si_class_desc_type_node,
6392 vmi_class_desc_type_node, ptm_desc_type_node,
6393 base_desc_type_node): Remove.
6394 * decl.c: Adjust documentation of global trees.
6395 * rtti.c (TINFO_PSEUDO_TYPE, TINFO_VTABLE_DECL,
6396 TINFO_REAL_NAME): Remove.
6397 (struct tinfo_s): New.
6398 (enum tinfo_kind): New.
6400 (get_tinfo_decl): Adjust use of tinfo descriptor.
6401 (tinfo_base_init, generic_initializer, ptr_initializer,
6402 ptm_initializer, class_initializer): Likewise.
6403 (get_pseudo_ti_init): Take descriptor index. Adjust.
6404 (create_pseudo_type_info): Likewise.
6405 (get_pseudo_ti_desc): Return descriptor index. Adjust.
6406 (create_tinfo_types): Adjust use of create_pseudo_type_info.
6407 (emit_tinfo_decl): Adjust use of tinfo descriptor.
6409 2005-06-14 Roger Sayle <roger@eyesopen.com>
6411 * decl.c (grokdeclarator): Only check TREE_OVERFLOW on INTEGER_CST.
6413 2005-06-13 Geoffrey Keating <geoffk@apple.com>
6415 * Make-lang.in (c++.install-man): Doesn't really depend on installdirs.
6416 (rule for installing g++.1 manpage): Does depend on installdirs.
6418 2005-06-13 Nathan Sidwell <nathan@codesourcery.com>
6421 * decl.c (cp_finish_decl): Clear runtime runtime initialization if
6422 in-class decl's initializer is bad.
6425 * parser.c (struct cp_parser): Document that scope could be
6427 (cp_parser_diagnose_invalid_type_name): Cope with error_mark for
6429 (cp_parser_nested_name_specifier): Return NULL_TREE on error.
6430 (cp_parser_postfix_expression): Deal with null or error_mark
6432 (cp_parser_elaborated_type_specifier): Adjust
6433 cp_parser_nested_name_specifier call.
6435 * parser (cp_parser_skip_to_end_of_block_or_statement): Cleanup.
6437 2005-06-12 Roger Sayle <roger@eyesopen.com>
6440 * error.c (dump_expr): UNARY_PLUS_EXPR need not handle void types.
6441 Treat CONVERT_EXPR identically to NOP_EXPR.
6443 2005-06-10 Aldy Hernandez <aldyh@redhat.com>
6446 * cvt.c (build_expr_type_conversion): Same.
6447 * typeck.c (build_binary_op): Handle vectors.
6448 (common_type): Same.
6449 (type_after_usual_arithmetic_conversions): Same.
6451 2005-06-08 Nathan Sidwell <nathan@codesourcery.com>
6454 * cp-tree.def (USING_DECL): Update documentation.
6455 * cp-tree.h (DECL_DEPENDENT_P): New.
6456 (USING_DECL_DECLS, USING_DECL_SCOPE): New.
6457 * class.c (handle_using_decl): Move most of the processing to ...
6458 * name-lookup.c (do_class_using_decl): ... here. Make stricter.
6459 (push_using_decl): Use USING_DECL_SCOPE.
6460 (cp_emit_debug_info_for_using): Make extern.
6461 * cxx-pretty-print.c (pp_cxx_statement) <USING_DECL case>: Adjust.
6462 * name-lookup.h (cp_emit_debug_info_for_using): Declare.
6463 * pt.c (tsubst_decl) <USING_DECL case>: Use do_class_using_decl
6465 (tsubst_expr): Use USING_DECL_SCOPE.
6466 * search.c (lookup_field_1): Use DECL_DEPENDENT_P.
6467 * semantics.c (finish_member_declaration): Likewise.
6469 2005-06-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
6472 * pt.c (tsubst): Reject pointer-to-member of type void.
6475 * parser.c (cp_parser_label_declaration): Deal with invalid/missing
6478 2005-06-07 Nathan Sidwell <nathan@codesourcery.com>
6480 * cp-tree.def (DEFAULT_ARG): Adjust documentation.
6481 * cp-tree.h (DEFARG_INSTANTIATIONS): New.
6482 (struct tree_default_arg): Add instantiations member.
6483 * parser.c (cp_parser_late_parsing_default_args): Adjust to use a
6485 * pt.c (tsubst_arg_types): Likewise.
6487 * parser.c (cp_parser_late_parsing_default_args): Fix overeager
6488 assert in previous patch.
6490 2005-06-06 Jakub Jelinek <jakub@redhat.com>
6492 * error.c (locate_error): Use gmsgid instead of msgid for argument
6494 (cp_error_at, cp_warning_at, cp_pedwarn_at): Likewise.
6496 2005-06-06 Nathan Sidwell <nathan@codesourcery.com>
6499 * cp-tree.def (DEFAULT_ARG): Document TREE_CHAIN use.
6500 * parser.c (cp_parser_late_parsing_default_args): Propagate parsed
6501 argument to any early instantiations.
6502 * pt.c (tsubst_arg_types): Chain early instantiation of default arg.
6505 * cp-tree.h (add_method): Add using_decl parameter.
6506 * class.c (add_method): Add using_decl parameter. Adjust error
6508 (handle_using_decl): Pass the using decl to add_method.
6509 (clone_function_decl): Adjust add_member calls.
6510 * decl2.c (check_classfn): Likewise.
6511 * method.c (lazily_declare_fn): Likewise.
6512 * semantics.c (finish_member_declaration): Likewise.
6514 * method.c (synthesize_method): Use inform, not warning.
6516 2005-06-06 Hans-Peter Nilsson <hp@axis.se>
6518 * config-lang.in (target_libs): Remove target-gperf.
6520 2005-06-05 Mark Mitchell <mark@codesourcery.com>
6523 * cp-tree.h (DECL_IS_BUILTIN_CONSTANT_P): New macro.
6524 * parser.c (cp_parser_postfix_expression): Allow non-constant
6525 expressions as arguments to __builtin_constant_p.
6526 * tree.c (builtin_valid_in_constant_expr_p): Use
6527 DECL_IS_BUILTIN_CONSTANT_P.
6529 2005-06-03 Mark Mitchell <mark@codesourcery.com>
6532 * typeck.c (casts_away_constness_r): Do not drop cv-qualifiers on
6533 the pointed-to type for a pointer-to-member.
6536 * cp-tree.h (grok_op_properties): Remove friendp parameter.
6537 * decl.c (grokfndecl): Adjust call.
6538 (grok_op_properties): Determine the class of which the function is
6539 a member by looking at its DECL_CONTEXT, not current_class_type.
6540 * pt.c (tsubst_decl): Adjust call to grok_op_properties.
6542 2005-06-02 Nathan Sidwell <nathan@codesourcery.com>
6544 * method.c (synthesize_method): Add addtional arg to warning call.
6547 * Make-lang.in (method.o): Add diagnostic.h
6548 * decl.c (start_preparsed_function): Use decl's location for file
6550 * decl2.c (cp_finish_file): Set input_location before synthesizing
6552 (mark_used): When deferring a synthesized function, save current
6553 location. Do not set function's location when actually
6555 * method.c: #include diagnostic.h.
6556 (synthesize_method): Set the functions source location. Show
6557 needed location if errors are emitted.
6559 * decl.c (start_decl): Simplify specialization handling. Remove
6560 unneeded CLASSTYPE_TEMPLATE_INSTANTIATION check.
6561 * mangle.c (discriminator_for_local_entity): Use VEC_index.
6564 * decl.c (duplicate_decls): Copy all of DECL_USE_TEMPLATE.
6567 * name-lookup.c (pushtag): Push local class even in a template.
6569 2005-05-31 Nathan Sidwell <nathan@codesourcery.com>
6572 * init.c (integral_constant_value): Check the type of the
6573 initializer, not the decl.
6575 2005-05-30 Mark Mitchell <mark@codesourcery.com>
6578 * name-lookup.c (do_nonmember_using_decl): Ignore builtin
6579 functions, even when the used name is not a function.
6581 2005-05-30 Kazu Hirata <kazu@cs.umass.edu>
6583 * operators.def, optimize.c: Update copyright.
6585 2005-05-28 Mark Mitchell <mark@codesourcery.com>
6588 * call.c (standard_conversion): Permit conversions to complex
6589 types if conversion to the corresponding scalar type would be
6593 * method.c (implicitly_declare_fn): Clear processing_template_decl
6594 when generating implicit declaration.
6596 2005-05-27 Mark Mitchell <mark@codesourcery.com>
6599 * typeck.c (get_member_function_from_ptrfunc): Do not attempt
6600 conversions to base classes of incomplete types.
6602 2005-05-27 Ian Lance Taylor <ian@airs.com>
6604 * semantics.c (add_stmt): Add C++ frontend specific version.
6605 * cp-tree.h (STMT_IS_FULL_EXPR_P): Define.
6606 (stmts_are_full_exprs_p): Declare.
6608 2005-05-27 Roger Sayle <roger@eyesopen.com>
6609 Giovanni Bajo <giovannibajo@gcc.gnu.org>
6611 * cp-tree.def (UNARY_PLUS_EXPR): New C++ unary tree code.
6612 * parser.c (cp_parser_unary_expression): Use UNARY_PLUS_EXPR instead
6614 (cp_parser_unary_expression): Likewise.
6615 * typeck.c (build_unary_op): Likewise.
6616 * call.c (add_builtin_candidate, build_new_op): Likewise.
6617 * error.c (dump_expr): Likewise.
6618 * pt.c (tsubst_copy, tsubst_copy_and_build): Likewise.
6619 * decl.c (ambi_op_p, grok_op_properties): Likewise.
6620 * dump.c (dump_op): Likewise.
6621 * lex.c (init_operators): Likewise.
6622 * operators.def ("+"): Likewise.
6623 * cp-gimplify.c (cp_gimplify_expr): Handle UNARY_PLUS_EXPR like a
6624 conversion, if the result and argument types differ.
6625 * tree.c (fold_if_not_in_template): Fold UNARY_PLUS_EXPR much
6626 like a NOP_EXPR when !processing_template_decl.
6628 * cxx-pretty-print.c (pp_cxx_cast_expression): Prototype.
6629 (pp_cxx_unary_expression): Handle new UNARY_PLUS_EXPR tree code.
6631 2005-05-27 Nathan Sidwell <nathan@codesourcery.com>
6634 * typeck.c (get_delta_difference): Cope with incomplete but equal
6635 classes. Reorder if.
6638 * parser.c (cp_parser_late_parsing_for_member): Disable access
6639 checking for template functions.
6641 2005-05-26 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
6644 * pt.c (redeclare_class_template): Change error message according
6645 to coding conventions.
6647 2005-05-26 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
6649 * call.c (build_op_delete_call): Fix quoting in error message.
6651 2005-05-25 Richard Henderson <rth@redhat.com>
6654 * cp-tree.h (make_alias_for): Declare.
6655 * decl2.c (build_java_method_aliases): New.
6656 (cp_finish_file): Call it.
6657 * method.c (make_alias_for): Split out from ...
6658 (make_alias_for_thunk): ... here.
6660 2005-05-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
6663 * semantics.c (finish_id_expression): Fix quoting in error message.
6665 2005-05-25 DJ Delorie <dj@redhat.com>
6667 * decl.c (duplicate_decls): Move warning control from if() to
6669 * name-lookup.c (parse_using_directive): Likewise.
6670 * parser.c (cp_parser_elaborated_type_specifier): Likewise.
6671 (cp_parser_init_declarator): Likewise.
6672 * tree.c (handle_com_interface_attribute): Likewise.
6674 2005-05-24 Ziemowit Laski <zlaski@apple.com>
6676 * class.c (layout_class_type): Do not issue C++ ABI warnings
6678 * decl.c (objc_mark_locals_volatile): Streamline by calling
6679 objc_volatilize_decl().
6680 * parser.c (cp_parser_objc_message_expression): Allow simple
6681 type specifiers (instead of merely type names) as message
6683 * pt.c (template_args_equal): Do not call objc_comptypes().
6684 * typeck.c (composite_pointer_type): If both pointers are
6685 ObjC-esque, arbitrarily choose the first; do not call
6687 (comptypes): Do not call objc_comptypes().
6688 (convert_for_assignment): Call objc_compare_types().
6689 (comp_ptr_ttypes_real): Call objc_type_quals_match() before
6690 concluding that types do not match.
6692 2005-05-24 Andrew Pinski <pinskia@physics.uc.edu>
6695 * optimize.c (update_cloned_parm): Copy the TYPE also from the
6698 2005-05-19 Jakub Jelinek <jakub@redhat.com>
6701 * decl.c (grokdeclarator): Fix "storage class specified for"
6704 2005-05-19 Kazu Hirata <kazu@cs.umass.edu>
6706 * parser.c: Fix comment typos.
6708 2005-05-18 Geoffrey Keating <geoffk@apple.com>
6710 * Make-lang.in (cc1plus-dummy): New.
6711 (cc1plus-checksum.c): New.
6712 (cc1plus-checksum.o): New.
6713 (cc1plus): Add cc1plus-checksum.o.
6715 2005-05-17 H.J. Lu <hongjiu.lu@intel.com>
6718 * decl2.c (determine_visibility): Don't set visibility to
6719 hidden if it has been set explicitly by user.
6721 2005-05-17 Ziemowit Laski <zlaski@apple.com>
6722 Mike Stump <mrs@apple.com>
6724 Yet more Objective-C++...
6726 * cp-objcp-common.h (cxx_get_alias_set): Move from
6728 (cxx_warn_unused_global_decl): Likewise.
6729 (cp_expr_size): Likewise.
6730 (cp_tree_size): Likewise.
6731 (cp_var_mod_type_p): Likewise.
6732 (cxx_initialize_diagnostics): Likewise.
6733 (cxx_types_compatible_p): Likewise.
6734 * cp-tree.h: to here.
6736 * lex.c (D_OBJC): Add.
6737 (init_reswords): Add.
6738 * Make-lang.in (cp/pt.o): Add cp/cp-objcp-common.h.
6739 * parser.c: Add c-common.h include.
6740 * pt.c: Add c-common.h and cp-objcp-common.h includes.
6741 (template_args_equal): Use objc_comptypes as well.
6742 (tsubst_copy_and_build): Use objcp_tsubst_copy_and_build as well.
6743 * semantics.c (do_poplevel): Remove static.
6745 * decl.c (objc_mark_locals_volatile): Don't change decls that are
6747 * decl2.c (generate_ctor_or_dtor_function): Add code to initialize
6748 Objective C++ early enough.
6749 * lex.c (struct resword reswords): Add Objective-C++ support.
6750 * parser.c (cp_lexer_get_preprocessor_token): Add Objective-C++.
6751 (cp_parser_objc_message_receiver): Add.
6752 (cp_parser_objc_message_args): Likewise.
6753 (cp_parser_objc_message_expression): Likewise.
6754 (cp_parser_objc_encode_expression): Likewise.
6755 (cp_parser_objc_defs_expression): Likewise.
6756 (cp_parser_objc_protocol_expression): Likewise.
6757 (cp_parser_objc_selector_expression): Likewise.
6758 (cp_parser_objc_expression): Likewise.
6759 (cp_parser_objc_visibility_spec): Likewise.
6760 (cp_parser_objc_method_type): Likewise.
6761 (cp_parser_objc_protocol_qualifiers): Likewise.
6762 (cp_parser_objc_typename): Likewise.
6763 (cp_parser_objc_selector_p): Likewise.
6764 (cp_parser_objc_selector): Likewise.
6765 (cp_parser_objc_method_keyword_params): Likewise.
6766 (cp_parser_objc_method_tail_params_opt): Likewise.
6767 (cp_parser_objc_interstitial_code): Likewise.
6768 (cp_parser_objc_method_signature): Likewise.
6769 (cp_parser_objc_method_prototype_list): Likewise.
6770 (cp_parser_objc_method_definition_list): Likewise.
6771 (cp_parser_objc_class_ivars): Likewise.
6772 (cp_parser_objc_identifier_list): Likewise.
6773 (cp_parser_objc_alias_declaration): Likewise.
6774 (cp_parser_objc_class_declaration): Likewise.
6775 (cp_parser_objc_protocol_declaration): Likewise.
6776 (cp_parser_objc_protocol_refs_opt): Likewise.
6777 (cp_parser_objc_superclass_or_category): Likewise.
6778 (cp_parser_objc_class_interface): Likewise.
6779 (cp_parser_objc_class_implementation): Likewise.
6780 (cp_parser_objc_end_implementation): Likewise.
6781 (cp_parser_objc_declaration): Likewise.
6782 (cp_parser_objc_try_catch_finally_statement): Likewise.
6783 (cp_parser_objc_synchronized_statement): Likewise.
6784 (cp_parser_objc_throw_statement): Likewise.
6785 (cp_parser_objc_statement): Likewise.
6786 (cp_parser_primary_expression): Add Objective-C++.
6787 (cp_parser_statement): Likewise.
6788 (cp_parser_declaration): Likewise.
6789 (cp_parser_simple_type_specifier): Likewise.
6790 (cp_parser_type_name): Likewise.
6791 (cp_parser_parameter_declaration_list): Likewise.
6792 (cp_parser_member_declaration) Likewise.
6793 * tree.c: Include debug.h.
6794 * typeck.c (composite_pointer_type): Add Objective-C++ support.
6795 (finish_class_member_access_expr): Likewise.
6796 (build_function_call): Allow objc to rewrite FUNCTION_DECLs.
6797 (build_modify_expr): Allow objc to generate write barriers.
6799 * Make-lang.in (cp/tree.o): Add debug.h.
6800 * tree.c (lvalue_p_1, case CONST_DECL): Add.
6802 2005-05-18 Jan Hubicka <jh@suse.cz>
6804 * method.c: Include tree-pass.h
6805 (use_thunk): Lower body before expanding.
6807 2005-05-17 Jakub Jelinek <jakub@redhat.com>
6810 * decl.c (maybe_deduce_size_from_array_init): Call
6811 cp_apply_type_quals_to_decl after completing array type.
6813 2005-05-16 Richard Henderson <rth@redhat.com>
6815 * decl.c (build_library_fn_1): Move setting TREE_NOTHROW ...
6816 (build_library_fn): ... here.
6818 2005-05-12 Ian Lance Taylor <ian@airs.com>
6820 * cp-tree.h (cp_stmt_codes): Don't define.
6821 (statement_code_p): Declare.
6822 (STATEMENT_CODE_P): Define.
6823 * lex.c (statement_code_p): Define.
6824 (cxx_init): Use actual codes in stmt_codes initializer, not
6825 cp_stmt_codes macro. Initialize statement_code_p directly, rather
6826 than using INIT_STATEMENT_CODES.
6828 2005-05-09 Mark Mitchell <mark@codesourcery.com>
6830 * typeck.c (build_unary_op): Do not resort to address arithmetic
6831 when taking the address of a COMPONENT_REF.
6833 2005-05-08 Kazu Hirata <kazu@cs.umass.edu>
6835 * class.c (vtbl_init_data_s): Change the type of fns to
6837 (build_vtbl_initializer, add_vcall_offset, add_vcall_offset):
6838 Use VEC instead of VARRAY.
6840 2005-05-07 Richard Sandiford <rsandifo@redhat.com>
6842 * mangle.c: Remove a reference to the MIPS -mint64 option.
6844 2005-05-07 Kazu Hirata <kazu@cs.umass.edu>
6846 * decl.c (wrapup_globals_for_namespace): Use VEC instead of
6848 * name-lookup.c (add_decl_to_level, begin_scope): Likewise.
6849 * name-lookup.h (cp_binding_level): Change the type of
6850 static_decls to VEC(tree,gc)*.
6852 * mangle.c (globals): Change the type of substitutions to
6854 (dump_substitution_candidates, add_substitution,
6855 find_substitution, finish_mangling, init_mangle): Use VEC
6858 2005-05-06 Kazu Hirata <kazu@cs.umass.edu>
6860 * decl2.c (spew_debug): Remove.
6862 * decl2.c (ssdf_decls, start_static_storage_duration_function,
6863 generate_ctor_or_dtor_function): Use VEC instead of VARRAY.
6865 * decl2.c (pending_statics, note_vague_linkage_var,
6866 cp_finish_file): Use VEC instead of VARRAY.
6867 (pending_statics_used): Remove.
6869 2005-05-05 Kazu Hirata <kazu@cs.umass.edu>
6871 * decl2.c (deferred_fns, note_vague_linkage_fn,
6872 cp_finish_file): Use VEC instead of VARRAY.
6874 2005-05-05 Mark Mitchell <mark@codesourcery.com>
6877 * pt.c (build_non_dependent_expr): Use is_overloaded_fn.
6879 2005-05-05 Kazu Hirata <kazu@cs.umass.edu>
6881 * pt.c: Fix a comment typo.
6883 2005-05-04 Kazu Hirata <kazu@cs.umass.edu>
6885 * cp-tree.h (language_function): Change the type of
6886 x_local_names to VEC.
6887 * decl.c (push_local_name): Adjust uses of local_names.
6889 2005-05-03 Kazu Hirata <kazu@cs.umass.edu>
6891 * friend.c, lex.c, mangle.c, repo.c: Update copyright.
6893 2005-05-02 Kazu Hirata <kazu@cs.umass.edu>
6895 * class.c (local_classes, init_class_processing): Use VEC
6897 * cp-tree.h (local_classes): Likewise.
6898 * mangle.c (discriminator_for_local_entity): Likewise.
6899 * name-lookup.c (pushtag): Likewise.
6901 * class.c (current_lang_depth, push_lang_context,
6902 pop_lang_context): Use VEC instead of VARRAY.
6903 * cp-tree.h (saved_scope): Use VEC for lang_base instead of
6905 * name-lookup.c (push_to_top_level): Use VEC instead of
6908 2005-05-02 Paolo Bonzini <bonzini@gnu.org>
6910 * semantics.c (finish_call_expr): Call resolve_overloaded_builtin
6911 for BUILT_IN_MD built-ins.
6913 2005-05-02 Michael Matz <matz@suse.de>
6916 * cp-tree.h (cp_tree_index): Remove CPTI_NULL, to be defined in C
6918 (null_node): Remove.
6919 * lex.c (cxx_init): Move null_node initialisation to C common frontend.
6921 2005-04-25 Ian Lance Taylor <ian@airs.com>
6923 * cp-tree.def: Add EXPR_STMT.
6924 * cp-tree.h (cp_stmt_codes): Add EXPR_STMT.
6925 (EXPR_STMT_EXPR): Define.
6926 * cp-gimplify.c: Include "flags.h".
6927 (gimplify_expr_stmt): New static function.
6928 (cp_gimplify_expr): Handle EXPR_STMT.
6929 * cxx-pretty-print.c (pp_cxx_statement): Use pp_cxx_expression
6930 rather than pp_expression.
6931 (pp_cxx_statement): Handle EXPR_STMT.
6932 * dump.c (cp_dump_tree): Handle EXPR_STMT.
6933 * lex.c (cxx_init): Don't use c_common_stmt_codes in stmt_codes
6936 2005-04-25 Andrew Pinski <pinskia@physics.uc.edu>
6939 * rtti.c (ifnonnull): Cast the zero comparison operand
6940 to the correct type.
6942 2005-04-24 Jakub Jelinek <jakub@redhat.com>
6945 * class.c: Include cgraph.h.
6946 (cp_fold_obj_type_ref): Set node->local.vtable_method.
6947 * Make-lang.in (cgraph.o): Depend on $(CGRAPH_H).
6949 2005-04-12 Markus F.X.J. Oberhumer <markus@oberhumer.com>
6951 * mangle.c (write_builtin_type): Handle integer types which are
6952 not one of the shared integer type nodes and emit a "vendor
6953 extended builtin type" with an encoding in the form of "u5int96".
6955 2005-04-24 Ian Lance Taylor <ian@airs.com>
6957 * cp-tree.def (USING_STMT): Change class to tcc_statement.
6958 (TRY_BLOCK, EH_SPEC_BLOCK, HANDLER, CLEANUP_STMT): Likewise.
6959 (IF_STMT, FOR_STMT, WHILE_STMT, DO_STMT): Likewise.
6960 (BREAK_STMT, CONTINUE_STMT, SWITCH_STMT): Likewise.
6962 2005-04-23 DJ Delorie <dj@redhat.com>
6964 * call.c, class.c, cvt.c, decl.c, decl2.c, except.c, friend.c,
6965 init.c, lex.c, mangle.c, method.c, name-lookup.c, parser.c,
6966 repo.c, rtti.c, tree.c, typeck.c, typeck2.c: Adjust warning()
6969 2005-04-22 Per Bothner <per@bothner.com>
6971 * decl.c (make_rtl_for_nonlocal_decl): Don't try get_fileinfo if
6972 input_filename is NULL, as it is for (say) __PRETTY_FUNCTION__.
6974 2005-04-22 Alexandre Oliva <aoliva@redhat.com>
6977 * name-lookup.c (push_overloaded_decl): Do not overload with
6978 non-duplicate anticipated built-in.
6980 2005-04-21 Kazu Hirata <kazu@cs.umass.edu>
6982 * cp-tree.h (THROW_NAME, AUTO_VTABLE_NAME, AUTO_TEMP_FORMAT,
6983 VTABLE_BASE, VTABLE_NAME_PREFIX, STATIC_NAME_FORMAT): Remove.
6985 2005-04-21 Nathan Sidwell <nathan@codesourcery.com>
6987 * cp-tree.h: Adjust for new VEC API.
6988 Define VEC(tree_pair_s,gc).
6989 (struct save_scope): Adjust.
6990 (struct lang_type_class): Adjust.
6991 (unemitted_tinfo_decls): Adjust.
6992 * class.c (add_method, resort_type_method_vec,
6993 finish_struct_methods, struct find_final_overrider_data,
6994 dfs_find_final_overrider_pre, find_final_overrider,
6995 get_vcall_index, warn_hidden, walk_subobject_offsets,
6996 check_methods, fixup_inline_methods, end_of_class,
6997 warn_about_ambiguous_bases, finish_struct, build_vtbl_initializer,
6998 add_vcall_offset): Adjust.
6999 * decl.c (xref_basetypes, finish_method): Adjust.
7000 * decl2.c (check_classfn): Adjust.
7001 * init.c (sort_mem_initializers, push_base_cleanups): Adjust.
7002 * method.c (do_build_copy_constructor): Adjust.
7003 * name-lookup.c (new_class_binding, store_binding,
7004 store_bindings, store_class_bindings): Adjust.
7005 * name-lookup.h: Define VEC(cxx_saved_binding,gc),
7006 VEC(cp_class_binding,gc).
7007 (struct cp_binding_level): Adjust.
7008 * parser.c: Define VEC(cp_token_position,heap).
7009 (struct cp_lexer): Adjust.
7010 (cp_lexer_new_main, cp_lexer_new_from_tokens, cp_lexer_destroy,
7011 cp_lexer_save_tokens): Adjust.
7012 * pt.c (retrieve_specialization,
7013 check_explicit_specialization): Adjust.
7014 * rtti.c (unemitted_tinfo_decls): Adjust.
7015 (init_rtti_processing, get_tinfo_decl, get_pseudo_ti_init,
7016 get_pseudo_ti_desc): Adjust.
7017 * search.c (dfs_access_in_type, lookup_conversion_operator,
7018 lookup_fnfields_1, dfs_walk_once, dfs_walk_once_accessible,
7019 dfs_get_pure_virtuals, lookup_conversions_r, binfo_for_vbase): Adjust.
7020 * semantics.c: Define VEC(deferred_access,gc).
7021 (push_deferring_access_checks): Adjust.
7022 * typeck2.c (abstract_virtuals_error): Adjust.
7024 2005-04-20 Ian Lance Taylor <ian@airs.com>
7026 * cp-tree.def: Add STMT_EXPR.
7027 * cp-tree.h (STMT_EXPR_NO_SCOPE): Define.
7028 (STMT_EXPR_STMT): Define.
7029 * cxx-pretty-print.c (pp_cxx_primary_expression): Handle
7031 (pp_cxx_expression): Likewise.
7032 (pp_cxx_statement): Call pp_cxx_statement, not pp_statement.
7033 * dump.c (cp_dump_tree): Handle STMT_EXPR.
7035 2005-04-18 Kazu Hirata <kazu@cs.umass.edu>
7037 * decl.c (expand_static_init): Call build2 and build3 instead
7040 * cp-tree.h (VPTR_NAME, VPTR_NAME_P): Remove.
7042 2005-04-17 Ian Lance Taylor <ian@airs.com>
7044 * cp-tree.def: Add SIZEOF_EXPR, ARROW_EXPR and ALIGNOF_EXPR.
7045 * cxx-pretty-print.c (pp_cxx_postfix_expression): Handle
7047 (pp_cxx_unary_expression): Handle SIZEOF_EXPR and ALIGNOF_EXPR.
7048 (pp_cxx_expression): Handle ARROW_EXPR, SIZEOF_EXPR, and
7050 * typeck.c (cxx_sizeof_or_alignof_type): Update call to
7051 c_sizeof_or_alignof_type for change in parameter type.
7053 2005-04-16 Mark Mitchell <mark@codesourcery.com>
7056 * typeck.c (cxx_sizeof_or_alignof_type): Check whether the type to
7057 which sizeof/alignof is dependent, rather than just whether we are
7058 processing_template_decl.
7060 2005-04-17 Kazu Hirata <kazu@cs.umass.edu>
7062 * cp-tree.h (LOOKUP_GLOBAL): Remove.
7063 (LOOKUP_ONLYCONVERTING, DIRECT_BIND, LOOKUP_NO_CONVERSION,
7064 LOOKUP_DESTRUCTOR, LOOKUP_NO_TEMP_BIND, LOOKUP_PREFER_TYPES,
7065 LOOKUP_PREFER_NAMESPACES, LOOKUP_CONSTRUCTOR_CALLABLE): Adjust
7068 2005-04-15 Richard Henderson <rth@redhat.com>
7071 * semantics.c (finish_call_expr): Call resolve_overloaded_builtin.
7073 2005-04-15 Kazu Hirata <kazu@cs.umass.edu>
7075 * cp-tree.h (lang_type_class): Remove redefined. Move
7076 java_interface into where redefined was. Increment the width
7078 (TYPE_REDEFINED): Remove.
7080 2005-04-14 Kazu Hirata <kazu@cs.umass.edu>
7082 * cp-tree.h (SET_TMPL_ARG, ENUM_TI_TEMPLATE, ENUM_TI_ARGS,
7083 CLASSTYPE_TEMPLATE_LEVEL): Remove.
7085 2005-04-11 Mark Mitchell <mark@codesourcery.com>
7087 * decl2.c (determine_visibility): Don't use export_class_data.
7088 (import_export_decl): Honor TARGET_CXX_CLASS_DATA_ALWAYS_WEAK and
7089 TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY.
7091 2005-04-09 Kazu Hirata <kazu@cs.umass.edu>
7093 * cp-tree.h (cxx_alignof): Remove.
7095 * cp-tree.h (DECL_ARRAY_DELETE_OPERATOR_P): Remove.
7097 * cp-tree.h (EXCEPTION_CLEANUP_NAME, B_SET, B_CLR, B_TST,
7098 CONV_STATIC_CAST): Remove.
7100 * pt.c (UNIFY_ALLOW_MAX_CORRECTION): Remove.
7102 * cp-tree.h (VF_BINFO_VALUE, VF_BASETYPE_VALUE): Remove.
7104 * cp-tree.h (cp_deprecated): Remove.
7106 2005-04-08 Ian Lance Taylor <ian@airs.com>
7108 * cp-tree.def: Define FOR_STMT, WHILE_STMT, DO_STMT, BREAK_STMT,
7109 CONTINUE_STMT, SWITCH_STMT.
7110 * cp-tree.h (cp_stmt_codes): Add FOR_STMT, WHILE_STMT, DO_STMT,
7111 BREAK_STMT, CONTINUE_STMT, SWITCH_STMT.
7112 (WHILE_COND, WHILE_BODY): Define.
7113 (DO_COND, DO_BODY): Define.
7114 (FOR_INIT_STMT, FOR_COND, FOR_EXPR, FOR_BODY): Define.
7115 (SWITCH_STMT_COND, SWITCH_STMT_BODY, SWITCH_STMT_TYPE): Define.
7116 * cp-gimplify.c (enum bc_t): Define.
7117 (struct cp_gimplify_ctx, ctxp): Define.
7118 (push_context, pop_context): New static functions.
7119 (begin_bc_block, finish_bc_block): New static functions.
7120 (build_bc_goto): New static function.
7121 (gimplify_cp_loop, gimplify_for_stmt): New static functions.
7122 (gimplify_while_stmt, gimplify_do_stmt): Likewise.
7123 (gimplify_switch_stmt): Likewise.
7124 (cp_gimplify_expr): Handle FOR_STMT, WHILE_STMT, DO_STMT,
7125 SWITCH_STMT, CONTINUE_STMT, BREAK_STMT.
7126 (cp_genericize): Call push_context and pop_context.
7127 * semantics.c (finish_break_stmt): Just call build_stmt
7128 (BREAK_STMT) rather than build_break_stmt.
7129 (finish_continue_stmt): Corresponding change.
7130 * decl.c (pop_switch): Update call to c_do_switch_warnings for new
7132 * cxx-pretty-print.c (pp_cxx_statement): Handle SWITCH_STMT,
7133 WHILE_STMT, DO_STMT, FOR_STMT, BREAK_STMT, CONTINUE_STMT.
7134 * dump.c (cp_dump_tree): Likewise.
7136 2005-04-08 Mark Mitchell <mark@codesourcery.com>
7139 * parser.c (cp_parser_type_specifier_seq): Add is_condition
7141 (cp_parser_new_type_id): Pass it.
7142 (cp_parser_condition): Likewise.
7143 (cp_parser_conversion_type_id): Likewise.
7144 (cp_parser_type_id): Likewise.
7145 (cp_parser_type_specifier_seq): In a condition, do not allow
7146 invalid type-specifier combinations.
7147 (cp_parser_exception_declaration): Adjust call to
7148 cp_parser_type_specifier_seq.
7150 * cp-tree.def (TINST_LEVEL): Document TINST_IN_SYSTEM_HEADER_P.
7151 * cp-tree.h (struct tinst_level): Add in_system_header_p.
7152 (TINST_IN_SYSTEM_HEADER_P): New macro.
7153 (make_tinst_level): Remove.
7154 * pt.c (lookup_template_class): Preserve DECL_IN_SYSTEM_HEADER on
7155 the instantiated class.
7156 (push_tinst_level): Do not use make_tinst_level. Set
7157 TINST_IN_SYSTEM_HEADER_P.
7158 (pop_tinst_level): Likewise.
7159 (instantiate_class_template): Set in_system_header.
7160 (instantiate_pending_templates): Likewise.
7161 * tree.c (make_tinst_level): Remove.
7163 2005-04-06 Joseph S. Myers <joseph@codesourcery.com>
7165 * decl.c (start_decl): Apply pending #pragma weak regardless of
7168 2005-04-06 Mark Mitchell <mark@codesourcery.com>
7171 * pt.c (regenerate_decl_from_template): Copy attributes for
7172 parameters from the pattern to the instantiation.
7174 2005-04-05 Mark Mitchell <mark@codesourcery.com>
7177 * cp-tree.def (OFFSET_REF): Correct comments.
7178 * init.c (build_offset_ref): Remove misleading comment.
7179 * typeck.c (build_unary_op): Handle pointer-to-member creation
7180 here, rather than ...
7181 (unary_complex_lvalue): ... here.
7183 2005-04-06 Jason Merrill <jason@redhat.com>
7186 * tree.c (stabilize_init): Don't bother trying to stabilize
7187 something with no side-effects.
7189 2005-04-05 Mark Mitchell <mark@codesourcery.com>
7192 * decl.c (grokdeclarator): Correct attribute handling.
7194 2005-04-05 Mark Mitchell <mark@codesourcery.com>
7197 * decl2.c (import_export_decl): Use non-COMDAT external linkage
7198 for virtual tables, typeinfo, etc. that will be emitted in only
7199 one translation unit on systems without weak symbols.
7201 2005-04-04 Mark Mitchell <mark@codesourcery.com>
7204 * parser.c (cp_parser_template_name): Fix thinko.
7206 2005-04-04 Nathan Sidwell <nathan@codesourcery.com>
7209 * method.c (use_thunk): Protect covariant pointer return
7210 adjustments from NULL pointers.
7212 2005-04-04 Jan Hubicka <jh@suse.cz>
7214 * decl2.c (finish_objects): Revert my previous patch.
7215 (cp_finish_file): Likewise.
7217 2005-04-03 Kazu Hirata <kazu@cs.umass.edu>
7219 * pt.c: Fix comment typos.
7221 2005-04-03 Nathan Sidwell <nathan@codesourcery.com>
7224 * pt.c (more_specialized_fn): Member functions are unordered wrt
7225 non-members. Conversion operators are unordered wrt other
7228 2005-04-01 Nathan Sidwell <nathan@codesourcery.com>
7230 * call.c (add_template_candidates_real): Remove length parameter
7231 from fn_type_unification call.
7232 * class.c (resolve_address_of_overloaded_function): Likewise
7233 * cp-tree.h (fn_type_unification): Remove length parameter.
7234 * pt.c (get_bindings_overload): Remove.
7235 (get_bindings_real): Rename to ...
7236 (get_bindings): ... here. Remove length and strict
7237 parameters. Change return type flag to boolean. Remove original
7238 forwarding function.
7239 (determine_specialization): Adjust get_bindings call.
7240 (fn_type_unification): Remove length parameter. Adjust.
7241 (type_unification_real): Remove length parameter. Adjust.
7242 (resolve_overloaded_unification): Adjust get_bindings call.
7243 (try_one_overload): Simplify confusing cascaded if control flow.
7244 (unify): Remove length paramter from type_unification_real call.
7245 (most_specialized_instantiation): Adjust get_bindings calls.
7246 (most_specialized): Likewise.
7248 2005-03-31 Nathan Sidwell <nathan@codesourcery.com>
7250 PR c++/19203, implement DR 214
7251 * call.c (joust): Use more_specialized_fn.
7252 * cp-tree.h (DEDUCE_ORDER): Remove.
7253 (more_specialized): Replace with ...
7254 (more_specialized_fn): ... this.
7255 * pt.c (maybe_adjust_types_for_deduction): Remove DEDUCE_ORDER
7257 (type_unification_real): Remove DEDUCE_ORDER case.
7258 (more_specialized): Replace with ...
7259 (more_specialized_fn): ... this. Implement DR 214.
7260 (most_specialized_instantiation): Use get_bindings_real directly.
7262 2005-03-31 Gabriel Dos Reis <gdr@integrable-solutions.net>
7265 * call.c (build_new_op): Remove check for -Wsynth.
7267 2005-03-31 Jan Hubicka <jh@suse.cz>
7269 * decl2.c (finish_objects): Mark ctor as needed.
7270 (cp_finish_file): Output variables only in nonunit-at-a-time.
7272 2005-03-29 Richard Henderson <rth@redhat.com>
7275 * decl.c (cp_complete_array_type): Rename from complete_array_type.
7276 Use the new complete_array_type in c-common.c. Update all callers.
7277 * cp-tree.h (cp_complete_array_type): Update to match.
7279 2005-03-24 Geoffrey Keating <geoffk@apple.com>
7281 * typeck.c (build_static_cast_1): Allow scalar_cast between
7282 any integral, floating, or enumeration type.
7284 2005-03-24 Steven Bosscher <stevenb@suse.de>
7286 * typeck.c (comptypes): First determine if the types are compatible
7287 from a target-independent point of view. Check target attributes
7290 * class.c (build_base_path):
7291 (build_vbase_offset_vtbl_entries):
7292 (add_vcall_offset): Replace fold (buildN (...)) with fold_buildN.
7293 * error.c (dump_expr): Likewise.
7294 * init.c (build_zero_init, expand_cleanup_for_base,
7295 build_vec_delete_1): Likewise.
7296 * mangle.c (write_integer_cst): Likewise.
7297 * method.c (thunk_adjust): Likewise.
7298 * pt.c (convert_nontype_argument, tsubst, unify): Likewise.
7299 * tree.c (cxx_print_statistics, array_type_nelts_total): Likewise.
7300 * typeck.c (build_ptrmemfunc_access_expr,
7301 (get_member_function_from_ptrfunc): Likewise.
7303 2005-03-23 Joseph S. Myers <joseph@codesourcery.com>
7305 * cp-objcp-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
7307 2005-03-23 Joseph S. Myers <joseph@codesourcery.com>
7309 * cp-tree.h (perform_integral_promotions): Remove.
7310 (default_conversion): Add.
7312 2005-03-22 Mark Mitchell <mark@codesourcery.com>
7314 * parser.c (cp_parser_warn_min_max): New function.
7315 (cp_parser_binary_expression): Use it.
7316 (cp_parser_assignment_operator_opt): Likewise.
7317 (cp_parser_operator): Likewise.
7319 2005-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
7322 * decl.c (start_preparsed_function): Robustify.
7324 2005-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
7327 * parser.c (cp_parser_class_head): Return NULL_TREE when
7328 encountering a redefinition.
7330 2005-03-22 Nathan Sidwell <nathan@codesourcery.com>
7334 * typeck.c (build_ptrmemfunc): Allow OFFSET_REF when processing a
7337 2005-03-21 Paolo Carlini <pcarlini@suse.de>
7341 * init.c (emit_mem_initializers): Don't crash on undefined
7344 2005-03-21 Paolo Carlini <pcarlini@suse.de>
7347 * semantics.c (finish_stmt_expr_expr): Return immediately
7348 if error_operand_p (expr).
7350 2005-03-21 Joseph S. Myers <joseph@codesourcery.com>
7352 * cp-tree.h (lvalue_or_else, lvalue_p): New.
7353 * typeck.c (lvalue_or_else): New. Call lvalue_error.
7355 2005-03-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
7358 * decl.c (decls_match): Compare context of VAR_DECL.
7360 2005-03-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
7363 * parser.c (cp_parser_postfix_expression) <case RID_TYPENAME>:
7364 Check the return value of cp_parser_nested_name_specifier.
7366 2005-03-18 Dale Johannesen <dalej@apple.com>
7368 * cp/tree.c (cp_tree_equal): Handle SSA_NAME.
7370 2005-03-18 Paolo Carlini <pcarlini@suse.de>
7373 * parser.c (cp_parser_diagnose_invalid_type_name):
7374 Check TYPE_BINFO (current_class_type) before attempting
7375 to emit inform messages.
7377 2005-03-17 Paolo Carlini <pcarlini@suse.de>
7380 * cp-tree.h (grok_op_properties): Change return type to void.
7381 * decl.c (grok_op_properties): Return early - don't check the
7382 arity - in case of a static member or an operator that cannot
7383 be non-member; tidy a bit.
7385 2005-03-17 Nathan Sidwell <nathan@codesourcery.com>
7388 * pt.c (contains_dependent_cast_p): Remove.
7389 (fold_non_dependent_expr): Don't use it.
7390 (value_dependent_expression_p): Use a switch statement.
7391 reference_exprs can be dependent.
7393 2005-03-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
7397 * name-lookup.c (pushtag): Skip template parameter scope when
7398 scope is ts_global. Don't push tag into template parameter
7400 * pt.c (instantiate_class_template): Reorder friend class
7401 template substitution to handle non-dependent friend class
7402 that hasn't been previously declared.
7404 2005-03-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
7406 Friend class name lookup 5/n
7408 * cp-tree.h (pushtag): Adjust declaration.
7409 * decl.c (lookup_and_check_tag): Call lookup_type_scope if
7411 (xref_tag): Adjust call to pushtag. Make hidden class visible.
7412 (start_enum): Adjust call to pushtag.
7413 * name-lookup.c (ambiguous_decl): Ignore hidden names.
7414 (qualify_lookup): Change return type to bool.
7415 (hidden_name_p): New function.
7416 (lookup_namespace_name, unqualified_namespace_lookup,
7417 lookup_name_real): Use it.
7418 (lookup_type_scope): Update comments.
7419 (maybe_process_template_type_declaration): Change parameter name
7420 from globalize to is_friend.
7421 (pushtag): Change globalize parameter of type int to tag_scope.
7422 Hide name if introduced by friend declaration.
7423 * name-lookup.h (hidden_name_p): Add declaration.
7424 * parser.c (cp_parser_lookup_name): Don't deal with hidden name
7426 * pt.c (push_template_decl_real): Make hidden class template
7428 (lookup_template_class, instantiate_class_template): Adjust call
7430 * semantics.c (begin_class_definition): Likewise.
7431 * rtti.c (init_rtti_processing, build_dynamic_cast_1,
7432 tinfo_base_init, emit_support_tinfos): Use ts_current instead of
7435 2005-03-13 Mark Mitchell <mark@codesourcery.com>
7438 * pt.c (determine_specialization): Reject non-specializations.
7440 2005-03-11 Per Bothner <per@bothner.com>
7442 * cp-tree.h (struct cp_declarator): New id_loc field.
7443 * cp/parser.c (cp_lexer_get_preprocessor_token): Set cp_token's
7444 location using c_lex_with_flags, instead of input_location.
7445 (cp_parser_direct_declarator): Set declarator's id_loc from
7448 2005-03-10 Jakub Jelinek <jakub@redhat.com>
7450 PR c++/18384, c++/18327
7451 * decl.c (reshape_init_array): Use UHWI type for max_index_cst
7452 and index. Convert max_index to size_type_node if it isn't
7453 host_integerp (, 1).
7455 2005-03-09 Mark Mitchell <mark@codesourcery.com>
7458 * pt.c (tsubst_decl): Apply array-to-pointer and
7459 function-to-pointer conversions to function arguments.
7460 (regenerate_decl_from_template): Likewise.
7462 2005-03-09 Paolo Carlini <pcarlini@suse.de>
7465 * decl.c (complete_array_type): In pedantic mode, return
7466 3 for an empty initializer list as the initializer for an
7467 array of unknown bound (8.5.1/4).
7468 (maybe_deduce_size_from_array_init): Fix final test to use
7471 2005-03-08 Nathan Sidwell <nathan@codesourcery.com>
7474 * pt.c (contains_dependent_cast_p): New.
7475 (fold_non_dependent_expr): Call it.
7477 2005-03-08 Mark Mitchell <mark@codesourcery.com>
7480 * cp-tree.h (target_type): Remove.
7481 * decl.c (layout_var_decl): Remove #if 0'd code.
7482 (cp_finish_decl): Remove dead code.
7483 * init.c (build_vec_init): When determining whether or not the
7484 element type has an asignment operator, look through all array
7486 * typeck.c (target_type): Remove.
7488 2005-03-07 Mark Mitchell <mark@codesourcery.com>
7490 * class.c (finish_struct_1): Do not warn about non-virtual
7491 destructors in Java classes.
7493 2005-03-05 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
7496 * init.c (build_offset_ref): Don't build non-dependent SCOPE_REF.
7497 * pt.c (build_non_dependent_expr): Don't build NON_DEPENDENT_EXPR
7499 * typeck.c (build_x_unary_op): Don't build non-dependent SCOPE_REF.
7500 Also set PTRMEM_OK_P for NON_DEPENDENT_EXPR.
7501 (build_unary_op): Handle building ADDR_EXPR of OFFSET_REF inside
7504 2005-03-02 Alexandre Oliva <aoliva@redhat.com>
7506 * name-lookup.c (push_overloaded_decl): Don't error if the new
7507 decl matches the old one.
7508 * decl.c (redeclaration_error_message): Likewise.
7510 2005-03-01 Per Bothner <per@bothner.com>
7512 * decl.c (finish_function): Use SET_EXPR_LOCATION instead of
7513 unavailable annotate_with_file_line, if USE_MAPPED_LOCATION.
7515 2005-03-01 Nathan Sidwell <nathan@codesourcery.com>
7518 * class.c (update_vtable_entry_for_fn): Don't crash on invalid
7521 * cp-tree.g (THUNK_TARGET): Expand comment.
7522 * method.c (use_thunk): Make sure we also use the target, if that
7525 2005-02-27 Jakub Jelinek <jakub@redhat.com>
7528 * decl.c (cxx_comdat_group): Put thunks for
7529 TARGET_USE_LOCAL_THUNK_ALIAS_P (function) functions into the same
7530 comdat group as the thunk target.
7532 2005-02-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
7534 * call.c, class.c, cp-tree.h, decl2.c, error.c, init.c, mangle.c,
7535 parser.c: Fix comment typo(s).
7537 2005-02-24 Jakub Jelinek <jakub@redhat.com>
7540 * decl.c (reshape_init): Don't warn about missing braces if STRING_CST
7541 initializes a char/wchar_t array.
7543 2005-02-23 Mark Mitchell <mark@codesourcery.com>
7546 * decl.c (grokvardecl): Set DECL_INTERFACE_KNOWN for declarations
7547 with internal linkage.
7549 2005-02-23 Alexandre Oliva <aoliva@redhat.com>
7551 * decl.c (grokvardecl): Don't exempt anonymous types from having
7552 linkage for variables that have linkage other than "C".
7554 2005-02-23 Kazu Hirata <kazu@cs.umass.edu>
7556 * cp-objcp-common.h, error.c: Update copyright.
7558 2005-02-22 Mark Mitchell <mark@codesourcery.com>
7561 * decl.c (start_decl_1): Don't clear TREE_READONLY.
7562 (cp_finish_decl): Likewise.
7563 (complete_vars): Call cp_apply_type_quals_to_decl.
7564 * typeck.c (cp_apply_type_quals): Avoid setting TREE_READONLY in
7565 cases where that's not valid.
7568 * init.c (integral_constant_value): Iterate if the value of a decl
7569 is itself a constant.
7572 * parser.c (cp_parser_class_head): Check for redefintions here.
7573 * semantics.c (begin_class_definition): Not here.
7576 * decl2.c (build_anon_union_vars): Add type parameter.
7577 (finish_anon_union): Pass it.
7580 * error.c (dump_expr): Do not print the body of a BIND_EXPR.
7581 Handle STATEMENT_LIST.
7584 * parser.c (cp_parser_direct_declarator): Always complain about
7585 non-constant array bounds when in a function scope.
7586 * semantics.c (finish_id_expression): Do not mark dependent names
7589 2005-02-21 Douglas Gregor <dgregor@cs.indiana.edu>
7593 * cp-tree.h (cp_apply_type_quals_to_decl): Declared.
7594 * decl.c (grokdeclarator): Pedwarn about qualifying a function
7596 Add qualifiers when declaring a typedef of a function type.
7597 Member function pointers pick up the qualifiers of the typedef
7598 used to declare them.
7599 Don't complain about creating cv-qualified function types.
7600 Complain about qualified function typedefs that are used to
7601 declare non-static member functions or free functions.
7602 Use cp_apply_type_quals_to_decl.
7603 (start_preparsed_function): Use cp_apply_type_quals_to_decl.
7604 (grokclassfn): Use cp_apply_type_quals_to_decl.
7605 * error.c (dump_type_suffix): Print qualifiers for function
7607 * pt.c (tsubst_decl): Use cp_apply_type_quals_to_decl.
7608 (tsubst): When substituting a function type into a member
7609 pointer type, pass along the qualifiers.
7610 (unify): Unify member pointers to member function pointers.
7611 * tree.c (cp_build_qualified_type_real): Function types may be
7612 qualified. This includes restrict qualifiers.
7613 * typeck.c (cp_apply_type_quals_to_decl): New function to replace
7614 use of c_apply_type_quals_to_decl. Drops qualifiers that are being
7615 added to function types.
7617 2005-02-20 Zack Weinberg <zack@codesourcery.com>
7620 * cp-objcp-common.h (LANG_HOOKS_TO_TARGET_CHARSET): Set to
7621 c_common_to_target_charset. Delete bogus comment.
7623 2005-02-18 Richard Henderson <rth@redhat.com>
7626 * except.c (do_get_exception_ptr): New.
7627 (expand_start_catch_block): Use it.
7629 2005-02-19 Jakub Jelinek <jakub@redhat.com>
7631 * decl.c (start_decl_1): Only check TYPE_NEEDS_CONSTRUCTING
7632 if type is not error_mark_node.
7634 2005-01-20 Giovanni Bajo <giovannibajo@gcc.gnu.org>
7637 * decl2.c (grokfield): Do not apply attributes to template parameters
7638 as they are ignored by tsubst anyway.
7640 2005-02-18 Jakub Jelinek <jakub@redhat.com>
7643 * decl.c (start_decl_1): Clear TREE_READONLY flag if
7644 its type has TYPE_NEEDS_CONSTRUCTING.
7645 (complete_vars): Likewise.
7647 2005-02-17 Alexandre Oliva <aoliva@redhat.com>
7650 * class.c (finish_struct): Initialize TYPE_SIZE_UNIT of a
7651 template along with TYPE_SIZE.
7654 * semantics.c (perform_deferred_access_checks): Use
7655 get_deferred_access_checks to get the top of the stack.
7657 2005-02-15 Alexandre Oliva <aoliva@redhat.com>
7660 * class.c (add_implicitly_declared_members, check_field_decl)
7661 (check_field_decls, check_bases): Remove arguments, tests and
7662 assignments of cant_have_default_ctor-related variables.
7664 2005-02-15 Alexandre Oliva <aoliva@redhat.com>
7666 * decl2.c (mark_used): Set the source location of the used decl to
7667 the current input location here...
7668 * method.c (synthesize_method): ... not here. Set input_location
7669 from the decl instead.
7671 2005-02-14 Nathan Sidwell <nathan@codesourcery.com>
7674 * parser.c (cp_parser_late_parsing_for_member): Use
7675 current_function_decl as scope to push to and from.
7678 * pt.c (check_explicit_specialization): Make sure namespace
7679 binding lookup found an overloaded function.
7680 (lookup_template_function): Just assert FNS is an overloaded
7684 * decl.c (grokdeclarator): Check for error mark node in ptrmem
7687 2005-02-14 Alexandre Oliva <aoliva@redhat.com>
7690 * decl.c (redeclaration_error_message): Report redefinition of
7691 pure virtual function.
7693 2005-02-14 Nathan Sidwell <nathan@codesourcery.com>
7696 * class.c (build_simple_base_path): Build the component_ref
7698 (update_vtable_entry_for_fn): Walk the covariant's binfo chain
7699 rather than using lookup_base.
7700 * search.c (dfs_walk_once): Add non-recursive assert check.
7701 * typeck.c (build_class_member_access_expr): It is possible for
7702 the member type to be both const and volatile.
7704 2005-02-12 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
7708 * pt.c (maybe_check_template_type): Remove.
7709 * cp-tree.h (maybe_check_template_type): Remove prototype.
7710 * name-lookup.c (maybe_process_template_type_declaration): Don't
7711 use maybe_check_template_type.
7713 2005-02-11 Richard Henderson <rth@redhat.com>
7716 * pt.c (get_mostly_instantiated_function_type): Save and restore
7717 flag_access_control instead of push/pop_access_scope.
7719 2005-02-10 Mark Mitchell <mark@codesourcery.com>
7722 * decl.c (reshape_init): Issue warnings about missing braces.
7724 2005-02-11 Kazu Hirata <kazu@cs.umass.edu>
7726 * cp-tree.def, except.c, ptree.c: Update copyright.
7728 2005-02-09 Mark Mitchell <mark@codesourcery.com>
7731 * call.c (build_op_delete_call): Check COMPLETE_TYPE_P before
7732 attempting name lookup.
7734 * parser.c (cp_parser_unqualified_id): Initialize type_decl.
7737 * call.c (initialize_reference): Robustify.
7740 * decl.c (grokdeclarator): Check for invalid use of destructor
7744 * parser.c (cp_parser_unqualified_id): Avoid creating destructor
7745 names with invalid types.
7748 * parser.c (cp_parser_direct_declarator): Allow type-dependent
7749 expressions as array bounds.
7752 * parser.c (cp_parser_attributes_list): Allow empty lists.
7754 2005-02-08 Mark Mitchell <mark@codesourcery.com>
7757 * class.c (add_method): Don't set TYPE_HAS_DESTRUCTOR.
7758 (check_bases): Give warnings about a base class with a
7759 non-virtual destructor, even if it is implicit.
7760 (finish_struct_bits): Don't copy TYPE_HAS_DESTRUCTOR.
7761 (maybe_warn_about_overly_private_class): Don't use
7762 TYPE_HAS_DESTRUCTOR.
7763 (finish_struct_methods): Don't set TYPE_HAS_DESTRUCTOR.
7764 (check_for_override): Give it external linkage.
7765 (add_implicitly_declared_members): Generate destructors lazily.
7766 (check_field_decls): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR, not
7767 TYPE_HAS_DESTRUCTOR.
7768 (check_bases_and_members): Call check_methods before
7770 (check_bases_and_members): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR, not
7771 TYPE_HAS_DESTRUCTOR.
7772 (finish_struct_1): Do not use TYPE_HAS_DESTRUCTOR.
7773 * cp-tree.def (PSEUDO_DTOR_EXPR): Document.
7774 * cp-tree.h (TYPE_HAS_DESTRUCTOR): Remove.
7775 (lang_type_class): Add lazy_destructor.
7776 (CLASSTYPE_LAZY_DESTRUCTOR): New macro.
7777 (CLASSTYPE_DESTRUCTORS): Robustify.
7778 (TYPE_HAS_DESTRUCTOR): Remove.
7779 (check_for_override): Declare.
7780 (build_vbase_delete): Remove.
7781 * cvt.c (convert_to_void): Issue errors about pseudo-destructor
7783 * decl.c (cxx_maybe_build_cleanup): Remove dead code.
7784 * except.c (dtor_nothrow): Lazily create destructors if necessary.
7785 (build_throw): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR.
7786 * init.c (build_delete): Lazily create destructors, if necessary.
7787 (build_vbase_delete): Remove.
7788 * method.c (locate_dtor): Simplify.
7789 (implicitly_declare_fn): Add support for destructors.
7790 * parser.c (cp_parser_lookup_name): Lazily create destructors, if
7792 * pt.c (check_explicit_specialization): Don't use
7793 TYPE_HAS_DESTRUCTOR.
7794 (instantiate_class_template): Likewise.
7795 * ptree.c (cxx_print_type): Don't print TYPE_HAS_DESTRUCTOR.
7796 * rtti.c (emit_support_tinfos): Robustify.
7797 * search.c (lookup_fnfields_1): Lazily create destructors.
7798 * typeck.c (build_class_member_access_expr): Remove
7799 PSEUDO_DTOR_EXPR handling.
7800 (lookup_destructor): Likewise.
7802 2005-02-08 Kazu Hirata <kazu@cs.umass.edu>
7804 * cxx-pretty-print.c, cxx-pretty-print.h, decl.h: Update
7807 2005-02-07 Mark Mitchell <mark@codesourcery.com>
7809 * parser.c (cp_lexer_start_debugging): Avoid arithmetic operations
7810 on boolean variables.
7811 (cp_lexer_stop_debugging): Likewise.
7813 2005-02-03 Giovanni Bajo <giovannibajo@gcc.gnu.org>
7816 * parser.c (cp_parser_pure_specifier): Emit a specific error
7817 message with an invalid pure specifier.
7818 * decl2.c (grok_function_init): Remove.
7819 (grokfield): An initializer for a method is a always a pure
7822 2005-02-02 Matt Austern <austern@apple.com>
7825 * cp-tree.h (builtin_valid_in_constant_expr_p): Declare.
7826 * parser.c (cp_parser_postfix_expression): Accept function call in
7827 constant expression if builtin_valid_in_constant_expr_p is true
7829 * pt.c (value_dependent_expression_p): Handle CALL_EXPRs properly.
7830 * semantics.c (finish_id_expression): Accept function call in constant
7831 expression if builtin_valid_in_constant_expr_p is true for that
7833 * tree.c (builtin_valid_in_constant_expr_p): New.
7835 2005-02-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
7838 * pt.c (check_instantiated_args): Improve error message.
7839 Fix logic when to print its second part.
7841 2005-02-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
7843 * cp-tree.h (complete_type_or_else): Remove macro.
7844 (complete_type_or_diagnostic): Rename to complete_type_or_else
7845 and remove last argument.
7846 * typeck.c (complete_type_or_diagnostic): Rename to
7847 complete_type_or_else and remove last argument.
7849 2005-02-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
7851 * cp-tree.h (commonparms): Remove prototype.
7852 (convert_arguments): Likewise.
7853 (PFN_FROM_PTRMEMFUNC): Remove.
7854 * typeck.c (commonparms): Make static.
7855 (convert_arguments): Add prototype. Make static.
7856 (PFN_FROM_PTRMEMFUNC): Replace by pfn_from_ptrmemfunc.
7858 2005-01-31 Mark Mitchell <mark@codesourcery.com>
7860 * parser.c (cp_parser_primary_expression): Don't complain about
7861 floating-point literals in integral constant expressions when
7864 2005-02-01 Alexandre Oliva <aoliva@redhat.com>
7866 * parser.c (cp_parser_template_id): Revert comment patch too.
7871 * parser.c (cp_parser_template_id): Revert 2004-12-09's patch.
7872 Issue an error when creating the template id.
7873 * pt.c (fn_type_unification): Return early if the explicit
7874 template arg list is an error_mark_node.
7876 2005-01-31 Mark Mitchell <mark@codesourcery.com>
7878 * decl.c (build_enumerator): Do not issue duplicate error messages
7879 about invalid enumeration constants.
7880 * parser.c (cp_parser_non_integral_constant_expression): Always
7881 set parser->non_integral_constant_expression_p.
7882 (cp_parser_primary_expression): Add cast_p parameter. Issue
7883 errors about invalid uses of floating-point literals in
7885 (cp_parser_postfix_expression): Add cast_p parameter.
7886 (cp_parser_open_square_expression): Pass it.
7887 (cp_parser_parenthesized_expression_list): Add cast_p parameter.
7888 (cp_parser_unary_expression): Likewise.
7889 (cp_parser_new_placement): Pass it.
7890 (cp_parser_direct_new_declarator): Likewise.
7891 (cp_parser_new_initializer): Likewise.
7892 (cp_parser_cast_expression): Add cast_p parameter.
7893 (cp_parser_binary_expression): Likewise.
7894 (cp_parser_question_colon_clause): Likewise.
7895 (cp_parser_assignment_expression): Likewise.
7896 (cp_parser_expression): Likewise.
7897 (cp_parser_constant_expression): If an integral constant
7898 expression is invalid, return error_mark_node.
7899 (cp_parser_expression_statement): Pass cast_p.
7900 (cp_parser_condition): Likewise.
7901 (cp_parser_iteration_statement): Likewise.
7902 (cp_parser_jump_statement): Likewise.
7903 (cp_parser_mem_initializer): Likewise.
7904 (cp_parser_template_argument): Likewise.
7905 (cp_parser_parameter_declaration): Likewise.
7906 (cp_parser_initializer): Likewise.
7907 (cp_parser_throw_expression): Likewise.
7908 (cp_parser_attribute_list): Likewise.
7909 (cp_parser_simple_cast_expression): Likewise.
7910 (cp_parser_functional_cast): Likewise.
7911 (cp_parser_late_parsing_default_args): Likewise.
7912 (cp_parser_sizeof_operand): Save/restore
7913 non_integral_constant_expression_p.
7915 2005-01-31 Mike Stump <mrs@apple.com>
7917 * parser.c (cp_lexer_new_main): Get the first token, first, before
7920 2005-01-31 Mark Mitchell <mark@codesourcery.com>
7922 * decl.c (start_decl): Add missing parentheses.
7924 2005-01-30 Mark Mitchell <mark@codesourcery.com>
7927 * cp-tree.h (DECL_USE_TEMPLATE): Expand documentation.
7928 * decl.c (duplicate_decls): Do not discard
7929 DECL_IMPLICIT_INSTANTIATION when merging declarations.
7930 (start_decl): Do not SET_DECL_TEMPLATE_SPECIALIZATION for
7931 variables that do not have DECL_USE_TEMPLATE.
7934 * decl.c (grokdeclarator): Refactor code so that qualified names
7935 are never allowed as the declarator in a typedef.
7938 * name-lookup.c (do_nonmember_using_decl): Avoid overloading
7939 builtin declarations.
7942 * call.c (convert_like_real): Inline call to
7943 dubious_conversion_warnings here.
7944 * cp-tree.h (dubious_conversion_warnings): Remove.
7945 * semantics.c (finish_unary_op_expr): Copy INTEGER_CSTs before
7946 setting TREE_NEGATED_INT.
7947 * typeck.c (dubious_conversion_warnings): Remove.
7950 * name-lookup.c (pushdecl_namespace_level): Avoid accessing free'd
7953 2005-01-28 Mark Mitchell <mark@codesourcery.com>
7956 * parser.c (cp_parser_diagnose_invalid_type_name): Commit to
7960 * pt.c (redeclare_class_template): Robustify.
7962 2005-01-27 Steven Bosscher <stevenb@suse.de>
7964 * decl.c (finish_case_label): Use SWITCH_STMT accessor macros
7965 instead of SWITCH_EXPR ones.
7966 * pt.c (tsubst_expr): Likewise.
7967 * semantics.c (begin_switch_stmt, finish_switch_cond,
7968 finish_switch_stmt): Likewise.
7970 2005-01-26 J"orn Rennecke <joern.rennecke@st.com>
7973 * parser.c (cp_parser_initializer_clause): Initialize *non_constant_p.
7975 2005-01-25 Andrew Pinski <pinskia@physics.uc.edu>
7977 * class.c (abort_fndecl_addr): New variable.
7978 (build_vtbl_initializer): If we have a pure virtual function
7979 share the abort function's address.
7980 Include gt-cp-class.h at the end.
7981 * config-lang.in (gtfiles): Add cp/class.c.
7983 2005-01-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
7985 * cxx-pretty-print.c (pp_cxx_statement): Add prototype. Make static.
7986 (pp_cxx_function_definition): Make static.
7987 * cxx-pretty-print.h (pp_cxx_statement): Remove prototype.
7988 (pp_cxx_function_definition): Likewise.
7990 2005-01-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
7992 * name-lookup.c (print_binding_level): Make static.
7993 (constructor_name_full): Make static inline.
7994 (current_decl_namespace): Make static.
7995 * name-lookup.h (constructor_name_full): Remove prototype.
7996 (print_binding_level): Likewise.
7997 (current_decl_namespace): Likewise.
7999 2005-01-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
8001 * decl.h (debug_bindings_indentation): Remove.
8003 2005-01-23 Kazu Hirata <kazu@cs.umass.edu>
8005 * typeck.c: Fix a comment typo.
8007 2005-01-21 Giovanni Bajo <giovannibajo@gcc.gnu.org>
8010 * pt.c (fold_decl_constant_value): Always call fold_non_dependent_expr
8012 (tsubst): Use fold_decl_constant_value in place of a bare call to
8013 integral_constant_value.
8015 2005-01-20 Kazu Hirata <kazu@cs.umass.edu>
8017 * typeck.c (more_qualified_p): Remove.
8018 * cp-tree.h: Remove the corresponding prototype.
8020 2005-01-19 Matt Austern <austern@apple.com>
8022 * typeck.c (comptypes): Handle return code from objc_comptypes
8025 2005-01-19 Kazu Hirata <kazu@cs.umass.edu>
8027 * cp-tree.h, name-lookup.h: Remove unused prototypes.
8029 2005-01-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
8032 * semantics.c (finish_id_expression): Disable access checking for
8033 already lookuped FIELD_DECL.
8035 2005-01-18 Kazu Hirata <kazu@cs.umass.edu>
8037 * decl.c (delete_block): Remove.
8038 * cp-tree.h: Remove the corresponding prototype.
8040 * decl.c (vtable_decl_p, vtype_decl_p, walk_globals_data,
8041 walk_vtables_r, walk_vtables, walk_globals_r, walk_globals):
8043 * cp-tree.h: Remove the corresponding prototypes.
8045 * tree.c (count_functions, bound_pmf_p, cp_is_overload_p,
8046 cp_update_decl_after_saving, name_p): Remove.
8047 * cp-tree.h: Remove the corresponding prototypes.
8049 2005-01-18 Andrew Pinski <pinskia@physics.uc.edu>
8052 * semantics.c (finish_asm_stmt): Strip nops off
8053 input memory operands.
8055 2005-01-18 Kazu Hirata <kazu@cs.umass.edu>
8057 * Make-lang.in, call.c, cvt.c, init.c, rtti.c, tree.c,
8058 typeck2.c: Update copyright.
8060 2005-01-16 Kazu Hirata <kazu@cs.umass.edu>
8062 * class.c (get_enclosing_class): Remove.
8063 * cp-tree.h: Remove the corresponding prototypes.
8065 * cvt.c (convert_lvalue): Remove.
8066 * cp-tree.h: Remove the corresponding prototype.
8068 * pt.c (tinst_for_decl): Remove.
8069 * cp-tree.h: Remove the corresponding prototypes.
8071 * tree.c (hash_chainon): Remove.
8072 * cp-tree.h: Remove the corresponding prototypes.
8074 2005-01-15 Jakub Jelinek <jakub@redhat.com>
8077 * typeck2.c (split_nonconstant_init_1) <case VECTOR_TYPE>: Put a copy
8078 of CONSTRUCTOR's node into MODIFY_EXPR, as the original is modified.
8080 2005-01-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8082 * Make-lang.in (cp-warn): Don't append $(WERROR).
8084 2005-01-10 Kazu Hirata <kazu@cs.umass.edu>
8086 * cp-tree.h: Fix a comment typo.
8088 2005-01-07 Nathan Sidwell <nathan@codesourcery.com>
8091 * pt.c (tsubst_qualified_id): Call convert_from_reference.
8093 2005-01-06 Mark Mitchell <mark@codesourcery.com>
8096 * class.c (add_implicitly_declared_members): Remove dead code.
8097 * decl.c (grokfndecl): Add sfk parameter. Use it do set
8099 (grokdeclarator): Adjust calls to grokfndecl.
8100 * method.c (implicitly_declare_fn): Improve documentation.
8101 * parser.c (cp_parser_direct_declarator): Do not consider a
8102 function to be a constructor if the containing class was
8103 originally anonymous.
8105 2005-01-06 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
8108 * search.c (lookup_field_1): Handle using declaration in
8109 class template partial specialization.
8111 2005-01-06 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
8114 * pt.c (push_access_scope): Handle friend defined in class.
8115 (pop_access_scope): Likewise.
8117 2005-01-06 Nathan Sidwell <nathan@codesourcery.com>
8120 * pt.c (tsubst_copy) <ARRAY_REF case>: Handle separately.
8121 (tsubst_copy_and_build) <ARRAY_REF case>: Remove obsolete
8122 array-new handling code. Use build_x_binary_op.
8124 2005-01-05 Nathan Sidwell <nathan@codesourcery.com>
8127 * cp-tree.h (start_decl): Take pointer to pushed scope, not bool.
8128 * name-lookup.h (push_scope): Return pushed scope, not flag.
8129 * name-lookup.c (push_scope): Return scope that should be popped,
8131 * decl.c (start_decl): Adjust.
8132 (grokfndecl): Adjust scope push and pop.
8133 * decl2.c (check_classfn): Likewise.
8134 * parser.c (cp_parser_condition, cp_parser_conversion_function_id,
8135 cp_parser_init_declarator, cp_parser_direct_declarator,
8136 cp_parser_class_specifier, cp_parser_class_head,
8137 cp_parser_lookup_name,
8138 cp_parser_constructor_declarator_p): Likewise.
8139 * pt.c (instantiate_class_template,
8140 resolve_typename_type): Likewise.
8142 2005-01-03 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
8145 * parser.c (cp_parser_unqualified_id): Do not issue error message
8146 for typedef-name as destructor declarator when performing an
8147 uncommitted tentative parse.
8149 2005-01-01 Steven Bosscher <stevenb@suse.de>
8152 * decl.c (finish_function): Fix comment. Annotate the compiler
8153 generated return with the current file name and line 0.