URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [cp/] [ChangeLog-2008] - Rev 778
Go to most recent revision | Compare with Previous | Blame | View Log
2008-12-31 Jakub Jelinek <jakub@redhat.com>PR c++/38647* parser.c (cp_parser_primary_expression) <case RID_FUNCTION_NAME>:Return error_mark_node if cp_parser_non_integral_constant_expressionreturns true.PR c++/38640* semantics.c (finish_decltype_type): Handle TEMPLATE_PARM_INDEX.2008-12-29 Jakub Jelinek <jakub@redhat.com>PR c++/38635* parser.c (cp_parser_condition): Use cp_parser_requireinstead of cp_lexer_consume_token to consume =.PR c++/38637* decl.c (start_enum): If enumtype is error_mark_node, exit early.2008-12-28 Jakub Jelinek <jakub@redhat.com>PR c++/38650* semantics.c (finish_omp_for): Don't add CLEANUP_POINT_EXPRaround volatile iteration var in condition and/or incrementexpression.2008-12-27 Jakub Jelinek <jakub@redhat.com>PR c++/38639* pt.c (tsubst_omp_for_iterator): RECUR on whole init_expr instead ofjust its type.2008-12-21 Jason Merrill <jason@redhat.com>PR c++/38597* name-lookup.c (arg_assoc_type): Handle DECLTYPE_TYPE.2008-12-20 Jakub Jelinek <jakub@redhat.com>Manuel López-Ibáñez <manu@gcc.gnu.org>PR c++/36921* c-common.c (warn_about_parentheses): Remove ARG_UNUSED fromarg_left. Don't warn about X<=Y<=Z if comparison's type isn'tintegral.2008-12-19 Jakub Jelinek <jakub@redhat.com>PR c++/38577* call.c (build_new_method_call): Handle call being COMPOUND_EXPRor NOP_EXPR.2008-12-18 Jakub Jelinek <jakub@redhat.com>PR c++/38427* init.c (perform_member_init): For value-initializedreferences call permerror instead of warning and don't emit anyINIT_EXPR.2008-12-18 Jason Merrill <jason@redhat.com>PR c++/38485* parser.c (cp_parser_token_starts_cast_expression): An EOFcan't start a cast-expression.2008-12-17 Jason Merrill <jason@redhat.com>* semantics.c (describable_type): New function.(finish_decltype_type): Use it for dependent exprs.* cp-tree.h: Declare it.* mangle.c (write_type) [DECLTYPE_TYPE]: Set skip_evaluation.(write_expression): If skip_evaluation, use type stubs.* tree.c (cp_tree_equal): Handle PARM_DECLs from differentdeclarations of a function.* init.c (build_new): Do auto deduction if type is describable.* decl.c (cp_finish_decl): Likewise.* parser.c (cp_parser_omp_for_loop): Likewise.2008-12-10 Jason Merrill <jason@redhat.com>PR c++/35319* mangle.c (write_builtin_type): Add mangling for decimal floatingpoint and fixed point types.(write_type): Pass FIXED_POINT_TYPE along.2008-12-09 Mark Mitchell <mark@codesourcery.com>PR c++/37971* class.c (resolve_address_of_overloaded_function): Checkaccessibility of member functions unless FLAGS indicatesotherwise.* call.c (standard_conversion): Adjust flags passed toinstantiate_type.(convert_default_arg): Do not perform access checks.* cp-tree.h (tsubst_flags_t): Add tf_no_access_control.2008-12-08 Steve Ellcey <sje@cup.hp.com>* decl2.c (mark_used): Remove assemble_external call.2008-12-08 Dodji Seketeli <dodji@redhat.com>PR debug/38390* name-lookup.c (kept_level_p): Don't forget the case of levelshaving using directives.2008-12-08 Richard Henderson <rth@redhat.com>PR 38240* class.c (finish_struct_bits): Use SET_TYPE_MODE.* decl.c (record_unknown_type): Likewise.(start_enum, finish_enum): Likewise.2008-12-05 Jakub Jelinek <jakub@redhat.com>PR c++/35336* error.c (dump_expr): Handle BIT_FIELD_REF.2008-12-05 Sebastian Pop <sebastian.pop@amd.com>PR bootstrap/38262* Make-lang.in (cc1plus-dummy, cc1plus): Add BACKENDLIBS,remove GMPLIBS.2008-12-04 Jason Merrill <jason@redhat.com>PR c++/37906* decl.c (grok_special_member_properties): Set TYPE_HAS_COMPLEX_DFLThere.* class.c (check_bases_and_members): Rather than assuming anyuser-declared default constructor is complex here.2008-12-04 Richard Guenther <rguenther@suse.de>PR c++/38334* typeck.c (get_member_function_from_ptrfunc): Mark the vtblpointer access with TREE_NO_WARNING.2008-12-03 Jason Merrill <jason@redhat.com>PR c++/38232* init.c (build_value_init): Do initial zero-initializationof a class with an implicitly-defined constructor usingbuild_zero_init rather than in build_value_init.(build_value_init_1): Fold into build_value_init.PR c++/38256* parser.c (cp_parser_conversion_type_id): Diagnose'operator auto' here.* decl.c (grokdeclarator): Not here.PR c++/38380* decl.c (grokdeclarator): Only set DECL_NONCONVERTING_Pon explicit constructors.* pt.c (tsubst_copy_and_build) [CONSTRUCTOR]: PropagateCONSTRUCTOR_IS_DIRECT_INIT.2008-12-02 Jason Merrill <jason@redhat.com>PR c++/35782, c++/37860* call.c (build_user_type_conversion_1): Rememberlist-initialization.(convert_like_real): Likewise.(build_over_call): Don't require the copy constructorfor copy-list-initialization.* cp-tree.h (TARGET_EXPR_LIST_INIT_P): New macro.PR c++/37234* decl.c (cp_finish_decl): Handle =default and =delete fortemplates, too.2008-12-01 Jakub Jelinek <jakub@redhat.com>PR c++/38257* parser.c (cp_parser_omp_for_loop): Handle auto.* pt.c (tsubst_omp_for_iterator): Likewise.2008-11-28 Jason Merrill <jason@redhat.com>PR c++/38233* init.c (perform_member_init): Fix value-initialization.(build_value_init_1): Add assert to catch cases that will breakin the gimplifier.(build_default_init): Remove.* cp-tree.h: Remove its prototype.* pt.c (tsubst_expr) [DECL_EXPR]: Use build_value_init forvalue-initialization.PR c++/38278* parser.c (cp_parser_class_name): Only callmaybe_note_name_used_in_class if we actually found a class name.2008-11-25 Jason Merrill <jason@redhat.com>PR c++/28743* decl2.c (check_classfn): Error rather than abort on parameterlist mismatch.2008-11-20 Jason Merrill <jason@redhat.com>PR c++/28513* parser.c (cp_parser_class_name): Call maybe_note_name_used_in_class.PR c++/37540* call.c (build_over_call): Take the address of the function evenin a template.(build_new_method_call): Remember the type of the called functionin a template.2008-11-19 Dodji Seketeli <dodji@redhat.com>PR c++/37142* pt.c (coerce_template_template_parm): Use the more robustuses_template_parms instead of dependent_type_p.2008-11-19 Dodji Seketeli <dodji@redhat.com>PR c++/35405* pt.c (lookup_template_class): Check pointers before dereferencingthem.* error.c (dump_template_decl): Likewise.2008-11-19 Jason Merrill <jason@redhat.com>PR c++/36410* decl2.c (grokfield): Pass ATTR_FLAG_TYPE_IN_PLACE for a typedefthat names a class for linkage purposes.PR c++/37563* parser.c (cp_parser_pseudo_destructor_name): A pseudo-destructorname is not a declaration.PR c++/37256* pt.c (instantiate_decl): Don't require a definition ofa template that is explicitly instantiated 'extern'.2008-11-18 Jason Merrill <jason@redhat.com>Jakub Jelinek <jakub@redhat.com>PR c++/37962* parser.c (cp_parser_type_id): Complain about auto.* decl.c (grokdeclarator): Complain about parameters andconversion functions declared with auto.* call.c (standard_conversion): Use CLASS_TYPE_P instead ofMAYBE_CLASS_TYPE_P.* cp-tree.h (TYPE_NON_AGGREGATE_CLASS): Likewise.2008-11-17 Jakub Jelinek <jakub@redhat.com>PR c++/36089* init.c (constant_value_1): Handle TREE_LIST init.2008-11-15 Jakub Jelinek <jakub@redhat.com>PR c++/37561* typeck.c (cp_build_unary_op): Don't call get_unwidened. Useargtype instead of result_type.2008-11-14 Jason Merrill <jason@redhat.com>PR c++/38030* semantics.c (finish_call_expr): Don't repeat arg-dep lookupfor a non-dependent call.PR c++/37740* call.c (build_aggr_conv): Increment i.2008-11-13 Jason Merrill <jason@redhat.com>PR c++/37932* typeck2.c (process_init_constructor_record): Update bitfieldhandling.(check_narrowing): Update bitfield handling, print source type.2008-11-12 Jakub Jelinek <jakub@redhat.com>PR c++/36478Revert:2007-05-07 Mike Stump <mrs@apple.com>* parser.c (check_empty_body): Add.(cp_parser_iteration_statement): Add call to check_empty_body.2008-11-12 Jason Merrill <jason@redhat.com>PR c++/38007* typeck.c (cp_build_modify_expr): Update bitfield handling.2008-11-12 Jakub Jelinek <jakub@redhat.com>PR c++/34269* parser.c (cp_parser_simple_declaration): Don't committo tentative parse if parse errors were seen.PR c++/35334* error.c (dump_expr): Handle COMPLEX_EXPR.2008-11-10 Jakub Jelinek <jakub@redhat.com>PR c++/38021* parser.c (cp_parser_enum_specifier): After parsing :,parse definitely. Don't return early if type specifieris erroneous.2008-11-06 David Edelsohn <edelsohn@gnu.org>PR target/26397* g++spec.c (LIBSTDCXX_STATIC): New.(lang_spec_driver): Use LIBSTDCXX_STATIC when notshared_libgcc.2008-11-05 Fabien Chene <fabien.chene@gmail.com>PR c++/32519* cp-tree.h: Fix DECL_NONSTATIC_MEMBER_P to handle member templatefunctions.2008-11-05 Richard Guenther <rguenther@suse.de>PR middle-end/37742* decl.c (start_preparsed_function): Use the correct type forbuilding the RESULT_DECL.2008-10-31 Jakub Jelinek <jakub@redhat.com>PR c++/37967* decl.c (grokdeclarator): Diagnose auto function decl withoutlate return type and late return type function decl where typeis not auto.PR c++/37965* decl.c (cp_finish_decl): Diagnose type_uses_auto type withno initializer.2008-10-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org>PR 11492* class.c (check_bitfield_decl): Rename min_precision totree_int_cst_min_precision.* decl.c (finish_enum): Likewise.2008-10-29 Manuel López-Ibáñez <manu@gcc.gnu.org>PR c++/26997* parser.c (cp_parser_token_starts_cast_expression): New.(cp_parser_cast_expression): Peek the next token to decide whetherthis could be a parenthesized constructor or is definitely anactual cast.2008-10-24 Manuel López-Ibáñez <manu@gcc.gnu.org>PR c/7543* typeck.c (build_x_binary_op): Update call towarn_about_parentheses.* parser.c (cp_parser_binary_expression): Add note about passingthe correct code for unary expressions.2008-10-24 Jakub Jelinek <jakub@redhat.com>* Make-lang.in (check-c++-subtargets): New alias forcheck-g++-subtargets.(lang_checks_parallelized): Add check-g++.(check_g++_parallelize): New variable.2008-10-21 Richard Guenther <rguenther@suse.de>* semantics.c (simplify_aggr_init_exprs_r): Remove.(expand_or_defer_fn): Do not walk the function body tosimplify aggr_init_exprs.2008-10-20 Manuel López-Ibáñez <manu@gcc.gnu.org>PR c++/37004* typeck.c (cp_common_type): New. The same astype_after_usual_arithmetic_conversions but without promotions.(type_after_usual_arithmetic_conversions): Do the promotions andcall cp_common_type.(common_type): Make it behave like the C version of thisfunction. Do not handle pointer types.(common_pointer_type): Move handling of pointer types fromcommon_type to here.(cp_build_binary_op): Use common_pointer_type instead ofcommon_type in call to pointer_diff.Use cp_common_type instead of common_type.* cp-tree.h (common_pointer_type): Declare.2008-10-14 Jakub Jelinek <jakub@redhat.com>PR c++/37819* cp-gimplify.c (cp_genericize_r): Only fold_convert COND_EXPRarguments if they don't already have COND_EXPR's type.2008-10-14 Paolo Carlini <paolo.carlini@oracle.com>PR c++/37650* pt.c (push_template_decl_real): Check that current_template_parmsis not null.(process_partial_specialization): Assert current_template_parms notnull.2008-10-13 Doug Evans <dje@google.com>* cp-tree.h (DECL_MAIN_P): Fix parentheses around expression.2008-10-10 Jakub Jelinek <jakub@redhat.com>PR c++/37146* cp-gimplify.c (cp_genericize_r): Fix up bitfield operands ofCOND_EXPR.2008-10-09 Jakub Jelinek <jakub@redhat.com>PR c++/37568* semantics.c (finalize_nrv_r): Clear DECL_INITIAL instead ofsetting it to error_mark_node.2008-10-07 Steve Ellcey <sje@cup.hp.com>* decl.c (start_cleanup_fn): Declare as inline.2008-10-06 Jason Merrill <jason@redhat.com>PR c++/37376, other mangling issues* mangle.c (write_type): Update TYPE_PACK_EXPANSION mangling.(write_member_name): Break out from...(write_expression): ...here. Handle dependent COMPONENT_REF.(write_template_arg): Wrap an argument pack in 'I'/'E'.(write_builtin_type): Update char16/32_t mangling.(write_nested_name, write_prefix): Don't forget template argsfor typename types.* operators.def: Add ARROW_EXPR, update COMPONENT_REF andEXPR_PACK_EXPANSION.2008-10-06 Aldy Hernandez <aldyh@redhat.com>* typeck.c (build_x_indirect_ref): Add location argument.(cp_build_binary_op): Pass location to warn_for_div_by_zero.(cp_build_unary_op): Add location argument.(cp_build_modify_expr): Same.* class.c (build_base_path): Pass location to build_indirect_ref.* semantics.c (handle_omp_for_class_iterator): Pass elocus tobuild_modify_expr.2008-10-05 Dodji Seketeli <dodji@redhat.com>PR c++/37410* cp-gimplify.c (cp_gimplify_expr): For each USING_STMTmake sure an IMPORTED_DECL node is added to the BLOCK_VARS listof the innermost containing BLOCK.2008-10-03 Paolo Carlini <paolo.carlini@oracle.com>PR c++/37719* error.c (dump_function_decl): Save the exceptions in case oferror about incompatible specifications in a specialization.2008-10-01 Andrew Pinski <andrew_pinski@playstation.sony.com>* tree.c (lvalue_p_1): COMPOUND_LITERAL_EXPR is also an lvalue.2008-09-30 H.J. Lu <hongjiu.lu@intel.com>PR c++/37683* parser.c (cp_parser_selection_statement): Fix uninitializedvariable.2008-09-30 Simon Martin <simartin@users.sourceforge.net>PR c++/37555PR c++/37556* decl.c (grokdeclarator): Set the type for typedefs to anested-name-specifier to error_mark_node.2008-09-30 Paolo Bonzini <bonzini@gnu.org>* parser.c (cp_parser_selection_statement): Implement here the-Wempty-body warning for `if' and `else' statements.* semantics.c (finish_if_stmt): Do not call empty_body_warning.2008-09-25 Paolo Carlini <paolo.carlini@oracle.com>PR c++/37649* name-lookup.c (maybe_process_template_type_declaration): Checkreturn value of push_template_decl_real for error_mark_node.2008-09-24 Aldy Hernandez <aldyh@redhat.com>* semantics.c (finish_fname): Pass location to fname_decl.2008-09-23 Jakub Jelinek <jakub@redhat.com>PR c++/37533* semantics.c (finish_omp_for): If processing_template_decl, just buildMODIFY_EXPR for init instead of calling cp_build_modify_expr.2008-09-23 Aldy Hernandez <aldyh@redhat.com>* typeck.c (build_array_ref): Pass location to cp_build_binary_op.(get_member_function_from_ptrfunc): Same.(build_x_binary_op): Same.(build_binary_op): Same.(cp_build_binary_op): New location argument.(pointer_diff): Pass location to cp_build_binary_op.(cp_truthvalue_conversion): Pass location to build_binary_op.(convert_ptrmem): Pass location to cp_build_binary_op.(cp_build_modify_expr): Same.(build_ptrmemfunc): Same.* init.c (expand_cleanup_for_base): Pass location toc_common_truthvalue_conversion.(build_new_1): Pass location to cp_build_binary_op.(build_vec_delete_1): Pass location to *build_binary_op,c_common_truthvalue_conversion.(build_vec_init): Same.(build_delete): Same.* decl.c (compute_array_index_type): Same.* call.c (build_new_op): Same.* rtti.c (build_dynamic_cast_1): Same.* cp-tree.h: Add argument to cp_build_binary_op.* semantics.c (handle_omp_for_class_iterator): Pass location to*build_binary_op, c_common_truthvalue_conversion.* decl2.c (get_guard_cond): Same.2008-09-17 Richard Guenther <rguenther@suse.de>PR c++/22374* rtti.c (build_dynamic_cast_1): Convert the COND_EXPRresult to the correct type.2008-09-17 H.J. Lu <hongjiu.lu@intel.com>PR c++/37450* name-lookup.c (pushdecl_maybe_friend): Don't return the oldparameter for duplicate.2008-09-17 Jason Merrill <jason@redhat.com>PR c++/37588* name-lookup.c (lookup_type_scope): Look through sk_function_parms.2008-09-17 Jakub Jelinek <jakub@redhat.com>PR c++/37552* typeck.c (build_array_ref): Use protected_set_expr_location insteadof SET_EXPR_LOCATION when ret might not be an expression.2008-09-17 Jan Hubicka <jh@suse.cz>PR c++/18071* cp/decl.c (start_method): Set DECL_NO_INLINE_WARNING_P.2008-09-16 Jakub Jelinek <jakub@redhat.com>PR c++/37531* semantics.c (finish_compound_literal): Return error_mark_node iftype is errorneous.PR c++/37532* lex.c (init_reswords): Don't populate ridpointers for D_CONLYreserved words.2008-09-15 Aldy Hernandez <aldyh@redhat.com>* decl.c (duplicate_decls): Call error_at.(grokfndecl): New location argument. Use location if available.(grokdeclarator): Pass declarator location to grokfndecl.* cp-tree.h (struct cp_declarator): Update comment for id_loc.* decl2.c (check_classfn): Use error_at.* parser.c (cp_parser_init_declarator): Set function_start_locusto brace location.(cp_parser_member_declaration): Set id_loc for function declarators.2008-09-09 Jan Hubicka <jh@suse.cz>PR middle-end/37500* pt.c (tsubst_decl): Do not copy DECL_STRUCT_FUNCTION pointer.2008-09-09 Jakub Jelinek <jakub@redhat.com>PR c++/37417* tree.c (array_type_nelts_top): Add size_one_node instead ofinteger_one_node.2008-09-09 Jason Merrill <jason@redhat.com>PR c++/37439* pt.c (tsubst_copy) [PARM_DECL]: Don't abort if the parm hasDECL_CONTEXT set.2008-09-09 Jakub Jelinek <jakub@redhat.com>PR c++/37389* decl.c (build_enumerator): Handle previous value's DECL_INITIALbeing error_operand_p. Don't clear value if it was error_mark_node.2008-09-09 Paolo Bonzini <bonzini@gnu.org>* cp-objcp-common.h (LANG_HOOKS_EXPAND_DECL): Remove.* cp-tree.h: Don't mention DECL_ANON_UNION_ELEMS.* semantics.c (anon_aggr_type_p): Remove.2008-09-06 Jason Merrill <jason@redhat.com>PR c++/37302* parser.c (cp_parser_parameter_declaration_list): Process thePARM_DECLs as we go and push them. Return a TREE_LIST.(cp_parser_parameter_declaration_clause): Return a TREE_LIST.(cp_parser_direct_declarator): Create a binding level andsuppress deprecated warnings in the parameter list.(make_call_declarator): PARMS is now a tree.* cp-tree.h (struct cp_declarator): Function parms are now a tree.* decl.h (enum deprecated_states, deprecated_state): Move here.* decl.c: From here.(type_is_deprecated): New fn.(grokparms): PARMLIST is a tree now. Warn about parms thatuse deprecated types.* mangle.c (write_expression): Handle PARM_DECL, CALL_EXPR and0-operand cast.* pt.c (tsubst) [DECLTYPE_TYPE]: Set skip_evaluation.(tsubst_copy) [PARM_DECL]: Handle a PARM_DECL used outside of afunction.* name-lookup.c (pushtag): Look through function parameter scopes.(pushdecl_maybe_friend): Don't set DECL_CONTEXT on a PARM_DECLwhen we're parsing a function declarator.2008-09-05 Douglas Gregor <doug.gregor@gmail.com>PR c++/37342* tree.c (cp_build_qualified_type_real): Deal with sharing ofTYPE_LANG_SPECIFIC in the canonical types of pointer-to-methodtypes.2008-09-04 Ian Lance Taylor <iant@google.com>* parser.c (check_no_duplicate_clause): Change code parameter toenum omp_clause_code.2008-09-03 Jakub Jelinek <jakub@redhat.com>PR c++/37348* decl.c (cp_finish_decl): Only setDECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P if decl is VAR_DECL.PR c++/37189* cp-tree.h (defer_mark_used_calls, deferred_mark_used_calls): Newextern decls.* decl2.c (mark_used): If defer_mark_used_calls, push decl intodeferred_mark_used_calls vector and exit early.* decl.c (defer_mark_used_calls, deferred_mark_used_calls): Newvariables.(finish_function): Set defer_mark_used_calls for the duration of thefunction. Call mark_used on any queued decls.2008-09-02 Jason Merrill <jason@redhat.com>PR c++/37208* call.c (build_over_call): Make =delete work with SFINAE.* class.c (resolve_address_of_overloaded_function): Likewise.* cp-tree.h (struct lang_decl_flags): Rename threadprivate_p tothreadprivate_or_deleted_p.(CP_DECL_THREADPRIVATE_P): Adjust.(DECL_DELETED_FN): Likewise.(SD_UNINITIALIZED, SD_INITIALIZED, SD_DEFAULTED): New macros.(SD_DELETED): New macro.* parser.c (cp_parser_init_declarator): Use them.* decl.c (start_decl): Use them.* decl2.c (mark_used): Give =deleted error even in sizeof.* typeck2.c (check_narrowing): Downgrade narrowing error topermerror.2008-09-02 Aldy Hernandez <aldyh@redhat.com>* typeck.c (build_array_ref): Use new location argument.* class.c (build_vtbl_ref_1): Pass location to build_array_ref.* call.c (build_new_op): Same.* decl2.c (grok_array_decl): Same.* cp-tree.h (build_array_ref): Add location argument to prototype.2008-09-01 Aldy Hernandez <aldyh@redhat.com>* typeck.c (build_x_indirect_ref): Add location argument.* class.c (build_base_path): Pass location to build_indirect_ref.* pt.c (tsubst_copy_and_build): Pass location tofinish_label_address_expr.* parser.c (cp_parser_unary_expression): Same.2008-08-31 Jason Merrill <jason@redhat.com>Implement late-specified return type using 'auto'.* cp-tree.h (struct cp_declarator): Add late_return_type field tofunction declarator.* parser.c (cp_parser_late_return_type_opt): New fn.(cp_parser_direct_declarator): Use it.(make_call_declarator): Put it in the declarator.* decl.c (grokdeclarator): Splice in late-specified return type.* pt.c (splice_late_return_type): New fn.2008-08-29 Michael Meissner <gnu@the-meissners.org>* decl.c (builtin_function_1): Take a bool argument to decidewhether to use pushdecl or pushdecl_top_level.(duplicate_decls): Copy function specific target and optimizationoptions on duplicate declarations.(cxx_builtin_function): Update builtin_function_1 call.(cxx_builtin_function_ext_scope): New function, guarantee that thedeclaration is done at global scope.* cp-objcp-common.h (LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE): Newmacro, define builtin function hook for delayed machine specificbuiltins.* cp-tree.h (cxx_builtin_function_ext_scope): Add declaration.2008-08-30 Jason Merrill <jason@redhat.com>PR c++/37288* pt.c (dependent_type_p): Don't abort on auto outside of a template.2008-08-29 Jason Merrill <jason@redhat.com>Implement C++0x 'auto' semantics.* decl.c (start_decl_1): Don't complain about auto being incomplete.(cp_finish_decl): Deduce auto.* init.c (build_new): Handle 'new auto'.* typeck2.c (cxx_incomplete_type_diagnostic): Give a differentmessage for auto than for normal template type parms.* pt.c (type_dependent_expression_p): Handle { }.(make_auto): New function.(listify_autos): New function.(do_auto_deduction): New function.(is_auto): New function.(type_uses_auto): New function.* cp-tree.h: Declare them.* parser.c (cp_parser_decl_specifier_seq): In C++0x mode, don'ttreat auto as a declspec.(cp_parser_simple_type_specifier): It's a type-specifier.2008-08-29 Mark Mitchell <mark@codesourcery.com>* mangle.c (write_type): Add target-specific manglings fornon-fundamental types to the substitution table.gcc/testsuite/2008-08-29 Jakub Jelinek <jakub@redhat.com>PR fortran/29635PR fortran/23057* name-lookup.c (do_using_directive, cp_emit_debug_info_for_using):Adjust debug_hooks->imported_module_or_decl callers.2008-08-29 Jan Hubicka <jh@suse.cz>* cp-gimplify.c (cp_gimplify_expr): Add PRED_CONTINUE heuristic.2008-08-28 Paolo Carlini <paolo.carlini@oracle.com>PR c++/37260* decl.c (reshape_init_r): Check init for error_mark_node.2008-08-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>PR c++/17880* semantics.c (maybe_convert_cond): Call verify_sequence_points.(finish_return_stmt): Likewise.(finish_switch_condition): Likewise.2008-08-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>* cp-tree.h: Fix #error directive.2008-08-26 Douglas Gregor <doug.gregor@gmail.com>* typeck.c (type_after_usual_arithmetic_conversions): Don't do theusual arithmetic conversions on scoped enumeration types.(common_type): Ditto.(default_conversion): Don't perform integral promotions on scopedenumeration types.(build_array_ref): Scoped enumeration types can't be used assubscripts.* decl.c (start_enum): If building a C++0x scoped enumeration,enter its scope. If provided with an underlying type, check thatunderlying type and set up the enumeration type accordingly.(finish_enum): Only compute an underlying type if the underlyingtype isn't already fixed, and only convert the enumerator valuesnow if we've just computed the underlying type. Finish the scopeof C++0x scoped enumerations.(build_enumerator): For enumerations with a fixed underlying type,check the enumerator values when the enumerator is defined.(lookup_enumerator): New.* call.c (standard_conversion): Don't allow assignment fromintegers to scoped enumeration types, even with -fpermissive.Don't convert from scoped enumerations to bool or any arithmetictypes.(build_conditional_expr): Don't per the usual arithmeticconversions for scoped enumeration types.(convert_like_real): Check complain to see if we shouldproduce warnings.* error.c (class_key_or_enum_as_string): Print scoped enums.* cp-tree.h (MAYBE_CLASS_TYPE_P): Check CLASS_TYPE_P, notTYPE_LANG_FLAG_5.(INTEGRAL_OR_UNSCOPED_ENUMERATION_TYPE_P): New.(SCOPED_ENUM_P): New.(UNSCOPED_ENUM_P): New.(SET_SCOPED_ENUM_P): New.(ENUM_UNDERLYING_TYPE): New.* pt.c (lookup_template_class): Update the instantiation of enumtypes to deal with C++0x scoped enumerations and underlyingtypes.* name-lookup.c (begin_scope): Deal with scoped enumerationscopes.(lookup_qualified_name): Deal with lookup into enumeration types.* name-lookup.h (enum scope_kind): Add sk_scoped_enum.* parser.c (cp_parser_class_or_namespace_name): Rename to...(cp_parser_qualifying_entity): ... this. Also, in C++0x mode,parse a type-name that can be an enumeration type.(cp_parser_nested_name_specifier_opt): Update with C++0x grammar.(cp_parser_elaborated_type_specifier): Parse theoptional `struct' or `class' following enum (in C++0x).(cp_parser_enum_specifier): Parse C++0x scoped enumerations andenum-base clauses.2008-08-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>* typeck.c: Update all calls to pedwarn.* decl.c: Likewise.* call.c: Likewise.* error.c: Likewise.* pt.c: Likewise.* name-lookup.c: Likewise.* parser.c: Likewise.2008-08-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>PR c++/35158* parser.c (cp_parser_omp_for_loop): Handle parenthesizedinitializers.2008-08-20 Manuel Lopez-Ibanez <manu@gcc.gnu.org>* parser.c: Update all calls to inform.* typeck.c: Likewise.* init.c: Likewise.* class.c: Likewise.* call.c: Likewise.* method.c: Likewise.* friend.c: Likewise.* typeck2.c: Likewise.* pt.c: Likewise.* name-lookup.c: Likewise.* lex.c: Likewise.2008-08-19 Jakub Jelinek <jakub@redhat.com>PR debug/37156* error.c (cp_print_error_function): Deal with recursive BLOCK trees.2008-08-18 Tomas Bily <tbily@suse.cz>* tree.c (cp_tree_equal): Use CONVERT_EXPR_CODE_P.2008-08-18 Manuel Lopez-Ibanez <manu@gcc.gnu.org>* typeck.c: Update all callers of permerror.* init.c: Likewise.* class.c: Likewise.* decl.c: Likewise.* call.c: Likewise.* except.c: Likewise.* cvt.c: Likewise.* typeck2.c: Likewise.* pt.c: Likewise.* semantics.c: Likewise.* name-lookup.c: Likewise.* lex.c: Likewise.* decl2.c: Likewise.* parser.c: Likewise.2008-08-14 Paolo Carlini <paolo.carlini@oracle.com>PR c++/34485* pt.c (check_template_shadow): Change to return a bool.* name-lookup.c (push_class_level_binding): Early return ifcheck_template_shadow returns false.* cp-tree.h (check_template_shadow): Adjust declaration.2008-08-14 Paolo Carlini <paolo.carlini@oracle.com>PR c++/34600* decl.c (grokdeclarator): In case of extern and initializer, returnerror_mark_node after the error.2008-08-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org>PR 30551* decl.c (grokfndecl): Call check_main_parameters_type only if-Wmain.2008-08-12 Paolo Carlini <paolo.carlini@oracle.com>PR c++/37087* parser.c (cp_parser_class_head): Early return error_mark_node incase of global qualification of class name or qualified name thatdoes not name a class.2008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org>PR c++/12242* cvt.c (ocp_convert): Warn for out-of-range conversions to enum.2008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org>PR 36901* cp-tree.h (struct diagnostic_context, struct diagnostic_info):Delete forward declarations. Check that toplev.h has not beenincluded before this file. Include toplev.h and diagnostic.h.* error.c (cp_cpp_error): Use DK_PEDWARN.(cxx_incomplete_type_diagnostic): Update declaration.(cxx_incomplete_type_error): Use DK_ERROR.* typeck2.c (cxx_incomplete_type_diagnostic): Take a diagnostic_tas argument. Use emit_diagnostic.(cxx_incomplete_type_error): Use DK_ERROR.(add_exception_specifier): Use diagnostic_t instead of customcodes.* typeck.c (complete_type_or_else): Update call tocxx_incomplete_type_diagnostic.* init.c (build_delete): Likewise.* call.c (diagnostic_fn_t): Remove unused typedef.(build_temp): Pass a pointer to diagnostic_t.(convert_like_real): Use emit_diagnostic.(joust): Check return value of warning before giving informativenote.* friend.c (do_friend): Check return value of warningbefore giving informative note.* parser.c (cp_parser_template_id): Likewise.2008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org>PR 7651* class.c (check_bases_and_members): Warn with -Wuninitializedinstead of -Wextra.2008-08-08 Volker Reichelt <v.reichelt@netcologne.de>PR c++/35985* decl.c (xref_basetypes): Check base for MAYBE_CLASS_TYPE_P,and make sure it is not a union.2008-08-07 H.J. Lu <hongjiu.lu@intel.com>* semantics.c (finish_decltype_type): Initialize type.2008-08-07 Douglas Gregor <doug.gregor@gmail.com>* semantics.c (finish_decltype_type): Handle calls to functionpointers and references to functions properly.2008-08-06 Douglas Gregor <doug.gregor@gmail.com>PR c++/36460* parser.c (cp_parser_template_argument): Don't assume that '>>'following a type-id is an error when in C++0x mode.2008-08-06 Manuel Lopez-Ibanez <manu@gcc.gnu.org>PR 26785* decl.c (grokdeclarator): Use explicit location with permerror_at.2008-08-06 Manuel Lopez-Ibanez <manu@gcc.gnu.org>PR 8715* typeck.c (cp_build_binary_op): Move code to c-common.c.2008-08-05 Jason Merrill <jason@redhat.com>PR c++/37016* decl.c (build_ptrmemfunc_type): Don't require structuralcomparison of PMF types.* tree.c (cp_build_qualified_type_real): Don't cleara valid TYPE_PTRMEMFUNC_TYPE.* typeck.c (cp_build_unary_op): Still do build_ptrmemfunc intemplates.2008-08-04 Jason Merrill <jason@redhat.com>PR c++/36963* typeck2.c (check_narrowing): Allow narrowing conversionfrom an explicit floating-point constant.PR c++/37006* pt.c (tsubst_decl): Leave DECL_INITIAL set on deletedinstantiations.2008-08-04 Simon Baldwin <simonb@google.com>PR c++/36999* parser.c (cp_parser_elaborated_type_specifier): Warn only whenthe declaration's id is followed by a semicolon.2008-07-31 Jakub Jelinek <jakub@redhat.com>PR c++/36405* rtti.c (get_tinfo_decl_dynamic, get_typeid): Callcomplete_type_or_else even for UNKNOWN_TYPE to get diagnostics.2008-07-31 Jason Merrill <jason@redhat.com>PR c++/36633* init.c (build_new_1): Don't convert pointer to the data typeuntil we're actually going to treat it as that type.PR c++/11309* tree.c (build_aggr_init_expr): Split out...(build_cplus_new): ...from here.(stabilize_init): Don't mess with AGGR_INIT_EXPR either.* init.c (build_new_1): new T() means value-initialization,not default-initialization.(build_vec_init): Likewise.(build_value_init_1): Use build_aggr_init_expr.2008-07-30 Dodji Seketeli <dseketel@redhat.com>PR c++/36767* decl2.c (fix_temporary_vars_context_r): New function.(one_static_initialization_or_destruction): Make sure temporaryvariables part of the initialiser have their DECL_CONTEXT()properly set.2008-07-30 Manuel Lopez-Ibanez <manu@gcc.gnu.org>PR 34389* typeck.c (build_binary_op): Encapsulate code intoshorten_binary_op.2008-07-29 Jakub Jelinek <jakub@redhat.com>PR c++/36852* tree.c (cplus_array_hash, build_cplus_array_type_1): Hash onTYPE_UID instead of pointers.2008-07-29 Jan Hubicka <jh@suse.cz>* optimize.c (maybe_clone_body): Remove DECL_INLINE.* decl.c (duplicate_decls): Likewise.(grokfndecl): Likewise.(start_method): Likewise.* method.c (make_thunk, make_alias_for, implicitly_declare_fn):Likewise.* pt.c (register_specialization, regenerate_decl_from_template):Likewise.* decl2.c (grokfield): Likewise.2008-07-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org>PR 34985* decl.c (duplicate_decls): Merge USED flags.2008-07-27 Jason Merrill <jason@redhat.com>PR c++/36943* decl.c (reshape_init_r): Allow C++0x initializer lists.2008-07-28 Richard Guenther <rguenther@suse.de>Merge from gimple-tuples-branch.2008-07-22 Aldy Hernandez <aldyh@redhat.com>* cp-gimplify.c (gimplify_if_stmt): Set location on newly createdCOND_EXPR.2008-07-18 Jakub Jelinek <jakub@redhat.com>* decl.c (finish_function): Call gimple_body after cp_genericize.2008-07-18 Aldy Hernandez <aldyh@redhat.com>* optimize.c: Include gimple.h instead of tree-gimple.h.* Make-lang.in (cp-gimplify.o): Depend on tree-iterator.h.* cp-gimplify.c: Rename tree-gimple.h to gimple.h. Includetree-iterator.h.2008-07-16 Jakub Jelinek <jakub@redhat.com>* optimize.c (maybe_clone_body): Clear DECL_SAVED_TREE for the clone.2008-07-14 Jakub Jelinek <jakub@redhat.com>* cp-gimplify.c (cp_gimplify_expr): Update comment.2008-07-14 Aldy Hernandez <aldyh@redhat.com>* cp-tree.h (union lang_tree_node): Rename GENERIC_NEXT toTREE_CHAIN.* cp-gimplify.c (cxx_omp_clause_apply_fn): RenameGIMPLE_MODIFY_STMT to MODIFY_EXPR.(cxx_omp_clause_copy_ctor): Same.(cxx_omp_clause_assign_op): Same.2008-05-28 Jakub Jelinek <jakub@redhat.com>* cp-gimplify.c (cp_gimplify_omp_for): Add pre_p argument. Tuplify.(cp_gimplify_expr): Adjust caller.2008-05-11 Doug Kwan <dougkwan@google.com>* init.c (build_vec_delete): Add type conversion for argument0 of POINTER_PLUS_EXPR.2008-04-29 Doug Kwan <dougkwan@google.com>* decl2 (File): Include "gimple.h"(cp_write_global_declarations): Use gimple_body instead ofDECL_SAVED_TREE.* Make-lang.in (cp/decl2.o): Add $(GIMPLE_H)2008-04-10 Diego Novillo <dnovillo@google.com>http://gcc.gnu.org/ml/gcc-patches/2008-04/msg00913.html* optimize.c (maybe_clone_body): Re-enable call toclone_body.* cp-gimplify.c (cp_gimplify_omp_for): Mark disabledcode with call to gimple_unreachable.(cp_genericize): Fix handling of clone bodies.2008-04-04 Diego Novillo <dnovillo@google.com>http://gcc.gnu.org/ml/gcc-patches/2008-04/msg00413.html* optimize.c (maybe_clone_body): Re-enable.2008-02-19 Diego Novillo <dnovillo@google.com>Oleg Ryjkov <olegr@google.com>http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00804.html* cp-gimplify.c (gimplify_for_stmt): Change gimple_seqargument to gimple_seq *. Update all users.(gimplify_must_not_throw_expr): Likewise.2008-02-04 Oleg Ryjkov <olegr@google.com>* except.c: Include gimple.h(cp_protect_cleanup_actions): Convert to tuples.* Make-lang.in (cp/except.o): Add dependency on gimple.h2007-11-10 Aldy Hernandez <aldyh@redhat.com>* cp-gimplify.c (gimplify_cp_loop): Call tree_annotate_all_with_locusinstead of annotating each block manually.2007-10-30 Aldy Hernandez <aldyh@redhat.com>* cp-gimplify.c (gimplify_cp_loop): Tuplify.(gimplify_for_stmt): Same.(gimplify_switch_stmt): Same.(cp_gimplify_expr): [FOR_STMT]: Do not call gimplify_for_stmt. ReturnGS_OK.[WHILE_STMT]: Return GS_OK.[SWITCH_STMT]: Same.[CONTINUE_STMT]: Same.[BREAK_STMT]: Same.(cp_genericize): Set gimple_body() of cloned functions when needed.2007-10-29 Aldy Hernandez <aldy@quesejoda.com>* cp-gimplify.c: Move build_gimple_eh_filter_tree here.(cp_gimplify_init_expr): Convert to tuples.(gimplify_must_not_throw_expr): Make function return agimplify_status and convert to tuples.2007-10-18 Aldy Hernandez <aldy@quesejoda.com>* cp-gimplify.c (genericize_try_block): Enable and do not callgimplify_stmt.(genericize_catch_block): Same.(genericize_eh_spec_block): Same.Rename gimple_build_eh_filter_tree to build_gimple_eh_filter_tree.(cp_gimplify_expr): Enable TRY_BLOCK, HANDLER, and EH_SPEC_BLOCK.2007-10-16 Aldy Hernandez <aldy@quesejoda.com>* optimize.c (maybe_clone_body): Comment out call to clone_body.* decl.c (finish_function): Use gimple_body instead ofDECL_SAVED_TREE.* cp-tree.h (cp_gimplify_expr): Last 2 arguments are sequences.* cp-gimplify.c (genericize_try_block): Comment out.(genericize_catch_block): Same.(genericize_eh_spec_block): Same.(gimplify_cp_loop): Comment out calls to gimplify_stmt.(gimplify_for_stmt): Comment out.(gimplify_switch_stmt): Comment out call to gimplify_stmt.(cp_gimplify_omp_for): Same.(gimplify_must_not_throw_expr): Argument pre_p is a sequence.Comment out call to gimplify_stmt and append_to_statement_list.Rename gimple_build_eh_filter_tree to build_gimple_eh_filter_tree.(cp_gimplify_init_expr): Arguments pre_p and post_p are sequences.(cp_gimplify_expr): Same.Comment out calls to genericize_*_block. Comment out call togimplify_for_stmt.2008-07-27 H.J. Lu <hongjiu.lu@intel.com>PR c++/36944* class.c (type_has_user_provided_default_constructor): Handledefault parameters.2008-07-27 Paolo Carlini <paolo.carlini@oracle.com>* decl.c (push_library_fn): Add a parameter for the exceptions thatthe function may throw.(push_void_library_fn, push_throw_library_fn, expand_static_init):Adjust.(build_library_fn): Change to static.* cp-tree.h: Adjust declarations.* except.c (declare_nothrow_library_fn): New.(do_get_exception_ptr, do_begin_catch, do_free_exception,do_allocate_exception): Use the latter, adjust the declarations(ie, add empty exception-specification), consistently with theactual implementation in libsupc++.2008-07-25 Jan Hubicka <jh@suse.cz>* typeck.c (inline_conversion): Remove.(cp_build_function_call): Do not use inline_conversion.* decl.c (duplicate_decls): Do not insist on inline being declaredearly.(start_cleanup_fn): Do not assume that INLINE flags prevent functionfrom being output. We now remove static functions always.(finish_function): Do return warning on all static functions.* call.c (build_over_call): Do not use inline_conversion.* cp-tree.h (possibly_inlined_p): Declare.(inline_conversion): Remove.* pt.c (instantiate_decl): Use possibly_inlined_p predicate.* decl2.c (cp_write_global_declarations): Likewise.(mark_used): Likewise.(possibly_inlined_p): New functions.2008-07-25 Jason Merrill <jason@redhat.com>* class.c (type_has_user_provided_default_constructor): Handletemplates.2008-07-23 Jan Hubicka <jh@suse.cz>* decl.c (duplicate_decls): Update comment and unit-at-a-time.(grogfndecl): Drop flag_inline_trees code.* pt.c (instantiate_decl): Drop flag_iline_trees code.* lex.c (cxx_init): Do not set unit-at-a-time.2008-07-23 Jason Merrill <jason@redhat.com>* mangle.c (write_unqualified_name): Avoid infinite recursion whentrying to mangle a decl with no name.Implement defaulted/deleted functions as per N2346* cp-tree.h (struct lang_decl_flags): Add defaulted_p bitfield.(DECL_DELETED_FN): New macro.(DECL_DEFAULTED_FN): New macro.* class.c (user_provided_p): New fn.(defaultable_fn_p): New fn.(type_has_user_provided_constructor): New fn.(type_has_user_provided_default_constructor): New fn.(check_methods): A defaulted fn is still trivial.(check_bases_and_members): Likewise.* decl.c (grok_special_member_properties): Likewise.(duplicate_decls): Complain about redeclaring a function as deleted.(start_decl): initialized==2 means deleted.(cp_finish_decl): Handle deleted/defaulted semantics.* decl2.c (grokfield): Likewise.(mark_used): Check DECL_DEFAULTED_FN instead of DECL_ARTIFICIAL.Complain about using a deleted fn.* init.c (build_value_init_1): Use type_has_user_provided_constructor.(perform_member_init): Check for a user-provided default constructoreven if TYPE_NEEDS_CONSTRUCTING.(build_new_1): Likewise.* call.c (build_over_call): Don't call mark_used twice.* method.c (implicitly_declare_fn): Set DECL_DEFAULTED_FN.* search.c (check_final_overrider): Check for deleted mismatch.* parser.c (cp_parser_init_declarator): Tell start_decl about =delete.(cp_parser_pure_specifier): Handle =default and =delete.* error.c (maybe_warn_cpp0x): Suggest -std=gnu++0x as well.2008-07-23 Manuel Lopez-Ibanez <manu@gcc.gnu.org>PR 35058* typeck.c: All calls to pedwarn changed.* decl.c: All calls to pedwarn changed.* call.c: All calls to pedwarn changed.* error.c: All calls to pedwarn changed.* typeck2.c: All calls to pedwarn changed.* pt.c: All calls to pedwarn changed.* name-lookup.c: All calls to pedwarn changed.* parser.c: All calls to pedwarn changed.2008-07-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>* call.c: Fix comment typos.* class.c: Likewise.* cp-tree.h: Likewise.* cxx-pretty-print.c: Likewise.* decl.c: Likewise.* init.c: Likewise.* name-lookup.c: Likewise.* operators.def: Likewise.* parser.c: Likewise.* pt.c: Likewise.* tree.c: Likewise.* typeck.c: Likewise.2008-07-21 Paolo Carlini <paolo.carlini@oracle.com>PR c++/36871PR c++/36872* semantics.c (classtype_has_nothrow_assign_or_copy_p): Only checkcopy constructors and copy assignment operators proper.2008-07-21 Rafael Ávila de Espíndola <espindola@google.com>* parser.c (cp_token): Remove in_system_header.(eof_token): Remove in_system_header.(cp_lexer_get_preprocessor_token): Don't set in_system_header.(cp_lexer_set_source_position_from_token): Don't set in_system_header.(cp_parser_member_declaration): Use in_system_header_at.* pt.c (lookup_template_class): Don't set DECL_IN_SYSTEM_HEADER.(pop_tinst_level): Don't set in_system_header.(instantiate_class_template): Don't set in_system_header.(instantiate_decl): Don't set in_system_header.(instantiate_pending_templates): Don't set in_system_header.2008-07-21 Paolo Carlini <paolo.carlini@oracle.com>PR c++/36870* semantics.c (classtype_has_nothrow_assign_or_copy_p): UseTYPE_NOTHROW_P, not TREE_NOTHROW.(trait_expr_value): Likewise.2008-07-18 Dodji Seketeli <dseketel@redhat.com>PR c++/36407* call.c (convert_like_real): Don't take the error code pathwhen a rvalue or base conversion has the bad_p field set.2008-07-18 Kris Van Hees <kris.van.hees@oracle.com>* rtti.c (emit_support_tinfos): Add char16_type_node andchar32_type_node.* typeck2.c (digest_init): Support char16_t and char32_t.2008-07-18 Kavih R. Ghazi <ghazi@caip.rutgers.edu>* cvt.c (convert_to_void): Avoid C++ keywords.* decl.c (walk_namespaces_r, wrapup_globals_for_namespace):Likewise.* friend.c (is_friend): Likewise.* init.c (perform_member_init): Likewise.* mangle.c (write_template_prefix, write_template_template_param):Likewise.* name-lookup.c (do_namespace_alias, do_using_directive,parse_using_directive, ambiguous_decl, arg_assoc): Likewise.* parser.c (cp_parser_template_id, cp_parser_namespace_definition,cp_parser_objc_typename, cp_parser_objc_method_keyword_params):Likewise.* pt.c (is_specialization_of_friend, lookup_template_class,push_tinst_level, instantiate_class_template,tsubst_copy_and_build): Likewise.* tree.c (add_stmt_to_compound): Likewise.* typeck.c (finish_class_member_access_expr): Likewise.2008-07-17 Julian Brown <julian@codesourcery.com>Mark Mitchell <mark@codesourcery.com>* decl2.c (determine_visibility): Allow target to overridevisibility of class data.2008-07-17 Paolo Carlini <paolo.carlini@oracle.com>PR c++/36855* semantics.c (trait_expr_value): Update __has_trivial_destructorsemantics to the current WP (N2691).2008-07-16 Dodji Seketeli <dseketel@redhat.com>PR c++/13699* name-lookup.c (lookup_extern_c_fun_binding_in_all_ns): New function.(pushdecl_maybe_friend): Check if a redeclaration of extern C functioncomplies with exception specification constraints.2008-07-14 Jason Merrill <jason@redhat.com>* lex.c (init_reswords): Always set D_OBJC.2008-07-11 Tom Tromey <tromey@redhat.com>Ian Lance Taylor <iant@google.com>* lex.c (struct resword, reswords): Don't define.(D_EXT, D_ASM, D_OBJC, D_CXX0X): Don't define.(init_reswords): Clarify mask code. Use c_common_reswords ratherthan reswords.2008-07-11 Dodji Seketeli <dseketel@redhat.com>PR c++/13101* decl.c (grokdeclarator): Warn about initializing variablesof storage class 'extern' only after the type of the declaratorhas been properly computed.2008-07-11 Dodji Seketeli <dseketel@redhat.com>PR c++/31754* cp-tree.h (struct cp_decl_specifier_seq): Add a location field. Itcarries the location of the primary type.* parser.c (cp_parser_check_type_definition): Update documentation.(cp_parser_check_for_definition_in_return_type,cp_parser_check_for_invalid_template_id,cp_parser_set_decl_spec_type,cp_parser_check_for_definition_in_return_type,cp_parser_diagnose_invalid_type_name,cp_parser_new_expression, cp_parser_explicit_instantiation,cp_parser_type_specifier, cp_parser_simple_type_specifier,cp_parser_omp_for_loop, cp_parser_pragma): Use location in errormessages.2008-07-11 Dodji Seketeli <dseketel@redhat.com>PR c++/31754* pt.c, semantic.c:* semantic.c (qualified_name_lookup_error, finish_id_expression):Add a location_t parameter so thaterror message can have a more accurate location.* cp-tree.h: Updated prototype* pt.c (tsubst_qualified_id): Use location in error messages.* parser.c (cp_parser_postfix_expression,cp_parser_objc_statement, cp_parser_trait_expr,cp_parser_token_is_class_key,cp_parser_uncommitted_to_tentative_parse_p,cp_parser_check_for_invalid_template_id, cp_parser_is_string_literal,cp_parser_error, cp_parser_name_lookup_error,cp_parser_simulate_error, cp_parser_check_decl_spec,cp_parser_check_decl_spec, cp_parser_non_integral_constant_expression,cp_parser_diagnose_invalid_type_name,cp_parser_parse_and_diagnose_invalid_type_name,cp_parser_require_pragma_eol, cp_parser_make_typename_type,cp_parser_string_literal, cp_parser_primary_expression,cp_parser_primary_expression, cp_parser_unqualified_id,cp_parser_nested_name_specifier_opt, cp_parser_postfix_expression,cp_parser_postfix_dot_deref_expression, cp_parser_new_expression,cp_parser_direct_new_declarator, cp_parser_builtin_offsetof,cp_parser_label_for_labeled_statement, cp_parser_statement_seq_opt,cp_parser_jump_statement, cp_parser_block_declaration,cp_parser_simple_declaration, cp_parser_decl_specifier_seq,cp_parser_function_specifier_opt, cp_parser_decltype,cp_parser_mem_initializer_list, cp_parser_mem_initializer,cp_parser_mem_initializer_id, cp_parser_template_parameter,cp_parser_type_parameter, cp_parser_template_id,cp_parser_template_name, cp_parser_template_argument): Likewise.2008-07-09 Paolo Carlini <paolo.carlini@oracle.com>PR c++/36760* pt.c (tsubst_function_type): Remove warning for type qualifierson function return type.2008-07-09 Paolo Carlini <paolo.carlini@oracle.com>PR c++/36760* pt.c (tsubst_function_type): Don't warn for type qualifierson function return type in case of system header.2008-07-09 Raksit Ashok <raksit@google.com>* parser.c (cp_parser_postfix_expression): New warning based on flagwarn_disallowed_functions.2008-07-08 Simon Martin <simartin@users.sourceforge.net>PR c++/34963* decl.c (grokdeclarator): Reset storage_class and staticp for friendfunctions declared with a storage class qualifier.2008-07-03 Richard Guenther <rguenther@suse.de>PR c++/36128* typeck.c (cp_build_function_call): Move code to verifybuiltin function arguments ...* call.c (build_cxx_call): ... here.2008-07-02 Jason Merrill <jason@redhat.com>* Make-lang.in (cp/typeck2.o): Add $(REAL_H) dependency.Implement WG21 N2672, Initializer List proposed wording* cp-tree.h (enum cp_tree_index): Add CPTI_INIT_LIST_TYPE.(struct lang_type_class): Add has_list_ctor bitfield.(TYPE_HAS_LIST_CTOR): New macro.(BRACE_ENCLOSED_INITIALIZER_P): Expect init_list_type_node.(CONSTRUCTOR_IS_DIRECT_INIT): New macro.(LOOKUP_NO_NARROWING): New macro.(LOOKUP_NO_COPY_CTOR_CONVERSION): New macro.* parser.c (cp_parse_braced_list): Split out from...(cp_parser_initializer_clause): ...here.(cp_parser_postfix_expression): Build up CONSTRUCTOR for compoundliteral here.(cp_lexer_next_token_is_not_keyword): New fn.(cp_parser_parenthesized_expression_list): Handle { }.(cp_parser_new_expression, cp_parser_new_initializer): Likewise.(cp_parser_assignment_expression, cp_parser_condition): Likewise.(cp_parser_jump_statement, cp_parser_simple_declaration): Likewise.(cp_parser_mem_initializer, cp_parser_init_declarator): Likewise.(cp_parser_initializer, cp_parser_functional_cast): Likewise.(cp_parser_omp_for_loop, cp_parser_cache_group): Likewise.(cp_parser_save_member_function_body): Likewise.* call.c (conversion_kind): Add ck_list, ck_aggr.(struct conversion): Add check_narrowing bitfield, conversion list.(build_list_conv): New fn.(build_aggr_conv): New fn.(implicit_conversion): Call them.(standard_conversion): Set check_narrowing if appropriate.(add_function_candidate): Handle LOOKUP_NO_COPY_CTOR_CONVERSION.(build_user_type_conversion_1): When converting from an init list,we allow additional conversions except when calling a copy ctor.(convert_like_real): Calling an explicit ctor for an init list isill-formed. Handle ck_list and ck_addr. Check narrowing.(build_new_method_call): If CONSTRUCTOR_IS_DIRECT_INIT is set andclass doesn't have a list ctor, break the {} into a TREE_LIST.(compare_ics): ck_list is better than other UDCs.(set_up_extended_ref_temp): Split out from initialize_reference.(is_std_init_list): New fn.(is_list_ctor): New fn.* decl.c (cxx_init_decl_processing): Create init_list_type_node.(reshape_init_array_1): Pass it to build_constructor.(reshape_init_class): Ditto.(initialize_artificial_var): Pass the appropriate type.(build_aggr_init_full_exprs): Split out from...(check_initializer): ...here. Handle new semantics.(build_init_list_var_init): New subroutine of check_initializer.(grokdeclarator): Converting constructors can have more than one parm.(grok_special_member_properties): Set TYPE_HAS_LIST_CTOR.* init.c (expand_default_init): Only do digest_init for aggregates.* rtti.c (tinfo_base_init): Pass init_list_type_node tobuild_constructor_from_list.(generic_initializer, ptr_initializer): Ditto.(ptm_initializer, class_initializer): Ditto.(get_pseudo_ti_init): Ditto.* error.c (dump_type): Handle init_list_type_node.(maybe_warn_cpp0x): New fn.(maybe_varn_variadic_templates): Call it.* cvt.c (ocp_convert): Handle conversion from { }.* tree.c (build_array_of_n_type): New fn.* typeck2.c (store_init_value): Use init_list_type_node.(digest_init): Likewise.(check_narrowing): New fn.* semantics.c: (finish_compound_literal): Take CONSTRUCTOR insteadof vector of constructor elts. Handle non-aggregate types. Makeconstant literals static.* pt.c: (tsubst_copy_and_build): Adjust.(unify): Handle { }.* name-lookup.c (arg_assoc_type): Handle init_list_type_node.2008-07-01 Daniel Jacobowitz <dan@codesourcery.com>* typeck.c (comp_ptr_ttypes_real): Use vector_targets_convertible_p.(comp_ptr_ttypes_const): Likewise.2008-07-01 Andrew Haley <aph@redhat.com>* decl.c (finish_constructor_body): Don't set the return value ofthe constructor if the constructor is that of a Java type.2008-06-30 Jakub Jelinek <jakub@redhat.com>PR c++/36662* decl2.c (is_late_template_attribute): If the first attributeargument is IDENTIFIER_NODE, don't consider it when checkingif arguments are value or type dependent.2008-06-29 Paolo Carlini <paolo.carlini@oracle.com>PR c++/36655* pt.c (do_type_instantiation): In c++0x mode do not warn forextern template.2008-06-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>* Make-lang.in (cp-warn): Delete $(CXX_COMPAT_WARN).2008-06-28 Jakub Jelinek <jakub@redhat.com>PR c++/36364* repo.c (repo_emit_p): Put const static data members initializedby const expr into *.rpo file, just return 2 if IDENTIFIER_REPO_CHOSENfor it is 0.2008-06-27 Paolo Carlini <paolo.carlini@oracle.com>PR c++/36655* pt.c (do_decl_instantiation): In c++0x mode do not warn forextern template.2008-06-24 Jonathan Wakely <jwakely.gcc@gmail.com>PR c++/23194* typeck.c (cp_build_function_call): Show example syntax indiagnostic.2008-06-21 Jonathan Wakely <jwakely.gcc@gmail.com>* typeck.c (composite_pointer_type_r, cxx_sizeof_expr,cxx_alignof_expr, check_template_keyword, cp_build_binary_op,pointer_diff, cp_build_unary_op, build_x_compound_expr_from_list,build_reinterpret_cast_1, cp_build_c_cast, check_return_expr): Changepedwarn to permerror.* init.c (perform_member_init, build_new_1, build_new): Likewise.* decl.c (warn_extern_redeclared_static, duplicate_decls,* identify_goto, check_previous_goto_1, check_goto, define_label,check_tag_decl, start_decl, check_class_member_definition_namespace,grokfndecl, grokdeclarator): Likewise.* except.c (check_handlers): Likewise.* typeck2.c (digest_init): Likewise.* pt.c (check_specialization_namespace,check_explicit_instantiation_namespace,maybe_process_partial_specialization, check_explicit_specialization,convert_template_argument, do_decl_instantiation,do_type_instantiation, instantiate_decl): Likewise.* semantics.c (finish_template_type_parm): Likewise.* name-lookup.c (pushdecl_maybe_friend,check_for_out_of_scope_variable): Likewise.* decl2.c (finish_static_data_member_decl, build_anon_union_vars,coerce_new_type): Likewise.* parser.c (cp_parser_nested_name_specifier_opt,cp_parser_mem_initializer, cp_parser_elaborated_type_specifier,cp_parser_class_head, cp_parser_check_class_key): Likewise.(cp_parser_parameter_declaration): Check flag_permissive instead offlag_pedantic_errors.* call.c (joust): Change pedwarn to warning.* friend.c (make_friend_class): Likewise.2008-06-16 Jan Hubicka <jh@suse.cz>* method.c: Include cgraph.h.(use_thunk): Use cgraph_add_new_function instead of calling backenddirectly.2008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>* parser.c: Fix comment typo.2008-06-14 Simon Martin <simartin@users.sourceforge.net>PR c++/35320* decl2.c (grokbitfield): Receive the list of attributes, pass it togrokdeclarator and apply it to the created declaration.* cp-tree.h (grokbitfield): Update prototype.* parser.c (cp_parser_member_declaration): Don't apply the attributessince they are now applied in grokbitfield. Adjusted the call togrokbitfield.(cp_parser_objc_class_ivars): Likewise.2008-06-14 Simon Martin <simartin@users.sourceforge.net>PR c++/35317* class.c (type_requires_array_cookie): Do not consider delete[]operators with an ellipsis as second argument.2008-06-09 Jakub Jelinek <jakub@redhat.com>PR c++/36408* semantics.c (stmt_expr_value_expr): Don't crash on emptySTATEMENT_LIST.2008-06-08 Paolo Carlini <paolo.carlini@oracle.com>PR c++/35242* pt.c (maybe_process_partial_specialization): Check the treereturned by push_template_decl for error_mark_node.* parser.c (cp_parser_class_head): Likewise, check the treereturned by the latter.2008-06-07 Paolo Carlini <paolo.carlini@oracle.com>PR c++/35327* decl.c (grokdeclarator): In case of wrong return type returnimmediately error_mark_node.2008-06-06 Jakub Jelinek <jakub@redhat.com>* cp-tree.h (cxx_omp_finish_clause, cxx_omp_create_clause_info,dependent_omp_for_p, begin_omp_task, finish_omp_task,finish_omp_taskwait): New prototypes.(cxx_omp_clause_default_ctor): Add outer argument.(finish_omp_for): Add new clauses argument.* cp-gimplify.c (cxx_omp_finish_clause): New function.(cxx_omp_predetermined_sharing): Moved from semantics.c, rewritten.(cxx_omp_clause_default_ctor): Add outer argument.(cp_genericize_r): Walk OMP_CLAUSE_LASTPRIVATE_STMT.* cp-objcp-common.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.* parser.c (cp_parser_omp_for_loop): Parse collapsed for loops.Add par_clauses argument. If decl is present in parallel'slastprivate clause, change that clause to shared and adda lastprivate clause for decl to OMP_FOR_CLAUSES.Fix wording of error messages. Adjust finish_omp_for caller.Add clauses argument. Parse loops with random access iterators.(cp_parser_omp_clause_collapse, cp_parser_omp_clause_untied): Newfunctions.(cp_parser_omp_for, cp_parser_omp_parallel): Adjustcp_parser_omp_for_loop callers.(cp_parser_omp_for_cond, cp_parser_omp_for_incr): New helperfunctions.(cp_parser_omp_clause_name): Handle collapse and untiedclauses.(cp_parser_omp_clause_schedule): Handle auto schedule.(cp_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSEand PRAGMA_OMP_CLAUSE_UNTIED.(OMP_FOR_CLAUSE_MASK): Add PRAGMA_OMP_CLAUSE_COLLAPSE.(OMP_TASK_CLAUSE_MASK): Define.(cp_parser_omp_task, cp_parser_omp_taskwait): New functions.(cp_parser_omp_construct): Handle PRAGMA_OMP_TASK.(cp_parser_pragma): Handle PRAGMA_OMP_TASK andPRAGMA_OMP_TASKWAIT.* pt.c (tsubst_omp_clauses): Handle OMP_CLAUSE_COLLAPSE andOMP_CLAUSE_UNTIED. Handle OMP_CLAUSE_LASTPRIVATE_STMT.(tsubst_omp_for_iterator): New function.(dependent_omp_for_p): New function.(tsubst_expr) <case OMP_FOR>: Use it. Handle collapsed OMP_FORloops. Adjust finish_omp_for caller. Handle loops with randomaccess iterators. Adjust for OMP_FOR_{INIT,COND,INCR} changes.(tsubst_expr): Handle OMP_TASK.* semantics.c (cxx_omp_create_clause_info): New function.(finish_omp_clauses): Call it. Handle OMP_CLAUSE_UNTIED andOMP_CLAUSE_COLLAPSE.(cxx_omp_predetermined_sharing): Removed.* semantics.c (finish_omp_for): Allow pointer iterators. Usehandle_omp_for_class_iterator and dependent_omp_for_p. Handlecollapsed for loops. Adjust c_finish_omp_for caller. Add newclauses argument. Fix check for type dependent cond or incr.Set OMP_FOR_CLAUSES to clauses. Use cp_convert instead offold_convert to convert incr amount to difference_type. Onlyfold if not in template. If decl is mentioned in lastprivateclause, set OMP_CLAUSE_LASTPRIVATE_STMT. Handle loops with randomaccess iterators. Adjust for OMP_FOR_{INIT,COND,INCR}changes.(finish_omp_threadprivate): Allow static class members of thecurrent class.(handle_omp_for_class_iterator, begin_omp_task, finish_omp_task,finish_omp_taskwait): New functions.* parser.c (cp_parser_binary_expression): Add prec argument.(cp_parser_assignment_expression): Adjust caller.* cp-tree.h (outer_curly_brace_block): New prototype.* decl.c (outer_curly_brace_block): No longer static.2008-06-02 Paolo Carlini <paolo.carlini@oracle.com>PR c++/36404* pt.c (push_template_decl_real): Consistently return error_mark_nodeon error.2008-06-02 Tomas Bily <tbily@suse.cz>* typeck.c (is_bitfield_expr_with_lowered_type): Use CASE_CONVERT.(cp_build_unary_op): Likewise.(cp_build_indirect_ref): Use CONVERT_EXPR_P.(maybe_warn_about_returning_address_of_local): Likewise.2008-05-29 Paolo Carlini <paolo.carlini@oracle.com>PR c++/35243* pt.c (tsubst_initializer_list): Consistently check the treereturned by tsubst_pack_expansion for error_mark_node.2008-05-27 Michael Matz <matz@suse.de>PR c++/27975* call.c (build_new_op): Make warning conditional onOPT_Wenum_compare.2008-05-27 Alexandre Oliva <aoliva@redhat.com>PR c++/35909* call.c (convert_like_real): Convert bitfield to desired typebefore creating temporary.2008-05-26 Daniel Franke <franke.daniel@gmail.com>* Makefile.in: Adjusted dependencies on c-incpath.o.2008-05-23 Jakub Jelinek <jakub@redhat.com>PR c++/36237* cp-gimplify.c (cxx_omp_clause_apply_fn): Callfold_build_cleanup_point_expr on build_call_a results.PR c++/36308* semantics.c (omp_clause_info_fndecl): New function.(finish_omp_clauses): Use it.2008-05-21 Jakub Jelinek <jakub@redhat.com>PR c++/36023* cp-tree.h (check_array_initializer): New prototype.* decl.c (check_array_initializer): New function.(check_initializer): Call it.* semantics.c (finish_compound_literal): Call it for ARRAY_TYPEs.2008-05-21 Tom Tromey <tromey@redhat.com>* mangle.c (save_partially_mangled_name): Remove.(restore_partially_mangled_name): Likewise.(write_encoding): Update.(write_unqualified_name): Likewise.(start_mangling): Always use name_obstack. Remove 'ident_p'argument.(get_identifier_nocopy): Remove.(finish_mangling_internal): Rename from finish_mangling.(finish_mangling): New function.(finish_mangling_get_identifier): Likewise.(partially_mangled_name, partially_mangled_name_len): Remove.(mangle_decl_string): Change return type. Update.(mangle_decl, mangle_type_string, mangle_special_for_type,mangle_ctor_vtbl_for_type, mangle_thunk, mangle_guard_variable,mangle_ref_init_variable): Update.2008-05-12 Paolo Carlini <paolo.carlini@oracle.com>PR c++/35331* semantics.c (begin_class_definition): Extend checks on the firstargument.2008-05-12 Tomas Bily <tbily@suse.cz>* typeck2.c (digest_init): Use CONVERT_EXPR_P.* call.c (build_over_call): Likewise.* error.c (dump_expr): Use CASE_CONVERT.* class.c (fixed_type_or_null): Likewise.2008-05-11 Volker Reichelt <v.reichelt@netcologne.de>* parser.c (cp_parser_omp_clause_reduction): Add missing "expected"in error message.(cp_parser_omp_clause_schedule): Remove superfluous "expected"in error message.2008-05-07 Kenneth Zadeck <zadeck@naturalbridge.com>* decl.c (duplicate_decls): Merge in DECL_PURE_P, TREE_READONLY,DECL_LOOPING_CONST_OR_PURE_P attributes.* rtti.c (build_dynamic_cast_1): Rename DECL_IS_PURE toDECL_PURE_P.2008-05-02 Simon Baldwin <simonb@google.com>PR bootstrap/36108* typeck.c (build_array_ref): Remove warn_array_subscript_range.2008-05-01 Simon Baldwin <simonb@google.com>* typeck.c (build_array_ref): Call warn_array_subscript_range.2008-04-30 Jakub Jelinek <jakub@redhat.com>PR c++/35986* pt.c (more_specialized_fn): Stop the loop even if there are noarguments before ellipsis.2008-04-29 Jakub Jelinek <jakub@redhat.com>PR c++/35650* parser.c (cp_parser_lookup_name): Look through single functionOVERLOAD.PR c++/35987* typeck.c (cp_build_modify_expr) <case PREINCREMENT_EXPR>: Don't buildCOMPOUND_EXPR if the second argument would be error_mark_node.2008-04-28 Jason Merrill <jason@redhat.com>Liu Guanwei <liu_gw@163.com>PR c++/57* parser.c (cp_parser_parameter_declaration): Handle < ambiguityin default arguments.2008-04-25 Jan Hubicka <jh@suse.cz>* typeck.c (check_return_expr): Update.* decl.c (start_preparsed_function): Update.* method.c (use_thunk): Update.2008-04-24 Jakub Jelinek <jakub@redhat.com>PR c++/35758* cp-tree.h (cp_reconstruct_complex_type): New prototype.* cp-objcp-common.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.* decl2.c (is_late_template_attribute): Only make vector_sizelate tmpl attribute if argument is type or value dependent.(cp_reconstruct_complex_type): New function.2008-04-24 Richard Guenther <rguenther@suse.de>* typeck.c (cp_build_function_call): Callcheck_builtin_function_arguments.2008-04-23 Paolo Bonzini <bonzini@gnu.org>* typeck.c (get_member_function_from_ptrfunc): Don't set TREE_INVARIANT.(build_ptrmemfunc1): Don't set TREE_INVARIANT.* init.c (build_zero_init): Don't set TREE_INVARIANT.* class.c (build_base_path): Don't set TREE_INVARIANT.(build_vtbl_ref_1): Don't set TREE_INVARIANT.(build_vtbl_initializer): Don't set TREE_INVARIANT.* decl.c (build_enumerator): Don't set TREE_INVARIANT.* rtti.c (tinfo_base_init): Don't set TREE_INVARIANT.(generic_initializer): Don't set TREE_INVARIANT.(ptr_initializer): Don't set TREE_INVARIANT.(ptm_initializer): Don't set TREE_INVARIANT.(class_initializer): Don't set TREE_INVARIANT.* typeck2.c (process_init_constructor): Don't set TREE_INVARIANT.* pt.c (push_inline_template_parms_recursive): Don't set TREE_INVARIANT.(build_template_parm_index): Don't set TREE_INVARIANT.(reduce_template_parm_level): Don't set TREE_INVARIANT.(process_template_parm): Don't set TREE_INVARIANT.2008-04-22 Jason Merrill <jason@redhat.com>PR c++/35316* semantics.c (finish_decltype_type): Check DECL_BIT_FIELD_TYPEto see if DECL_BIT_FIELD_TYPE should be used, not some other flag.* typeck.c (is_bitfield_expr_with_lowered_type): Likewise.2008-04-22 Jakub Jelinek <jakub@redhat.com>PR c++/35747* semantics.c (finish_stmt_expr): Call pop_stmt_list even if the stmtexpression is errorneous.2008-04-21 Jason Merrill <jason@redhat.com>PR c++/35325* tree.c (cp_tree_equal): Handle FIXED_CST.PR c++/35678* pt.c (template_template_parm_bindings_ok_p): Setprocessing_template_decl while in this function.2008-04-18 Kris Van Hees <kris.van.hees@oracle.com>* cvt.c (type_promotes_to): Support char16_t and char32_t.* decl.c (grokdeclarator): Disallow signed/unsigned/short/long onchar16_t and char32_t.* lex.c (reswords): Add char16_t and char32_t (for c++0x).* mangle.c (write_builtin_type): Mangle char16_t/char32_t as vendorextended builtin type "u8char{16,32}_t".* parser.c (cp_lexer_next_token_is_decl_specifier_keyword): SupportRID_CHAR{16,32}.(cp_lexer_print_token): Support CPP_STRING{16,32}.(cp_parser_is_string_literal): Idem.(cp_parser_string_literal): Idem.(cp_parser_primary_expression): Support CPP_CHAR{16,32} andCPP_STRING{16,32}.(cp_parser_simple_type_specifier): Support RID_CHAR{16,32}.* tree.c (char_type_p): Support char16_t and char32_t as char types.* typeck.c (string_conv_p): Support char16_t and char32_t.2008-04-17 Jason Merrill <jason@redhat.com>PR c++/35773* call.c (build_user_type_conversion_1): Represent second step ofcopy-init with an rvalue conversion.(convert_like_real) [ck_user]: Don't implicitly add it here.2008-04-15 Jakub Jelinek <jakub@redhat.com>PR c/35751* decl.c (layout_var_decl): If extern or static var has variablesize, set TREE_TYPE (decl) to error_mark_node.2008-04-16 Danny Smith <dannysmith@users.sourceforge.net>PR target/35921* optimize.c (maybe_clone_body): Copy DECL_DLLIMPORT_P flagto clone.2008-04-09 Jason Merrill <jason@redhat.com>PR c++/35708* semantics.c (finish_compound_literal): Return a TARGET_EXPR,not a pushed variable.2008-04-09 Volker Reichelt <v.reichelt@netcologne.de>* call.c (build_op_delete_call): Fix quotation in warning message.* decl.c (grokdeclarator): Quote keyword in error message.* pt.c (check_for_bare_parameter_packs): Fix quotation in errormessage.* parser.c (cp_parser_check_type_definition): Print error stringdirectly rather than using "%s".(cp_parser_postfix_expression): Fix quotation.(cp_parser_decltype): Likewise.(cp_parser_sizeof_operand): Fix quotation. Simplify.* parser.c (cp_parser_non_integral_constant_expression): Build errormessage with CONCAT rather than using "%s".(cp_parser_primary_expression): Fix quotation.(cp_parser_postfix_expression): Likewise.(cp_parser_postfix_dot_deref_expression): Likewise.(cp_parser_unary_expression): Likewise.(cp_parser_new_expression): Likewise.(cp_parser_delete_expression): Likewise.* parser.c (cp_parser_asm_specification_opt): Print CPP_CLOSE_PARENas `)', not as `('. Fix quotation.(cp_parser_consume_semicolon_at_end_of_statement): Fix quotation.(cp_parser_primary_expression): Likewise.(cp_parser_nested_name_specifier_opt): Likewise.(cp_parser_postfix_expression): Likewise.(cp_parser_postfix_open_square_expression): Likewise.(cp_parser_parenthesized_expression_list): Likewise.(cp_parser_pseudo_destructor_name): Likewise.(cp_parser_new_expression): Likewise.(cp_parser_direct_new_declarator): Likewise.(cp_parser_delete_expression): Likewise.(cp_parser_cast_expression): Likewise.(cp_parser_question_colon_clause): Likewise.(cp_parser_builtin_offsetof): Likewise.(cp_parser_trait_expr): Likewise.(cp_parser_label_for_labeled_statement): Likewise.(cp_parser_compound_statement): Likewise.(cp_parser_selection_statement): Likewise.(cp_parser_condition): Likewise.(cp_parser_iteration_statement): Likewise.(cp_parser_already_scoped_statement): Likewise.(cp_parser_simple_declaration): Likewise.(cp_parser_linkage_specification): Likewise.(cp_parser_static_assert): Likewise.(cp_parser_decltype): Likewise.(cp_parser_conversion_function_id): Likewise.(cp_parser_operator_function_id): Likewise.(cp_parser_operator): Likewise.(cp_parser_type_parameter): Likewise.(cp_parser_template_id): Likewise.(cp_parser_explicit_instantiation): Likewise.(cp_parser_explicit_specialization): Likewise.(cp_parser_enum_specifier): Likewise.(cp_parser_namespace_definition): Likewise.(cp_parser_namespace_alias_definition): Likewise.(cp_parser_using_declaration): Likewise.(cp_parser_using_directive): Likewise.(cp_parser_asm_definition): Likewise.(cp_parser_direct_declarator): Likewise.(cp_parser_ptr_operator): Likewise.(cp_parser_parameter_declaration_clause): Likewise.(cp_parser_initializer_clause): Likewise.(cp_parser_class_specifier): Likewise.(cp_parser_member_specification_opt): Likewise.(cp_parser_member_declaration): Likewise.(cp_parser_pure_specifier): Likewise.(cp_parser_constant_initializer): Likewise.(cp_parser_base_clause): Likewise.(cp_parser_exception_specification_opt): Likewise.(cp_parser_try_block): Likewise.(cp_parser_function_try_block): Likewise.(cp_parser_handler): Likewise.(cp_parser_throw_expression): Likewise.(cp_parser_asm_operand_list): Likewise.(cp_parser_attributes_opt): Likewise.(cp_parser_label_declaration): Likewise.(cp_parser_constructor_declarator_p): Likewise.(cp_parser_template_declaration_after_export): Likewise.(cp_parser_single_declaration): Likewise.(cp_parser_objc_message_expression): Likewise.(cp_parser_objc_message_args): Likewise.(cp_parser_objc_encode_expression): Likewise.(cp_parser_objc_defs_expression): Likewise.(cp_parser_objc_protocol_expression): Likewise.(cp_parser_objc_selector_expression): Likewise.(cp_parser_objc_protocol_refs_opt): Likewise.(cp_parser_objc_typename): Likewise.(cp_parser_objc_method_keyword_params): Likewise.(cp_parser_objc_superclass_or_category): Likewise.(cp_parser_objc_try_catch_finally_statement): Likewise.(cp_parser_objc_synchronized_statement): Likewise.(cp_parser_objc_throw_statement): Likewise.(cp_parser_omp_var_list_no_open): Likewise.(cp_parser_omp_clause_default): Likewise.(cp_parser_omp_clause_if): Likewise.(cp_parser_omp_clause_num_threads): Likewise.(cp_parser_omp_clause_reduction): Likewise.(cp_parser_omp_clause_schedule): Likewise.(cp_parser_omp_critical): Likewise.(cp_parser_omp_for_loop): Likewise.(cp_parser_omp_sections_scope): Likewise.* parser.c (cp_parser_template_parameter_list): Simplify.2008-04-07 James E. Wilson <wilson@tuliptree.org>* pt.c (tsubst_copy, case SIZEOF_EXPR): Initialize len.2008-04-07 Jason Merrill <jason@redhat.com>PR c++/35734* class.c (type_has_user_nondefault_constructor): A templatecounts as a nondefault constructor.2008-04-04 Paolo Bonzini <bonzini@gnu.org>* decl.c (cxx_push_function_context): Delete.(cxx_pop_function_context): Delete.(start_preparsed_function): Merge cxx_push_function_context (!f->declcode only).* cp-objcp-common.h (LANG_HOOKS_FUNCTION_INIT,LANG_HOOKS_FUNCTION_FINAL): Delete.(LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P): Rename toLANG_HOOKS_MISSING_NORETURN_OK_P.* cp-tree.h (cxx_push_function_context, cxx_pop_function_context):Delete prototype.* semantics.c (current_stmt_tree): Fix comment.2008-04-03 Jakub Jelinek <jakub@redhat.com>PR c++/35741* semantics.c (finish_offsetof): Undo effect of convert_from_referencebefore calling fold_offsetof.2008-04-03 Tom Tromey <tromey@redhat.com>* Make-lang.in (c++_OBJS): New variable.2008-04-03 Paolo Bonzini <bonzini@gnu.org>* optimize.c (clone_body): New, from tree-inline.c.2008-04-03 Paolo Bonzini <bonzini@gnu.org>* method.c (synthesize_method): Use {push,pop}_function_context.* name-lookup.c (push_to_top_level): Likewise.* parser.c (cp_parser_late_parsing_for_member): Likewise.2008-03-30 Volker Reichelt <v.reichelt@netcologne.de>PR c++/35578* parser.c (cp_parser_decl_specifier_seq): Add location to errormessage.2008-03-27 Tom Tromey <tromey@redhat.com>* Make-lang.in: Revert automatic dependency patch.2008-03-27 Douglas Gregor <doug.gregor@gmail.com>PR obj-c++/35704* typeck.c (build_x_compound_expr): Use cp_build_compound_expr.(build_compound_expr): New, for compatibility with Cbuild_compound_expr.(cp_build_compound_expr): Renamed from build_compound_expr.(build_c_cast): New, for compatibility with C build_c_cast.(cp_build_c_cast): Renamed from build_c_cast.* init.c (build_vec_delete_1): Fix calls to build_compound_expr.* decl.c (cxx_maybe_build_cleanup): Ditto.* cp-tree.h (build_compound_expr): Add C-compatibile prototype.(cp_build_compound_expr): Renamed from build_compound_expr.(build_c_cast): Add C-compatible prototype.(cp_build_c_cast): Renamed from build_c_cast.* typeck2.c (build_functional_cast): Use cp_build_c_cast.* parser.c (cp_parser_cast_expression): Fix call to build_c_cast.2008-03-27 Douglas Gregor <doug.gregor@gmail.com>* pt.c (tsubst_copy) <case SIZEOF_EXPR>: Cope withtsubst_pack_expansion returning a pack expansion, or a TREE_VECending in a pack expansion, both of which can occur whensubstituting into a nested template.(tsubst_copy_and_build) <case SIZEOF_EXPR>: When we'reinstantiating the sizeof...(X) form, make tsubst_copy do the work.* parser.c (cp_parser_template_parameter): Deal with unnamednon-type template parameter packs identified by pack expansions inthe parameter type.2008-03-26 Jakub Jelinek <jakub@redhat.com>PR c++/35546* pt.c (apply_late_template_attributes): Don't call tsubst onfirst attribute argument if it is IDENTIFIER_NODE.PR c++/35332* error.c (dump_expr): Pass {,UN}ORDERED_EXPR, UN{LT,LE,GT,GE,EQ}_EXPRand LTGT_EXPR to pp_expression.2008-03-26 Douglas Gregor <doug.gregor@gmail.com>* pt.c (coerce_template_template_parm): Moved the body of the loopof coerce_template_template_parms here, to make iteration over atemplate argument pack simpler.Also, allow matching of a template parameter pack in the templatetemplate parameter to a template parameter in the templatetemplate argument.(coerce_template_template_parms): Deal with variadic templatetemplate parameters. Use coerce_template_template_parm.(unify): Make sure we coerce the template template argument'stemplate arguments to the template template parameter's templateparameters, not the other way around.2008-03-25 Tom Tromey <tromey@redhat.com>* Make-lang.in: Remove .o targets.(cp/g++spec.o): Moved to cp/. Reduce to variable setting.(GXX_OBJS): Update.(c++_OBJS): New variable.(CXX_TREE_H, CXX_PRETTY_PRINT_H): Remove.2008-03-25 Douglas Gregor <doug.gregor@gmail.com>* typeck.c (composite_pointer_type_r): Add SFINAE support.(composite_pointer_type): Ditto.(common_type): Fix call to composite_pointer_type.(cxx_sizeof_nowarn): New; used to be a macro.(cxx_sizeof_expr): Add SFINAE support.(cxx_alignof_expr): Ditto.(decay_conversion): Fix calls for SFINAE support.(rationalize_conditional_expr): Add SFINAE support.(build_class_member_access_expr): Ditto.(finish_class_member_access_expr): Ditto.(build_x_indirect_ref): Ditto.(build_indirect_ref): Original version renamed tocp_build_indirect_ref; new version provides a bridge fromc-common.(cp_build_indirect_ref): Was build_indirect_ref; added SFINAEsupport.(get_member_function_from_ptrfunc): Fix calls for SFINAE support.(build_function_call): Original version renamed tocp_build_function_call; new version provides a bridge fromc-common.(cp_build_function_call): Was build_function_call; added SFINAEsupport.(convert_arguments): Add SFINAE support.(build_x_binary_op): Ditto.(build_binary_op): Original version renamed to cp_build_binary_op;new version provides a bridge from c-common.(cp_build_binary_op): Was build_binary_op; added SFINAE support.(pointer_diff): Fix calls for SFINAE.(build_x_unary_op): Add SFINAE support.(condition_conversion): Fix calls for SFINAE.(build_unary_op): Original version renamed to cp_build_unary_op;new version provides a bridge from c-common.(cp_build_unary_op): Was build_unary_op; added SFINAE support.(unary_complex_lvalue): Fix calls for SFINAE.(build_x_conditional_expr): Add SFINAE support.(build_x_compound_expr_from_list): Fix calls for SFINAE.(build_x_compound_expr): Add SFINAE support.(convert_ptrmem): Fix calls for SFINAE.(build_static_cast_1): Add SFINAE support.(build_static_cast): Ditto.(build_reinterpret_cast_1): Ditto.(build_reinterpret_cast): Ditto.(build_const_cast_1): Ditto.(build_const_cast): Ditto.(build_c_cast): Ditto.(build_modify_expr): Original version renamed tocp_build_modify_expr; new version provides a bridge from c-common.(cp_build_modify_expr): Was build_modify_expr; added SFINAEsupport.(build_x_modify_expr): Add SFINAE support.(build_ptrmemfunc): Fix calls for SFINAE.(convert_for_assignment): Add SFINAE support.(convert_for_initialization): Ditto.(check_return_expr): Fix calls for SFINAE.(lvalue_or_else): Add SFINAE support.* init.c (perform_member_init): Fix calls for SFINAE.(emit_mem_initializers): Ditto.(expand_virtual_init): Ditto.(expand_cleanup_for_base): Ditto.(build_aggr_init): Add SFINAE support.(expand_default_init): Ditto.(expand_aggr_init_1): Fix calls for SFINAE.(build_offset_ref): Ditto.(build_new_1): Add SFINAE support.(build_new): Ditto.(build_vec_delete_1): Fix calls for SFINAE.(get_temp_regvar): Ditto.(build_vec_init): Add SFINAE support.(build_dtor_call): Fix calls for SFINAE.(build_delete): Ditto.(push_base_cleanups): Ditto.(build_vec_delete_1): Ditto.* class.c (build_base_path): Fix calls for SFINAE.(build_simple_base_path): Ditto.(convert_to_base_statically): Ditto.(build_vfn_ref): Ditto.(resolve_address_of_overloaded_function): Ditto.* decl.c (check_initializer): Fix calls for SFINAE.(register_dtor_fn): Ditto.(compute_array_index_type): Ditto.(finish_enum): Ditto.(start_preparsed_function): Ditto.(cxx_maybe_build_cleanup): Ditto.* call.c (convert_like): Add COMPLAIN argument.(convert_like_with_context): Ditto.(build_this): Fix calls for SFINAE.(build_user_type_conversion): Ditto.(resolve_args): Ditto.(build_new_function_call): Add SFINAE support.(build_operator_new_call): Fix calls for SFINAE.(build_object_call): Add SFINAE support.(build_conditional_expr): Ditto.(build_new_op): Ditto.(build_op_delete_call): Fix calls for SFINAE.(build_temp): Ditto.(convert_like_real): Add SFINAE support.(build_x_va_arg): Fix calls for SFINAE.(convert_default_arg): Ditto.(build_over_call): Add SFINAE support.(build_java_interface_fn_ref): Fix calls for SFINAE.(build_special_member_call): Add SFINAE support.(build_new_method_call): Ditto.(perform_implicit_conversion): Ditto.(perform_direct_initialization_if_possible): Ditto.(initialize_reference): Fix calls for SFINAE.* method.c (do_build_assign_ref): Fix calls for SFINAE.* rtti.c (build_headof): Fix calls for SFINAE.(get_tinfo_decl_dynamic): Ditto.(get_typeid): Ditto.(build_dynamic_cast_1): Add SFINAE support.(build_dynamic_cast): Ditto.(tinfo_base_init): Fix calls for SFINAE.* except.c (do_get_exception_ptr): Fix calls for SFINAE.(do_end_catch): Ditto.(initialize_handler_parm): Ditto.(expand_start_catch_block): Ditto.(do_allocate_exception): Ditto.(do_free_exception): Ditto.(build_throw): Ditto.* cvt.c (build_up_reference): Fix calls for SFINAE.(convert_to_reference): Ditto.(ocp_convert): Ditto.(convert_to_void): Add SFINAE support.* tree.c (build_dummy_object): Fix calls for SFINAE.(stabilize_expr): Ditto.* cp-tree.h (build_conditional_expr): Add tsubst_flags_tparameter.(build_new_method_call): Ditto.(build_special_member_call): Ditto.(build_new_op): Ditto.(perform_implicit_conversion): Ditto.(perform_direct_initialization_if_possible): Ditto.(convert_to_void): Ditto.(build_aggr_init): Ditto.(build_new): Ditto.(build_vec_init): Ditto.(build_dynamic_cast): Ditto.(finish_call_expr): Ditto(cxx_sizeof_or_alignof_expr): Add COMPLAIN parameter.(cxx_sizeof_nowarn): Remove macro; add function declaration.(build_class_member_access_expr): Add tsubst_flags_t parameter.(finish_class_member_access_expr): Ditto.(build_x_indirect_ref): Ditto.(cp_build_indirect_ref): New.(cp_build_function_call): Add tsubst_flags_t parameter.(build_x_unary_op): Ditto.(cp_build_unary_op): New.(build_x_conditional_expr): Add tsubst_flags_t parameter.(build_x_compound_expr): Ditto.(build_compound_expr): Ditto.(build_static_cast): Ditto.(build_reinterpret_cast): Ditto.(build_const_cast): Ditto.(build_c_cast): Ditto.(build_x_modify_expr): Ditto.(cp_build_modify_expr): New.(convert_for_initialization): Add tsubst_flags_t parameter.(cp_build_binary_op): Remove macro; add function declaration.(invalid_nonstatic_memfn_p): Add tsubst_flags_t parameter.(lvalue_or_else): Ditto.(build_functional_cast): Ditto.* typeck2.c (digest_init): Fix calls for SFINAE.(process_init_constructor_array): Ditto.(process_init_constructor_record): Ditto.(build_x_arrow): Ditto.(build_m_component_ref): Ditto.(build_functional_cast): Add SFINAE support.* pt.c (tsubst_copy_and_build): Add (more) SFINAE support.* semantics.c (simplify_loop_decl_cond): Fix calls for SFINAE.(finish_expr_stmt): Ditto.(finish_for_expr): Ditto.(finish_asm_stmt): Ditto.(finish_non_static_data_member): Ditto.(finish_qualified_id_expr): Ditto.(finish_call_expr): Add SFINAE support.(finish_increment_expr): Fix calls for SFINAE.(finish_unary_op_expr): Ditto.(simplify_aggr_init_expr): Ditto.(finish_omp_clauses): Ditto.(finish_omp_for): Ditto.(finish_omp_barrier): Ditto.(finish_omo_flush): Ditto.* decl2.c (grok_array_decl): Fix calls or SFINAE.(build_anon_union_vars): Ditto.(get_guard_cond): Ditto.(set_guard): Ditto.(one_static_initialization_or_destruction): Ditto.(do_static_initialization_or_destruction): Ditto.(generate_ctor_or_dtor_function): Ditto.(build_offset_ref_call_from_tree): Ditto.* parser.c (cp_parser_postfix_expression): Fix calls for SFINAE.(cp_parser_postfix_dot_deref_expression): Ditto.(cp_parser_unary_expression): Ditto.(cp_parser_new_expression): Ditto.(cp_parser_cast_expression): Ditto.(cp_parser_binary_expression): Ditto.(cp_parser_question_colon_clause): Ditto.(cp_parser_assignment_expression): Ditto.(cp_parser_expression): Ditto.(cp_parser_builtin_offsetof): Ditto.(cp_parser_template_argument): Ditto.(cp_parser_functional_cast): Ditto.2008-03-24 Tom Tromey <tromey@redhat.com>* lex.c (handle_pragma_interface): Don't copy the filename.(handle_pragma_implementation): Copy filename using xstrdup.2008-03-21 Paolo Carlini <pcarlini@suse.de>* cp-tree.h (IS_AGGR_TYPE): Rename to MAYBE_CLASS_TYPE_P.(SET_IS_AGGR_TYPE): Rename to SET_CLASS_TYPE_P.(IS_AGGR_TYPE_CODE): Rename to RECORD_OR_UNION_CODE_P.(PROMOTES_TO_AGGR_TYPE): Remove.(CLASS_TYPE_P, TYPE_NON_AGGREGATE_CLASS): Adjust.* typeck.c (unary_complex_lvalue, build_modify_expr,convert_for_initialization): Adjust.* init.c (is_aggr_type): Remove.(is_class_type): Add.(build_offset_ref, build_new_1, build_vec_delete_1, build_vec_init,build_delete): Adjust.* lex.c (make_aggr_type): Remove.(make_class_type): Add.(cxx_make_type): Adjust.* class.c (finish_struct_1, fixed_type_or_null, is_empty_class):Adjust.* decl.c (build_typename_type, make_typename_type,make_unbound_class_template, cxx_init_decl_processing,check_tag_decl, groktypename, start_decl_1, layout_var_decl,check_initializer, cp_finish_decl, build_ptrmemfunc_type, grokparms,grok_op_properties, xref_tag, check_function_type): Adjust.* call.c (check_dtor_name, standard_conversion, implicit_conversion,add_builtin_candidate, add_builtin_candidates,build_user_type_conversion_1, convert_like_real, build_cxx_call,is_subseq, compare_ics): Adjust.* method.c (use_thunk): Adjust.* rtti.c (build_dynamic_cast_1, create_pseudo_type_info,create_tinfo_types): Adjust.* cvt.c (cp_convert_to_pointer, convert_to_pointer_force,build_up_reference, convert_to_reference, convert_from_reference,ocp_convert, build_expr_type_conversion): Adjust.* tree.c (bind_template_template_parm, error_type): Adjust.* dump.c (cp_dump_tree): Adjust.* search.c (lookup_member): Adjust.* friend.c (make_friend_class, do_friend): Adjust.* typeck2.c (store_init_value, process_init_constructor_array,process_init_constructor_record, build_x_arrow, build_m_component_ref,build_functional_cast): Adjust.* pt.c (finish_member_template_decl, process_template_parm,lookup_template_class, tsubst_function_type, tsubst,tsubst_copy_and_build, get_template_base, bt_instantiate_type_proc):Adjust.* semantics.c (begin_class_definition, finish_base_specifier,finish_typeof, cxx_omp_predetermined_sharing, finish_decltype_type):Adjust.* name-lookup.c (constructor_name_p, push_overloaded_decl,do_class_using_decl, lookup_qualified_name,maybe_process_template_type_declaration): Adjust.* decl2.c (grok_array_decl, check_member_template,constrain_class_visibility): Adjust.* parser.c (cp_parser_class_name): Adjust.2008-03-18 Paolo Bonzini <bonzini@gnu.org>* cp-lang.c (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.2008-03-17 Jason Merrill <jason@redhat.com>PR c++/35548* call.c (reference_binding): Check LOOKUP_NO_TEMP_BIND when bindinga temp directly to a reference as per DR391.2008-03-12 Richard Guenther <rguenther@suse.de>PR c++/35469Revert:2008-02-04 Richard Guenther <rguenther@suse.de>PR java/35035* decl.c (record_builtin_java_type): Make jboolean ainteger type again where its mode doesn't match that of bool.2008-01-25 Richard Guenther <rguenther@suse.de>PR c++/33887* decl.c (record_builtin_java_type): Make __java_booleana variant of bool.* typeck.c (structural_comptypes): Move TYPE_FOR_JAVA checkafter TYPE_MAIN_VARIANT check.2008-03-10 Jakub Jelinek <jakub@redhat.com>PR c++/35328* semantics.c (finish_omp_clauses): Look through NOP_EXPR evenif errorcount.PR c++/35337* semantics.c (finish_omp_clauses): Use %qD instead of %qE forDECL_P in not a variable and appears more than once error messages.2008-03-07 Paolo Bonzini <bonzini@gnu.org>Revert:2008-02-06 Douglas Gregor <doug.gregor@gmail.com>PR c++/35049PR c++/35096* typeck.c (structural_comptypes): Call cp_comptypes.(comptypes): New; called from the C/C++ common bits to performstrict checks.(cp_comptypes): Renamed from comptypes, which is already used,with a different signature, by the C++ front end.(build_reinterpret_cast_1): Call cp_comptypes.(ptr_reasonably_similar): Ditto.* decl.c (decls_match): Ditto.* cvt.c (convert_to_reference): Ditto.* cp-tree.h (same_type_p): Ditto.(same_or_base_type_p): Ditto.(comptypes): Rename to cp_comptypes.* pt.c (canonical_type_parameter): Call cp_comptypes.2008-03-07 Paolo Bonzini <bonzini@gnu.org>* cp-objcp-common.c (cxx_types_compatible_p): Remove obsoletetest for equivalence between pointer and references.2008-03-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>PR 24924* class.c (finish_struct_anon): Use permerror instead of pedwarn.(check_field_decls): Likewise.(note_name_declared_in_class): Likewise.* call.c (build_new_op): Likewise.(convert_like_real): Likewise.(build_over_call): Likewise.* lex.c (unqualified_fn_lookup_error): Likewise.* parser.c (cp_parser_template_id): Likewise.* cvt.c (warn_ref_binding): Likewise.(convert_to_reference): Likewise.(ocp_convert): Likewise.(convert_to_void): Use error instead of pedwarn.* error.c (cp_cpp_error): Use pedantic_warning_kind.* decl.c (compute_array_index_type): Use constant_expression_error.2008-03-01 Douglas Gregor <doug.gregor@gmail.com>* parser.c (cp_lexer_next_token_is_decl_specifier_keyword): Notethat auto is either a storage class or a simple type specifier,depending on the dialect.(cp_parser_decl_specifier_seq): Complain about `auto' as a storagespecifier in C++98 mode, error in C++0x mode (since we don'tsupport auto as a type specifier, yet).(cp_parser_storage_class_specifier_opt): Don't treat `auto' as astorage specifier in C++0x mode.(cp_parser_simple_type_specifier): Parse `auto' as asimple-type-specifier, but error because we don't support it yet.2008-02-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org>* parser.c (cp_parser_nonclass_name): New.(cp_parser_pseudo_destructor_name): Use it instead ofcp_parser_type_name.(cp_parser_type_name): Move code to cp_parser_nonclass_name.2008-02-29 Tom Tromey <tromey@redhat.com>* parser.c (struct cp_token) <input_file_stack_index>: Remove.(cp_lexer_get_preprocessor_token): Update.(cp_lexer_set_source_position_from_token): Don't callrestore_input_file_stack.* lex.c (cxx_init): Don't use push_srcloc or pop_srcloc.2008-02-28 Richard Guenther <rguenther@suse.de>Revert:2008-02-26 Richard Guenther <rguenther@suse.de>* decl.c (duplicate_decls): Remove decl from global mappingbefore ggc_freeing it.2008-02-27 Jakub Jelinek <jakub@redhat.com>PR c++/35368* rtti.c: Include c-pragma.h.(push_abi_namespace, pop_abi_namespace): New functions.(build_dynamic_cast_1, tinfo_base_init, get_pseudo_ti_index,create_tinfo_types, emit_support_tinfos): Use them.* Make-lang.in (cp/rtti.o): Depend on $(C_PRAGMA_H).2008-02-26 Jason Merrill <jason@redhat.com>PR c++/35315* decl.c (grokdeclarator): Allow a typedef of an unnamed structto name the struct for linkage purposes even if it has attributes.(start_decl): In that case, set ATTR_FLAG_TYPE_IN_PLACE.2008-02-26 Tom Tromey <tromey@redhat.com>* parser.c (eof_token): Remove old location code.(check_empty_body): Remove test of USE_MAPPED_LOCATION.* decl2.c (generate_ctor_or_dtor_function): Remove old locationcode.(cp_write_global_declarations): Likewise.* lex.c (cxx_init): Remove old location code.(handle_pragma_implementation): Remove test ofUSE_MAPPED_LOCATION.* pt.c (tsubst): Remove old location code.* error.c (cp_print_error_function): Remove test ofUSE_MAPPED_LOCATION.* decl.c (pop_label): Remove old location code.(finish_function): Likewise.2008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>PR 26264* call.c (magic_varargs_p): Remove BUILT_IN_STDARG_START.2008-02-26 Richard Guenther <rguenther@suse.de>* decl.c (duplicate_decls): Remove decl from global mappingbefore ggc_freeing it.2008-02-26 Paolo Carlini <pcarlini@suse.de>PR c++/35323* name-lookup.c (arg_assoc_type): Handle FIXED_POINT_TYPE.2008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>* typeck.c (build_class_member_access_expr): Add appropriateOPT_W* parameter to warning.(build_reinterpret_cast_1): Likewise.* name-lookup.c (push_overloaded_decl): Likewise.2008-02-25 Paolo Carlini <pcarlini@suse.de>PR c++/35333* error.c (dump_expr): Handle CONJ_EXPR.2008-02-25 Paolo Carlini <pcarlini@suse.de>PR c++/35338* error.c (dump_type): Handle FIXED_POINT_TYPE.(dump_expr): Handle FIXED_CST.2008-02-24 Jason Merrill <jason@redhat.com>* parser.c (cp_parser_declaration): Handle "inline namespace".(cp_parser_namespace_definition): Likewise.PR c++/33486* name-lookup.c (arg_assoc_namespace): Look down into inlinenamespaces, too.2008-02-23 Manuel Lopez-Ibanez <manu@gcc.gnu.org>* typeck.c (check_for_casting_away_constness): Use 1 singleargument, the type of cast, to decide what diagnostics generate.(build_static_cast_1): Remove unused code. Update call tocheck_for_casting_away_constness.(build_reinterpret_cast_1): Update call tocheck_for_casting_away_constness.(build_const_cast_1): Likewise.2008-02-24 Paolo Carlini <pcarlini@suse.de>* error.c (dump_expr): Don't deal directly with NEW_EXPR (andVEC_NEW_EXPR), forward to pp_expression.* cxx-pretty-print.c (pp_cxx_new_expression): Fix FIXME.2008-02-24 Danny Smith <dannysmith@users.sourceforge.net>PR c++/34749* friend.c (do_friend): Call cplus_decl_attributes earlier.2008-02-22 Andrew Pinski <andrew_pinski@playstation.sony.com>PR C++/34715* decl.c (duplicate_decls): Merge DECL_DISREGARD_INLINE_LIMITS fortemplate decls' function decl.2008-02-22 Paolo Carlini <pcarlini@suse.de>PR c++/35282Revert:2008-02-14 Paolo Carlini <pcarlini@suse.de>PR c++/28743* pt.c (determine_specialization): In case of function templates,when the type of DECL does not match FN there is no match.2008-02-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>PR c/19999* typeck.c (build_binary_op): Warn about floating pointcomparisons if FLOAT_TYPE_P, not only for REAL_TYPE.2008-02-19 Jason Merrill <jason@redhat.com>PR c++/34950* pt.c (resolve_overloaded_unification): Set processing_template_declwhile we look for possible bindings.2008-02-19 Jakub Jelinek <jakub@redhat.com>PR c++/35028* cp-gimplify.c (cxx_omp_clause_apply_fn): Handle vararg copy ctors.PR c++/34964PR c++/35244* semantics.c (finish_omp_threadprivate): Do nothing for error_operand_pvars. Afterwards ensure v is VAR_DECL.PR c++/35078* parser.c (cp_parser_omp_for_loop): If DECL has REFERENCE_TYPE, don'tcall cp_finish_decl.* semantics.c (finish_omp_for): Fail if DECL doesn't have integral typeearly.2008-02-15 Douglas Gregor <doug.gregor@gmail.com>PR c++/35023PR c++/35024PR c++/35026* pt.c (finish_member_template_decl): If the type in a TYPE_DECLis error_mark_node, return an error early.(find_parameter_packs_r): Pass the pointer set along to recursivecalls of cp_walk_subtrees; don't try to manage the pointer setourselves.(uses_parameter_packs): Pass the pointer set to cp_walk_tree.(make_pack_expansion): Ditto.(check_for_bare_parameter_packs): Ditto. Also, don't bother takinga second pass through the tree with find_parameter_packs_r; thatsecond pass no longer does anything.(push_template_decl_real): If we have an erroneous declaration,set its type to error_mark_node before returning an error.2008-02-14 Douglas Gregor <doug.gregor@gmail.com>PR c++/34050* pt.c (tsubst_initializer_list): Deal with the use ofVOID_TYPE_NODE to indicate value-initialization of the bases.2008-02-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org>Jason Merrill <jason@redhat.com>PR c++/5645PR c++/11159* class.c (type_has_user_nondefault_constructor): New fn.* cp-tree.h: Declare it.* init.c (emit_mem_initializers): Use it for -W warning aboutmissing base initializer.2008-02-14 Paolo Carlini <pcarlini@suse.de>PR c++/28743* pt.c (determine_specialization): In case of function templates,when the type of DECL does not match FN there is no match.2008-02-13 Jakub Jelinek <jakub@redhat.com>Manuel Lopez-Ibanez <manu@gcc.gnu.org>PR c++/35138* parser.c (cp_parser_pseudo_destructor_name): If next tokensare not identifier :: ~, return before calling cp_parser_type_name.2008-02-13 Jason Merrill <jason@redhat.com>PR c++/34962, c++/34937, c++/34939* decl2.c (is_late_template_attribute): Always defer attributesvector_size and weak.PR c++/34774* pt.c (value_dependent_expression_p): Look into DECL_INITIALof enumerators, too.2008-02-12 Jason Merrill <jason@redhat.com>PR c++/34824* call.c (convert_like_real): Pass LOOKUP_NO_CONVERSION to build_tempif we're doing conversions to call a user-defined conversion function.2008-02-12 Steven Bosscher <steven@gcc.gnu.org>PR c++/29048* semantics.c (finish_qualified_id_expr): Avoid duplicate accesscheck here, too.2008-02-12 Jakub Jelinek <jakub@redhat.com>PR c++/34862* init.c (build_new_1): Don't create placement_expr beforeconstructing alloc_call. Verify that the pointer is passed byvalue to operator new.2008-02-11 Jason Merrill <jason@redhat.com>PR c++/35097* pt.c (tsubst): Don't look up a template typedef in an explicitspecialization.2008-02-11 Douglas Gregor <doug.gregor@gmail.com>PR c++/35113* tree.c (cp_build_qualified_type_real): When building acv-qualified array type, build it as a unique type withbuild_cplus_array_type_1 and then adopt the unqualified type'smain variant.2008-02-11 Paolo Carlini <pcarlini@suse.de>PR c++/35077* decl.c (groktypename): Check grokdeclarator return.2008-02-10 Jason Merrill <jason@redhat.com>PR c++/34094* decl2.c (cp_write_global_declarations): Don't write out staticdata members with DECL_IN_AGGR_P set.2008-02-08 Jason Merrill <jason@redhat.com>PR c++/35116* tree.c (build_target_expr_with_type): Handle void initializer.(bot_manip): Remap slot before recursing.2008-02-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>PR other/35107* Make-lang.in (cc1plus-dummy, cc1plus): Add $(GMPLIBS).2008-02-06 Alexandre Oliva <aoliva@redhat.com>PR c++/35056* tree.c: Include tree-flow.h.(build_target_expr): Check type compatibility.* Make-lang.in (cp/tree.o): Depend on $(TREE_FLOW_H).* call.c (convert_like_real): Convert bitfield to expected type.2008-02-06 Douglas Gregor <doug.gregor@gmail.com>PR c++/35049PR c++/35096* typeck.c (structural_comptypes): Call cp_comptypes.(comptypes): New; called from the C/C++ common bits to performstrict checks.(cp_comptypes): Renamed from comptypes, which is already used,with a different signature, by the C++ front end.(build_reinterpret_cast_1): Call cp_comptypes.(ptr_reasonably_similar): Ditto.* decl.c (decls_match): Ditto.* cvt.c (convert_to_reference): Ditto.* cp-tree.h (same_type_p): Ditto.(same_or_base_type_p): Ditto.(comptypes): Rename to cp_comptypes.* pt.c (canonical_type_parameter): Call cp_comptypes.2008-02-05 Jakub Jelinek <jakub@redhat.com>PR c++/33553* pt.c (tsubst) <case INTEGER_TYPE>: Don't issue error if max isvalue dependent expression.2008-02-05 Douglas Gregor <doug.gregor@gmail.com>PR c++/35074* decl2.c (save_template_attributes): When we're modifying theTYPE_MAIN_VARIANT to add new attributes, be sure to also modifyall of the other variants to add those same attributes. Otherwise,the main variant will be inconsistent with those other variants.2008-02-04 Richard Guenther <rguenther@suse.de>PR java/35035* decl.c (record_builtin_java_type): Make jboolean ainteger type again where its mode doesn't match that of bool.2008-02-02 Jason Merrill <jason@redhat.com>Mark Mitchell <mark@codesourcery.com>PR c++/33916* init.c (build_value_init_1): New function.(build_value_init): New function.* typeck2.c (build_functional_cast): Call it.* cp-gimplify.c (cp_gimplify_init_expr): Handle its output.* cp-tree.h (TYPE_HAS_USER_CONSTRUCTOR): Rename fromTYPE_HAS_CONSTRUCTOR.* class.c (finish_struct_bits, maybe_warn_about_overly_private_class,add_implicitly_declared_members): Adjust.(check_field_decls): Adjust. Remove warnings about reference/constin class without constructor.(check_bases_and_members): Adjust. Give those warnings here instead.* decl.c (fixup_anonymous_aggr): Adjust.(check_initializer): Adjust, clarify logic slightly.(grok_special_member_properties): Adjust, only set if user-provided.* rtti.c (create_tinfo_types): Don't set.* cvt.c (ocp_convert): Remove exception for vtable_entry_type et al.Use same_type_ignoring_top_level_qualifiers_p.* pt.c (check_explicit_specialization): Adjust.(instantiate_class_template): Adjust.2008-01-31 Douglas Gregor <doug.gregor@gmail.com>Jakub Jelinek <jakub@redhat.com>PR c++/34935PR c++/34936* typeck.c (structural_comptypes): Handle comparisons ofVOID_TYPE, BOOLEAN_TYPE, INTEGER_TYPE, FIXED_POINT_TYPE, andREAL_TYPE nodes.* mangle.c (write_builtin_type): Map down to the canonical type,which will be one of the predefined type nodes.2008-01-29 Michael Meissner <michael.meissner@amd.com>PR 35004* cp-tree.h (struct full_lang_decl): Make tree_code bitfield 16bits to allow for expansion of the number of middle end treecodes.2008-01-29 Douglas Gregor <doug.gregor@gmail.com>PR c++/34055PR c++/34103PR c++/34219PR c++/34606PR c++/34753PR c++/34754PR c++/34755PR c++/34919PR c++/34961* typeck.c (check_return_expr): Tweak call tocheck_for_bare_parameter_packs.* class.c (add_method): Be careful with error_mark_nodes.* cp-tree.h (check_for_bare_parameter_packs): Remove "*" fromsignature.* pt.c (struct find_parameter_pack_data): RemoveSET_PACKS_TO_ERROR.(find_parameter_packs_r): Don't use SET_PACKS_TO_ERROR.(uses_parameter_packs): Don't set SET_PACKS_TO_ERROR.(make_pack_expansion): Ditto.(check_for_bare_parameter_packs): Parameter is now a tree, not atree*.(process_template_parm): Tweak call tocheck_for_bare_parameter_packs.(push_template_decl_real): Tweak calls tocheck_for_bare_parameter_packs. If bare parameter packs are foundin the list of exceptions, clear out that list after giving anerror.* semantics.c (finish_cond): Tweak call tocheck_for_bare_parameter_packs.(finish_expr_stmt): Ditto.(finish_for_expr): Ditto.(finish_switch_cond): Ditto.(finish_mem_initializers): Ditto.(finish_member_declaration): Ditto.(finish_static_assert): Check for bare parameter packs in thecondition.* decl2.c (cplus_decl_attributes): Check for bare parameter packs in theattributes of a declaration.* parser.c (cp_parser_using_declaration): Tweak call tocheck_for_bare_parameter_packs.(cp_parser_base_clause): Ditto.2008-01-28 Jason Merrill <jason@redhat.com>PR c++/35007* class.c (build_base_path): Fix !want_pointer case.2008-01-27 Jason Merrill <jason@redhat.com>PR c++/27177* class.c (build_base_path): Fix previous change.2008-01-26 Jakub Jelinek <jakub@redhat.com>PR c++/34965* error.c (dump_expr): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPRand TRUTH_XOR_EXPR.2008-01-26 Richard Guenther <rguenther@suse.de>PR c++/34235* typeck.c (build_binary_op): Remove code to shorten compares.2008-01-25 Richard Guenther <rguenther@suse.de>PR c++/33887* decl.c (record_builtin_java_type): Make __java_booleana variant of bool.* typeck.c (structural_comptypes): Move TYPE_FOR_JAVA checkafter TYPE_MAIN_VARIANT check.2008-01-25 Jason Merrill <jason@redhat.com>PR c++/27177* class.c (build_base_path): Don't mess with virtual access ifskip_evaluation.* call.c (standard_conversion): Don't check whether source typeis complete.* decl2.c (is_late_template_attribute): Don't defer attributevisibility just because the type is dependent.2008-01-25 Jason Merrill <jason@redhat.com>Mark Mitchell <mark@codesourcery.com>PR c++/31780* call.c (standard_conversion): Allow conversion from integer/realto complex.(compare_ics): Such a conversion is worse than a normal arithmeticconversion.2008-01-25 Richard Guenther <rguenther@suse.de>PR c++/33887* cp-lang.c (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Defineto true.2008-01-24 Paolo Carlini <pcarlini@suse.de>PR c++/34603* pt.c (push_template_decl_real): Return error_mark_node in caseof template definition of non-template.2008-01-24 Jason Merrill <jason@redhat.com>PR c++/34913* decl2.c (is_late_template_attribute): Defer any attribute withdependent args. Also defer type attributes if the type is dependent.2008-01-22 Jakub Jelinek <jakub@redhat.com>Alexandre Oliva <aoliva@redhat.com>PR c++/33984* call.c (reference_binding): For bitfields use the declared bitfieldtype.(add_builtin_candidates): Likewise.* class.c (layout_class_type): For bitfields copy over theoriginal type quals.2008-01-22 Jason Merrill <jason@redhat.com>PR c++/28560* decl.c (groktypename): Also ignore attributes on dependentpossibly-class types.PR c++/34912* friend.c (do_friend): Check for prior declaration of a friendfunction of a local class.* name-lookup.c (lookup_name_innermost_nonclass_level):No longer static.* name-lookup.h: Declare it.2008-01-22 Tom Tromey <tromey@redhat.com>PR c++/34829:* init.c (build_new_1): Only disallow Java aggregates.2008-01-22 Jakub Jelinek <jakub@redhat.com>PR c++/34607* semantics.c (finish_omp_for): Don't call c_finish_omp_forif decl or init is error_mark_node.PR c++/34918* error.c (dump_expr): Handle VECTOR_CST.2008-01-21 Jason Merrill <jason@redhat.com>PR c++/33959* pt.c (tsubst_aggr_type): Make sure our context is complete.PR c++/34573* pt.c (retrieve_local_specialization): Robustify.(tsubst_pack_expansion, tsubst_decl): Remove redundant checks.PR c++/34846* pt.c (tsubst): Only call retrieve_local_specialization if theoriginal typedef was in a function template.PR c++/34196* decl.c (wrap_cleanups_r): Set TRY_CATCH_IS_CLEANUP.2008-01-21 Richard Guenther <rguenther@suse.de>PR c++/34850* error.c (cp_print_error_function): Deal with recursiveBLOCK trees.2008-01-20 Paolo Carlini <pcarlini@suse.de>PR c++/34891* error.c (dump_expr): Deal with VIEW_CONVERT_EXPR.2008-01-20 Paolo Carlini <pcarlini@suse.de>PR c++/34776PR c++/34486* name-lookup.c (do_class_using_decl): Do not call constructor_name_pon non-IS_AGGR_TYPE scope.(constructor_name_p): Assert IS_AGGR_TYPE.2008-01-18 Ian Lance Taylor <iant@google.com>PR c++/33407* decl.c (duplicate_decls): Copy DECL_IS_OPERATOR_NEW flag.(grok_op_properties): For NEW_EXPR and VEC_NEW_EXPR setDECL_IS_OPERATOR_NEW flag.2008-01-16 Richard Guenther <rguenther@suse.de>PR c++/33819* typeck.c (is_bitfield_expr_with_lowered_type): Recursefor conversions to type variants.2008-01-15 Andreas Tobler <a.tobler@schweiz.org>* parser.c (cp_parser_template_parameter): Fix C90 issue with mixingdeclaration and code. Update copyright year.2008-01-15 Douglas Gregor <doug.gregor@gmail.com>PR c++/34399* friend.c (do_friend): Don't query TYPE_BEING_DEFINED unless weknow we have a class type.2008-01-15 Douglas Gregor <doug.gregor@gmail.com>PR c++/34751* pt.c (coerce_template_parameter_pack): When substituting intothe type of a non-type template parameter pack. use thededuced/substituted arguments.* parser.c (declarator_can_be_parameter_pack): A pointer-to-membercan be a parameter pack with the ellipsis following it. When wehave an erroneous declaration, allow it to be a parameter pack.(cp_parser_template_parameter): Complain about defaultarguments on non-type template parameter packs, and parse themusing the new cp_parser_default_argument.(cp_parser_parameter_declaration): Complain about parameter packswith default arguments. Move parsing of default arguments into anew function, cp_parser_default_argument.(cp_parser_default_argument): New; extracted fromcp_parser_parameter_declaration.2008-01-15 Douglas Gregor <doug.gregor@gmail.com>PR c++/34051PR c++/34055PR c++/34102PR c++/34103* typeck.c (check_return_expr): If there are bare parameter packsin the return value, set it to error_mark_node.* tree.c (cp_walk_subtrees): Walk USING_DECL nodes.* pt.c (find_parameter_packs_r): Look at the type ofIDENTIFIER_NODEs (e.g., for user-defined conversions).(check_for_bare_parameter_packs): Flip the result: now returnsTRUE when there were bare parameter packs, FALSE otherwise.(push_template_decl_real): Deal with flipped result ofcheck_for_bare_parameter_packs.* semantics.c (finish_cond): If there are bare parameter packs inthe conditional, set it to error_mark_node.(finish_expr_stmt): If there are bare parameter packs in theexpression, set it to error_mark_node.(finish_for_expr): Ditto.(finish_switch_cond): If there are bare parameter packs inthe conditional, set it to error_mark_node.(finish_mem_initializers): If there are bare parameter packs inthe member initializer, set it to error_mark_node.(finish_member_declaration): Check the attributes of thedeclaration for bare parameter packs, and remove the attributes ifany have bare parameter packs.* parser.c (cp_parser_using_declaration): Check the usingdeclaration for bare parameter packs.(cp_parser_base_clause): If there are bare parameter packs in abase specifier, don't add it to the chain.2008-01-15 Douglas Gregor <doug.gregor@gmail.com>PR c++/34314* error.c (dump_simple_decl): Display ellipsis for templatenon-type parameter packs.(dump_decl): Display ellipsis for template type parameter packs.(dump_template_decl): Display ellipsis for template templateparameter packs.* pt.c (redeclare_class_template): When redeclaring a classtemplate, check for collisions between template parameters andtemplate parameter packs.2008-01-15 Douglas Gregor <doug.gregor@gmail.com>PR c++/33964* pt.c (process_partial_specialization): Don't mark templateparameters that occur in non-deduced contexts.(struct pair_fn_data): Add include_nondeduced_p.(for_each_template_parm_r): Only visit non-deduced contexts ifinclude_nondeduced_p is set.(for_each_template_parm): Added parameter include_nondeduced_p,which states whether template parameters found in non-deducedcontexts should be visited.(uses_template_parms): Visit all template parameters, even thosein non-deduced contexts.2008-01-15 Douglas Gregor <doug.gregor@gmail.com>PR c++/34052* pt.c (check_default_tmpl_args): Check for parameter packs thataren't at the end of a primary template.(push_template_decl_real): Remove check for parameter packs thataren't at the end of a primary template; that now happens incheck_default_tmpl_args.* semantics.c (finish_template_template_parm): Usecheck_default_tmpl_args to check for errors in the templateparameter list.2008-01-12 Doug Kwan <dougkwan@google.com>* decl.c: (grokdeclarator): Use OPT_Wignored_qualifiersinstead of OPT_Wreturn_type in warning due to ignored return typequalifiers.* pt.c: (tsubst_function_type): Use OPT_Wignored_qualifiersinstead of OPT_Wreturn_type in warning due to ignored return typequalifiers.2008-01-08 Jakub Jelinek <jakub@redhat.com>PR c++/33890* semantics.c (finish_omp_for): Don't callfold_build_cleanup_point_expr if processing_template_decl.2008-01-04 Paolo Carlini <pcarlini@suse.de>Jakub Jelinek <jakub@redhat.com>PR c++/34611* error.c (dump_template_argument): Deal with TREE_LIST.2008-01-01 Douglas Gregor <doug.gregor@gmail.com>* parser.c (cp_parser_check_decl_spec): Don't warn about "longlong" in C++0x mode; change the warning to note that "long long"is only unsupported in C++98 mode.Copyright (C) 2008 Free Software Foundation, Inc.Copying and distribution of this file, with or without modification,are permitted in any medium without royalty provided the copyrightnotice and this notice are preserved.
Go to most recent revision | Compare with Previous | Blame | View Log
