| 2013-12-23 Jason Merrill <jason@redhat.com> |
| |
| PR c++/59271 |
| * lambda.c (build_capture_proxy): Use build_cplus_array_type. |
| |
| PR c++/59349 |
| * parser.c (cp_parser_lambda_introducer): Handle empty init. |
| |
| 2013-12-23 Stuart Hastings <stuart@apple.com> |
| Bill Maddox <maddox@google.com> |
| Jason Merrill <jason@redhat.com> |
| |
| PR c++/41090 |
| * optimize.c (can_alias_cdtor, populate_clone_array): Split out |
| from maybe_clone_body. |
| (maybe_thunk_body): New function. |
| (maybe_clone_body): Call it. |
| * mangle.c (write_mangled_name): Remove code to suppress |
| writing of mangled name for cloned constructor or destructor. |
| (write_special_name_constructor): Handle decloned constructor. |
| (write_special_name_destructor): Handle decloned destructor. |
| * method.c (trivial_fn_p): Handle decloning. |
| * semantics.c (expand_or_defer_fn_1): Clone after setting linkage. |
| |
| 2013-12-23 Marek Polacek <polacek@redhat.com> |
| |
| PR c++/59111 |
| * search.c (lookup_conversions): Return NULL_TREE if !CLASS_TYPE_P. |
| |
| 2013-12-20 Trevor saunders <tsaunders@mozilla.com> |
| |
| * semantics.c (build_anon_member_initialization): Replace |
| stack_vec<T, N> with auto_vec<T, N>. |
| |
| 2013-12-18 Balaji V. Iyer <balaji.v.iyer@intel.com> |
| |
| * parser.c (cp_parser_cilk_simd_clause_name): Changed cilk_clause_name |
| to omp_clause_name. |
| |
| 2013-12-17 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * parser.c (cp_parser_omp_parallel): Fix description. |
| |
| 2013-12-12 Jason Merrill <jason@redhat.com> |
| |
| PR c++/58954 |
| * pt.c (resolve_overloaded_unification): Use instantiate_template. |
| |
| 2013-12-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/58627 |
| * class.c (resolve_address_of_overloaded_function): Don't call ggc_free |
| on targs. |
| |
| 2013-12-11 Balaji V. Iyer <balaji.v.iyer@intel.com> |
| |
| * cp-tree.h (cilk_valid_spawn): New prototype. |
| (gimplify_cilk_spawn): Likewise. |
| (create_try_catch_expr): Likewise. |
| * decl.c (finish_function): Insert Cilk function-calls when a |
| _Cilk_spawn is used in a function. |
| * parser.c (cp_parser_postfix_expression): Added RID_CILK_SPAWN and |
| RID_CILK_SYNC cases. |
| * cp-cilkplus.c (set_cilk_except_flag): New function. |
| (set_cilk_except_data): Likewise. |
| (cilk_install_body_with_frame_cleanup): Likewise. |
| * except.c (create_try_catch_expr): Likewise. |
| * parser.h (IN_CILK_SPAWN): New #define. |
| * pt.c (tsubst_expr): Added CILK_SPAWN_STMT and CILK_SYNC_STMT cases. |
| * semantics.c (potential_constant_expression_1): Likewise. |
| * typeck.c (cp_build_compound_expr): Reject a spawned function in a |
| compound expression. |
| (check_return_expr): Reject a spawned function in a return expression. |
| * cp-gimplify.c (cp_gimplify_expr): Added a CILK_SPAWN_STMT and |
| CALL_EXPR case. Added handling of spawned function in MODIFY_EXPR |
| and INIT_EXPR. |
| |
| 2013-12-09 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/59435 |
| * parser.c (cp_parser_cache_defarg): sizeof ... ( p ) can |
| occur in a default argument too. |
| |
| 2013-12-06 Caroline Tice <cmtice@google.com> |
| |
| Submitting patch from Stephen Checkoway, s@cs.jhu.edu |
| * vtable-class-hierarchy.c (init_functions): Make the libvtv |
| function decls externally visible. |
| |
| 2013-12-06 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| * decl2.c: Remove struct tags when referring to class varpool_node. |
| |
| 2013-12-05 Jason Merrill <jason@redhat.com> |
| |
| PR c++/59044 |
| PR c++/59052 |
| * pt.c (most_specialized_class): Use the partially instantiated |
| template for deduction. Drop the TMPL parameter. |
| |
| 2013-12-05 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| * decl.c (duplicate_decls): Replace pairs of errors and permerrors |
| with error + inform (permerror + inform, respectively). |
| |
| 2013-12-04 Joseph Myers <joseph@codesourcery.com> |
| |
| PR c/52023 |
| * typeck.c (cxx_sizeof_or_alignof_type): Update call to |
| c_sizeof_or_alignof_type. |
| |
| 2013-12-04 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/59268 |
| * pt.c (tsubst_copy_and_build): Handle POINTER_PLUS_EXPR. |
| |
| 2013-11-29 Marek Polacek <polacek@redhat.com> |
| |
| PR sanitizer/59331 |
| * decl.c (compute_array_index_type): Don't build COMPOUND_EXPR for |
| instrumentation. |
| |
| 2013-11-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/59297 |
| * semantics.c (finish_omp_atomic): Call finish_expr_stmt |
| rather than add_stmt. |
| |
| 2013-11-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * g++spec.c (TIMELIB): Define. |
| (WITHLIBC, SKIPOPT): Adjust values. |
| (lang_specific_driver): Add TIME_LIBRARY if not passed explicitly. |
| |
| 2013-11-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/59310 |
| * parser.c (cp_parser_omp_target): Call keep_next_level only |
| if flag_openmp. |
| |
| 2013-11-27 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/58647 |
| * semantics.c (cxx_eval_constant_expression, [COMPONENT_REF]): |
| Handle function COMPONENT_REFs. |
| |
| 2013-11-27 Aldy Hernandez <aldyh@redhat.com> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| * semantics.c (finish_omp_clauses): For #pragma omp declare simd |
| linear clause step call maybe_constant_value. |
| |
| 2013-11-27 Tom de Vries <tom@codesourcery.com> |
| Marc Glisse <marc.glisse@inria.fr> |
| |
| PR c++/59032 |
| * typeck.c (cp_build_unary_op): Allow vector increment and decrement. |
| |
| 2013-11-27 Tom de Vries <tom@codesourcery.com> |
| Marc Glisse <marc.glisse@inria.fr> |
| |
| PR middle-end/59037 |
| * semantics.c (cxx_fold_indirect_ref): Don't create out-of-bounds |
| BIT_FIELD_REF. |
| |
| 2013-11-26 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/58874 |
| * parser.c (cp_parser_late_parsing_for_member): For OpenMP UDRs |
| pass 2 instead of 0 to finish_function. |
| |
| 2013-11-26 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/58700 |
| * decl.c (grokdeclarator): Don't try to pass declarator->id_loc |
| to build_lang_decl_loc when declarator is null. |
| |
| 2013-11-26 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| * cvt.c (cp_convert_and_check): Avoid calling cp_convert |
| unnecessarily. |
| |
| 2013-11-25 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/54485 |
| * decl.c (duplicate_decls): Enforce 8.3.6/6 about default arguments |
| for member functions of class templates. |
| |
| 2013-11-25 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/58607 |
| * semantics.c (check_constexpr_ctor_body): Check for BIND_EXPR_VARS. |
| |
| 2013-11-25 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/58810 |
| * decl.c (grokdeclarator): Don't handle qualified free functions here, |
| leave the diagnostic to grokfndecl. |
| |
| 2013-11-25 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/59080 |
| * pt.c (unify): Don't call unify_array_domain with a NULL_TREE |
| third argument. |
| |
| PR c++/59096 |
| * pt.c (apply_late_template_attributes): Check that TREE_VALUE |
| isn't NULL_TREE in the attribute_takes_identifier_p case. |
| |
| 2013-11-25 Adam Butcher <adam@jessamine.co.uk> |
| |
| PR c++/59112 |
| PR c++/59113 |
| * parser.c (cp_parser_parameter_declaration_clause): Disallow implicit |
| function templates in local functions unless defining a lambda. |
| |
| 2013-11-23 Easwaran Raman <eraman@google.com> |
| |
| PR c++/59031 |
| * call.c (build_new_method_call_1): Comnpare function context |
| with BASELINK_BINFO type rather than instance type before |
| marking the call with LOOKUP_NONVIRTUAL. |
| |
| 2013-11-23 Jason Merrill <jason@redhat.com> |
| |
| PR c++/58868 |
| * init.c (build_aggr_init): Don't clobber the type of init |
| if we got an INIT_EXPR back from build_vec_init. |
| (build_vec_init): Do digest_init on trivial initialization. |
| |
| 2013-11-23 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| |
| PR c++/58525 |
| * call.c (build_operator_new_call): Add flag_exceptions check. |
| * decl.c (compute_array_index_type): Ditto. |
| * init.c (build_new_1): Ditto. |
| (build_vec_init): Ditto. |
| |
| 2013-11-22 Jakub Jelinek <jakub@redhat.com> |
| |
| * cp-gimplify.c: Include target.h and c-family/c-ubsan.h. |
| (cp_ubsan_maybe_instrument_return): New function. |
| (cp_genericize): Call it if -fsanitize=return. |
| |
| * decl2.c: Include asan.h. |
| (one_static_initialization_or_destruction): If -fsanitize=address, |
| init is non-NULL and guard is NULL, set |
| vnode->dynamically_initialized. |
| (do_static_initialization_or_destruction): Call |
| __asan_{before,after}_dynamic_init around the static initialization. |
| |
| 2013-11-22 Andrew MacLeod <amacleod@redhat.com> |
| |
| * class.c: Add required include files from gimple.h. |
| * cp-gimplify.c: Likewise |
| * decl2.c: Likewise |
| * init.c: Likewise |
| * optimize.c: Likewise |
| * pt.c: Likewise |
| * semantics.c: Likewise |
| * tree.c: Likewise |
| * typeck.c: Likewise |
| * vtable-class-hierarchy.c: Likewise |
| |
| 2013-11-22 David Malcolm <dmalcolm@redhat.com> |
| |
| * call.c (build_integral_nontype_arg_conv): Remove use of |
| EXPR_LOC_OR_HERE macro. |
| (convert_like_real): Likewise. |
| (convert_arg_to_ellipsis): Likewise. |
| (build_cxx_call): Likewise. |
| (perform_implicit_conversion_flags): Likewise. |
| (initialize_reference): Likewise. |
| * cvt.c (cp_convert_to_pointer): Likewise. |
| (convert_to_reference): Likewise. |
| (ocp_convert): Likewise. |
| (convert_to_void): Likewise. |
| * decl.c (pop_label): Update comment. |
| (pop_switch): Remove use of EXPR_LOC_OR_HERE macro. |
| (check_tag_decl): Remove use of in_system_header macro. |
| (make_rtl_for_nonlocal_decl): Remove use of input_filename |
| macro. |
| (compute_array_index_type): Remove use of in_system_header |
| macro. |
| (grokdeclarator): Likewise. |
| * error.c (dump_global_iord): Remove use of input_filename |
| macro. |
| (location_of): Remove use of EXPR_LOC_OR_HERE macro. |
| (maybe_warn_cpp0x): Remove use of in_system_header macro. |
| * init.c (build_new_1): Remove use of EXPR_LOC_OR_HERE macro. |
| * lex.c (handle_pragma_interface): Remove use of input_filename |
| macro. |
| (handle_pragma_implementation): Likewise. |
| (cxx_make_type): Likewise. |
| (in_main_input_context): Likewise. |
| * name-lookup.c (push_binding_level): Remove use of |
| input_line macro. |
| (leave_scope): Likewise. |
| (resume_scope): Likewise. |
| * parser.c (cp_parser_unqualified_id): Remove use of |
| in_system_header macro. |
| (cp_parser_cast_expression): Likewise. |
| (cp_parser_declaration_seq_opt): Likewise. |
| (cp_parser_enumerator_list): Likewise. |
| (cp_parser_parameter_declaration_clause): Likewise. |
| (cp_parser_exception_specification_opt): Likewise. |
| * pt.c (unify_arg_conversion): Remove use of EXPR_LOC_OR_HERE |
| macro. |
| (convert_nontype_argument): Likewise. |
| (push_tinst_level): Remove use of in_system_header macro. |
| (tsubst_copy_and_build): Remove use of EXPR_LOC_OR_HERE |
| macros. |
| (do_decl_instantiation): Remove use of in_system_header macro. |
| (do_type_instantiation): Likewise. |
| * semantics.c (finish_call_expr): Remove use of EXPR_LOC_OR_HERE |
| macro. |
| (begin_class_definition): Remove use of input_filename macro. |
| (cxx_eval_call_expression): Remove use of EXPR_LOC_OR_HERE |
| macro. |
| (cxx_eval_constant_expression): Likewise. |
| (potential_constant_expression_1): Likewise. |
| * typeck.c (decay_conversion): Likewise. |
| (rationalize_conditional_expr): Likewise. |
| (build_x_compound_expr_from_list): Likewise. |
| (convert_for_assignment): Likewise. |
| * typeck2.c (check_narrowing): Likewise. |
| |
| 2013-11-22 Trevor Saunders <tsaunders@mozilla.com> |
| |
| * parser.c, semantics.c: Change some local variables from vec to |
| auto_vec or stack_vec. |
| |
| 2013-11-18 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * decl.c (reshape_init_array_1): Use tree_to_uhwi rather than |
| tree_low_cst. |
| (grokdeclarator): Update comment to refer to tree_to_[su]hwi rather |
| than tree_low_cst. |
| |
| 2013-11-18 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * call.c, class.c, decl.c, error.c: Replace tree_low_cst (..., 1) with |
| tree_to_uhwi throughout. |
| |
| 2013-11-18 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * class.c, dump.c, error.c, init.c, method.c, parser.c, semantics.c: |
| Replace tree_low_cst (..., 0) with tree_to_shwi throughout. |
| |
| 2013-11-18 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * decl.c: Replace host_integerp (..., 1) with tree_fits_uhwi_p |
| throughout. |
| |
| 2013-11-18 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * error.c, init.c, parser.c, semantics.c: Replace |
| host_integerp (..., 0) with tree_fits_shwi_p throughout. |
| |
| 2013-11-17 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/59123 |
| * decl.c (validate_constexpr_redeclaration): Redeclarations of |
| variables can differ in constexpr. |
| |
| 2013-11-16 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/29143 |
| * semantics.c (finish_call_expr): Ensure that for OVERLOADs too |
| '(&f)(...)' is the same as '(f)(...)', per 13.3.1.1. |
| |
| 2013-11-15 Aldy Hernandez <aldyh@redhat.com> |
| |
| * Make-lang.in (CXX_AND_OBJCXX_OBJS): Depend on cp/cp-cilkplus.o. |
| * cp-cilkplus.c: New file. |
| * cp-tree.h (cpp_validate_cilk_plus_loop): Protoize. |
| * parser.c (cp_parser_cilk_simd): New. |
| (cp_debug_parser): Add case for IN_CILK_SIMD_FOR. |
| (cp_parser_jump_statement): Same. |
| (cp_parser_omp_for_cond): Add new argument. |
| Add case for NE_EXPR. |
| (cp_parser_omp_for_loop): Pass new argument to |
| cp_parser_omp_for_cond. |
| Handle CILK_SIMD nodes. |
| Abstract initilization code to.. |
| (cp_parser_omp_for_loop_init): ...here. |
| (cp_parser_pragma): Add case for PRAGMA_CILK_SIMD. |
| (cp_parser_cilk_simd_vectorlength): New. |
| (cp_parser_cilk_simd_linear): New. |
| (cp_parser_cilk_simd_clause_name): New. |
| (cp_parser_cilk_simd_all_clauses): New. |
| (cp_parser_cilk_simd): New. |
| * parser.h (IN_CILK_SIMD_FOR): New macro. |
| * pt.c (tsubst_expr): Add case for CILK_SIMD. |
| * typeck2.c (cxx_readonly_error): Pass location argument to |
| readonly_error. |
| |
| 2013-11-14 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/57887 |
| * parser.c (cp_parser_late_parsing_nsdmi): Call |
| maybe_begin_member_template_processing. |
| * pt.c (maybe_begin_member_template_processing): Handle NSDMIs. |
| (inline_needs_template_parms): Adjust. |
| |
| 2013-11-14 Andrew MacLeod <amacleod@redhat.com> |
| |
| * class.c: Include only gimplify.h and gimple.h as needed. |
| * cp-gimplify.c: Likewise. |
| * error.c: Likewise. |
| * init.c: Likewise. |
| * optimize.c: Likewise. |
| * pt.c: Likewise. |
| * semantics.c: Likewise. |
| * tree.c: Likewise. |
| * vtable-class-hierarchy.c: Likewise. |
| |
| 2013-11-14 Diego Novillo <dnovillo@google.com> |
| |
| * call.c: Include stor-layout.h. |
| Include trans-mem.h. |
| Include stringpool.h. |
| * class.c: Include stringpool.h. |
| Include stor-layout.h. |
| Include attribs.h. |
| * cp-gimplify.c: Include stor-layout.h. |
| * cvt.c: Include stor-layout.h. |
| * decl.c: Include stringpool.h. |
| Include stor-layout.h. |
| Include varasm.h. |
| Include attribs.h. |
| Include calls.h. |
| * decl2.c: Include stringpool.h. |
| Include varasm.h. |
| Include attribs.h. |
| Include stor-layout.h. |
| Include calls.h. |
| * error.c: Include stringpool.h. |
| * except.c: Include stringpool.h. |
| Include trans-mem.h. |
| Include attribs.h. |
| * init.c: Include stringpool.h. |
| Include varasm.h. |
| * lambda.c: Include stringpool.h. |
| * lex.c: Include stringpool.h. |
| * mangle.c: Include stor-layout.h. |
| Include stringpool.h. |
| * method.c: Include stringpool.h. |
| Include varasm.h. |
| * name-lookup.c: Include stringpool.h. |
| Include print-tree.h. |
| Include attribs.h. |
| * optimize.c: Include stringpool.h. |
| * parser.c: Include print-tree.h. |
| Include stringpool.h. |
| Include attribs.h. |
| Include trans-mem.h. |
| * pt.c: Include stringpool.h. |
| Include varasm.h. |
| Include attribs.h. |
| Include stor-layout.h. |
| * ptree.c: Include print-tree.h. |
| * repo.c: Include stringpool.h. |
| * rtti.c: Include stringpool.h. |
| Include stor-layout.h. |
| * semantics.c: Include stmt.h. |
| Include varasm.h. |
| Include stor-layout.h. |
| Include stringpool.h. |
| * tree.c: Include stor-layout.h. |
| Include print-tree.h. |
| Include tree-iterator.h. |
| * typeck.c: Include stor-layout.h. |
| Include varasm.h. |
| * typeck2.c: Include stor-layout.h. |
| Include varasm.h. |
| * vtable-class-hierarchy.c: Include stringpool.h. |
| Include stor-layout.h. |
| |
| 2013-11-12 Andrew MacLeod <amacleod@redhat.com> |
| |
| * class.c: Include gimplify.h. |
| * cp-gimplify.c: Likewise. |
| * error.c: Likewise. |
| * init.c: Likewise. |
| * optimize.c: Likewise. |
| * pt.c: Likewise. |
| * semantics.c: Likewise. |
| * tree.c: Likewise. |
| * vtable-class-hierarchy.c: Likewise. |
| * decl2.c: Don't include gimple.h. |
| * except.c: Likewise. |
| * method.c: Include pointer-set.h instead of gimple.h. |
| |
| 2013-11-12 Adam Butcher <adam@jessamine.co.uk> |
| |
| * pt.c (convert_generic_types_to_packs): New function to transform |
| a range of implicitly introduced non-pack template parms to be parameter |
| packs. |
| * cp-tree.h (convert_generic_types_to_packs): Declare. |
| * parser.c (cp_parser_parameter_declaration_list): If a function |
| parameter pack contains generic types, convert them to packs prior to |
| grokdeclarator. |
| |
| 2013-11-12 Adam Butcher <adam@jessamine.co.uk> |
| |
| PR c++/58534 |
| PR c++/58536 |
| PR c++/58548 |
| PR c++/58549 |
| PR c++/58637 |
| * parser.h (struct cp_parser): New members implicit_template_parms, |
| implicit_template_scope and auto_is_implicit_function_template_parm_p. |
| * parser.c (add_implicit_template_parms): Refactor as ... |
| (synthesize_implicit_template_parm): ... this to append a new template |
| type parm to the current template parameter list (introducing a new list |
| if necessary). Removed push_deferring_access_checks. |
| (finish_fully_implicit_template): Removed pop_deferring_access_checks. |
| (cp_parser_new): Initialize new cp_parser members. |
| (cp_parser_parameter_declaration_clause): Consider auto as implicit |
| template parm when parsing a parameter declaration (unless parsing an |
| explicit specialization). |
| (cp_parser_parameter_declaration_list): Remove local |
| implicit_template_parms counter and reset cp_parser implicit template |
| state when complete. |
| (cp_parser_lambda_expression): Reset implicit template cp_parser members |
| whilst generating lambda class. |
| (cp_parser_function_definition_after_declarator): Reset implicit |
| template cp_parser members whilst parsing function definition. |
| (make_generic_type_name): Respell '<autoN>' as 'auto:N' which works |
| better with template diagnostics. |
| (cp_parser_simple_type_specifier): Synthesize implicit template parm on |
| parsing 'auto' if auto_is_implicit_function_template_parm_p and provide |
| diagnostics ... |
| * decl.c (grokdeclarator): ... that were previously done here. |
| |
| 2013-11-12 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/57734 |
| * pt.c (lookup_template_class_1): Handle alias template declarations |
| of enumeration types. |
| |
| 2013-11-10 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| * cvt.c (cp_convert_to_pointer): Call build_ptrmemfunc before |
| maybe_warn_zero_as_null_pointer_constant to avoid duplicate |
| -Wzero-as-null-pointer-constant diagnostics. |
| |
| * typeck.c (build_ptrmemfunc): Use cp_build_c_cast. |
| |
| 2013-11-06 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/11006 |
| * init.c (build_new_1): Don't call build_java_class_ref on non-class |
| types. |
| |
| 2013-11-05 Jason Merrill <jason@redhat.com> |
| |
| PR c++/58868 |
| * decl.c (check_initializer): Don't use build_vec_init for arrays |
| of trivial type. |
| |
| 2013-11-05 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/58724 |
| * name-lookup.c (handle_namespace_attrs): Use get_attribute_name. |
| |
| 2013-11-05 Tobias Burnus <burnus@net-b.de> |
| |
| * parser.c (cp_parser_omp_for, cp_parser_omp_parallel, |
| cp_parser_omp_distribute, cp_parser_omp_teams, cp_parser_omp_target, |
| cp_parser_omp_declare): Handle -fopenmp-simd. |
| |
| 2013-11-04 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * decl2.c (cpp_check): Change type of first parameter and deal with |
| IS_TRIVIAL. |
| |
| 2013-11-03 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/38313 |
| * parser.c (cp_parser_constructor_declarator_p): Check that the |
| class-name matches current_class_type. |
| |
| 2013-11-03 Marek Polacek <polacek@redhat.com> |
| |
| * decl.c (cp_finish_decl): Move C++1y bounds checking... |
| (compute_array_index_type): ...here. Add VLA instrumentation. |
| Call stabilize_vla_size. |
| (grokdeclarator): Don't call stabilize_vla_size here. |
| |
| 2013-11-02 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/29234 |
| PR c++/56037 |
| * parser.c (cp_parser_cast_expression): If we aren't looking at |
| a cast-expression don't call cp_parser_type_id. |
| (cp_parser_postfix_expression): Likewise for compound-literal. |
| (cp_parser_tokens_start_cast_expression): Adjust. |
| |
| 2013-11-01 Edward Smith-Rowland <3dw4rd@verizon.net> |
| |
| PR c++/58708 |
| * parser.c (make_string_pack): Discover non-const type and size |
| of character and build parm pack with correct type and chars. |
| |
| 2013-11-01 Trevor Saunders <tsaunders@mozilla.com> |
| |
| * semantics.c (build_anon_member_initialization): Convert fields to be |
| a stack_vec. |
| |
| 2013-11-01 Marc Glisse <marc.glisse@inria.fr> |
| |
| PR c++/58834 |
| * pt.c (type_dependent_expression_p): Handle null argument. |
| |
| 2013-11-01 Jakub Jelinek <jakub@redhat.com> |
| |
| * semantics.c (finish_omp_clauses) <case OMP_CLAUSE_UNIFORM>: Go to |
| check_dup_generic at the end, unless remove is true. |
| (finish_omp_clauses) <case OMP_CLAUSE_LINEAR>: Add break; after |
| remove = true;. |
| |
| 2013-10-31 Jakub Jelinek <jakub@redhat.com> |
| |
| * semantics.c (finish_omp_clauses): Diagnose aligned clause |
| with decl that is not pointer nor array nor reference to those. |
| |
| 2013-10-31 Jason Merrill <jason@redhat.com> |
| |
| * semantics.c (cxx_eval_call_expression): Handle trivial |
| value-initialization. |
| * typeck2.c (store_init_value): Call maybe_constant_init after |
| cxx_constant_value. |
| |
| * decl.c (cxx_maybe_build_cleanup): Always set LOOKUP_NONVIRTUAL. |
| * decl2.c (build_cleanup): Just call cxx_maybe_build_cleanup. |
| |
| PR c++/58162 |
| * parser.c (cp_parser_late_parse_one_default_arg): Set |
| TARGET_EXPR_DIRECT_INIT_P. |
| |
| * class.c (type_build_ctor_call): Return early in C++98 mode. |
| (type_build_dtor_call): Likewise. |
| |
| 2013-10-31 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/58932 |
| Revert: |
| 2013-10-18 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/58466 |
| * pt.c (most_specialized_class): Bump processing_template_decl for |
| get_class_bindings. |
| |
| 2013-10-30 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/58581 |
| * call.c (build_over_call): Check return value of mark_used. |
| |
| 2013-10-30 Jason Merrill <jason@redhat.com> |
| |
| * semantics.c (finish_compound_literal): Don't create a static variable |
| inside cp_unevaluated_operand. |
| |
| * init.c (push_base_cleanups): Check ANON_AGGR_TYPE_P. |
| |
| 2013-10-30 Tobias Burnus <burnus@net-b.de> |
| |
| PR other/33426 |
| * cp-tree.h (RANGE_FOR_IVDEP): Define. |
| (cp_convert_range_for, finish_while_stmt_cond, finish_do_stmt, |
| finish_for_cond): Take 'bool ivdep' parameter. |
| * cp-array-notation.c (create_an_loop): Update call. |
| * init.c (build_vec_init): Ditto. |
| * pt.c (tsubst_expr): Ditto. |
| * parser.c (cp_parser_iteration_statement, cp_parser_for, |
| cp_parser_range_for, cp_convert_range_for): Update calls. |
| (cp_parser_pragma): Accept GCC ivdep for 'while' and 'do'. |
| * semantics.c (finish_while_stmt_cond, finish_do_stmt, |
| finish_for_cond): Optionally build ivdep annotation. |
| |
| 2013-10-30 Jason Merrill <jason@redhat.com> |
| |
| * decl.c (cp_finish_decl): Never throw for VLA bound == 0. |
| |
| 2013-10-29 David Malcolm <dmalcolm@redhat.com> |
| |
| Patch autogenerated by refactor_symtab.py from |
| https://github.com/davidmalcolm/gcc-refactoring-scripts |
| revision 58bb219cc090b2f4516a9297d868c245495ee622 |
| |
| * call.c (mark_versions_used): Update for conversion of symtab types |
| to a true class hierarchy. |
| * decl2.c (cp_write_global_declarations): Likewise. |
| (clear_decl_external): Likewise. |
| (build_java_method_aliases): Likewise. |
| (collect_candidates_for_java_method_aliases): Likewise. |
| (mark_needed): Likewise. |
| (var_finalized_p): Likewise. |
| (maybe_make_one_only): Likewise. |
| (maybe_emit_vtables): Likewise. |
| * lambda.c (maybe_add_lambda_conv_op): Likewise. |
| * method.c (use_thunk): Likewise. |
| * optimize.c (maybe_clone_body): Likewise. |
| * tree.c (cp_fix_function_decl_p): Likewise. |
| |
| 2013-10-29 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/58888 |
| * decl2.c (grokfield): Handle auto like NSDMI. |
| |
| 2013-10-25 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/58878 |
| * pt.c (check_template_shadow): Don't skip declarations in inline |
| member templates. |
| |
| 2013-10-25 Tobias Burnus <burnus@net-b.de> |
| |
| PR other/33426 |
| * parser.c (cp_parser_iteration_statement, |
| cp_parser_for, cp_parser_c_for, cp_parser_pragma): Handle |
| IVDEP pragma. |
| |
| 2013-10-24 Marek Polacek <polacek@redhat.com> |
| |
| PR c++/58705 |
| * typeck2.c (check_narrowing): Don't check narrowing when the scalar |
| initializer is empty. |
| |
| 2013-10-23 Jason Merrill <jason@redhat.com> |
| |
| LWG 2165 |
| * method.c (defaulted_late_check): Delete on eh-spec mismatch. |
| (maybe_explain_implicit_delete): Explain it. |
| |
| * error.c (eh_spec_to_string): New. |
| (cp_printer): Use it for %X. |
| |
| In C++11 a trivial [cd]tor might not be callable. |
| * class.c (user_provided_p): A function deleted on its declation |
| in the class is not user-provided. |
| (type_build_ctor_call): Also force a ctor call if we |
| might have a deleted or private trivial ctor. |
| (type_build_dtor_call): New. |
| (deduce_noexcept_on_destructors): Remove obsolete code. |
| * cp-tree.h: Declare type_build_dtor_call. |
| * decl.c (expand_static_init): Make sure trivial dtors are callable. |
| (cxx_maybe_build_cleanup): Likewise. |
| * except.c (build_throw): Likewise. |
| * init.c (build_value_init): Handle trivial but not callable ctors. |
| (perform_target_ctor): Make sure trivial dtor is callable. |
| (perform_member_init): Likewise. |
| (expand_cleanup_for_base): Likewise. |
| (build_vec_delete_1): Likewise. |
| (build_delete): Likewise. |
| (push_base_cleanups): Likewise. |
| (build_new_1): Avoid redundant error. |
| * method.c (synthesized_method_walk): Can't ever exit early in C++11. |
| Always process the subobject destructor. |
| * semantics.c (finish_compound_literal): Make sure trivial dtor is |
| callable. |
| * typeck2.c (split_nonconstant_init): Likewise. |
| |
| 2013-10-23 Edward Smith-Rowland <3dw4rd@verizon.net> |
| |
| Implement C++14 [[deprecated]] modulo [[gnu::deprecated]] bugs. |
| * parser.c (cp_parser_std_attribute): Interpret [[deprecated]] |
| as [[gnu::deprecated]]. |
| |
| 2013-10-22 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/58816 |
| * pt.c (apply_late_template_attributes): Use get_attribute_name, |
| not TREE_PURPOSE. |
| |
| 2013-10-18 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/58466 |
| * pt.c (most_specialized_class): Bump processing_template_decl for |
| get_class_bindings. |
| |
| 2013-10-18 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| * parser.c (cp_parser_lookup_name): Tidy. |
| |
| 2013-10-17 Andrew MacLeod <amacleod@redhat.com> |
| |
| * parser.c: Include omp-low.h. |
| * semantics.c: Likewise. |
| |
| 2013-10-17 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/58596 |
| * lambda.c (lambda_expr_this_capture): Handle NSDMIs in the |
| cp_unevaluated_operand case. |
| |
| 2013-10-16 Jason Merrill <jason@redhat.com> |
| |
| * pt.c (apply_late_template_attributes): Use |
| attribute_takes_identifier_p. |
| |
| * error.c (dump_exception_spec): Print "noexcept" rather than |
| "noexcept (true)". |
| |
| Core 1591 |
| * pt.c (unify_array_domain): Split out from unify. |
| (unify): Use it for list deduction, too. |
| |
| PR c++/57850 |
| * decl2.c (dump_tu): Split out from... |
| (cp_write_global_declarations): ...here. Call it in PCH mode. |
| |
| 2013-10-16 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| * pt.c (tsubst): Fix typo in last commit. |
| |
| 2013-10-16 Paulo Matos <pmatos@broadcom.com> |
| |
| * error.c (code_to_string): Use new wrapper get_tree_code_name. |
| * cxx-pretty-print.c (pp_cxx_assignment_operator): Likewise. |
| * pt.c (tsubst): Likewise. |
| * semantics.c (cxx_eval_constant_expression, |
| potential_constant_expression_1): Likewise. |
| * mangle.c (MANGLE_TRACE_TREE, dump_substitution_candidates, |
| add_substitution, find_substitution): Likewise. |
| |
| 2013-10-15 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/58707 |
| * parser.c (cp_parser_postfix_open_square_expression): Set |
| parser->greater_than_is_operator_p for the argument. |
| |
| 2013-10-11 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/58633 |
| * parser.c (cp_parser_commit_to_topmost_tentative_parse): New. |
| (cp_parser_pseudo_destructor_name): Use it. |
| |
| 2013-10-11 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/31671 |
| * pt.c (convert_nontype_argument): Set expr_type to |
| TREE_TYPE (probe_type). |
| |
| 2013-10-11 Jakub Jelinek <jakub@redhat.com> |
| |
| * decl.c (duplicate_decls): Error out for redeclaration of UDRs. |
| (declare_simd_adjust_this): New function. |
| (grokfndecl): If "omp declare simd" attribute is present, |
| call declare_simd_adjust_this if needed and |
| c_omp_declare_simd_clauses_to_numbers. |
| * cp-array-notation.c (expand_array_notation_exprs): Handle |
| OMP_TASKGROUP. |
| * cp-gimplify.c (cp_gimplify_expr): Handle OMP_SIMD and |
| OMP_DISTRIBUTE. Handle is_invisiref_parm decls in |
| OMP_CLAUSE_REDUCTION. |
| (cp_genericize_r): Handle OMP_SIMD and OMP_DISTRIBUTE like |
| OMP_FOR. |
| (cxx_omp_privatize_by_reference): Return true for |
| is_invisiref_parm decls. |
| (cxx_omp_finish_clause): Adjust cxx_omp_create_clause_info |
| caller. |
| * pt.c (apply_late_template_attributes): For "omp declare simd" |
| attribute call tsubst_omp_clauses, |
| c_omp_declare_simd_clauses_to_decls, finish_omp_clauses |
| and c_omp_declare_simd_clauses_to_numbers. |
| (instantiate_class_template_1): Call cp_check_omp_declare_reduction |
| for UDRs. |
| (tsubst_decl): Handle UDRs. |
| (tsubst_omp_clauses): Add declare_simd argument, if true don't |
| call finish_omp_clauses. Handle new OpenMP 4.0 clauses. |
| Handle non-NULL OMP_CLAUSE_REDUCTION_PLACEHOLDER on |
| OMP_CLAUSE_REDUCTION. |
| (tsubst_expr): For UDRs call pushdecl and |
| cp_check_omp_declare_reduction. Adjust tsubst_omp_clauses |
| callers. Handle OMP_SIMD, OMP_DISTRIBUTE, OMP_TEAMS, |
| OMP_TARGET_DATA, OMP_TARGET_UPDATE, OMP_TARGET, OMP_TASKGROUP. |
| Adjust finish_omp_atomic caller. |
| (tsubst_omp_udr): New function. |
| (instantiate_decl): For UDRs at block scope, don't call |
| start_preparsed_function/finish_function. Call tsubst_omp_udr. |
| * semantics.c (cxx_omp_create_clause_info): Add need_dtor argument, |
| use it instead of need_default_ctor || need_copy_ctor. |
| (struct cp_check_omp_declare_reduction_data): New type. |
| (handle_omp_array_sections_1, handle_omp_array_sections, |
| omp_reduction_id, omp_reduction_lookup, |
| cp_remove_omp_priv_cleanup_stmt, cp_check_omp_declare_reduction_r, |
| cp_check_omp_declare_reduction, clone_omp_udr, |
| find_omp_placeholder_r, finish_omp_reduction_clause): New functions. |
| (finish_omp_clauses): Handle new OpenMP 4.0 clauses and user defined |
| reductions. |
| (finish_omp_for): Add CODE argument, use it instead of hardcoded |
| OMP_FOR. Adjust c_finish_omp_for caller. |
| (finish_omp_atomic): Add seq_cst argument, adjust |
| c_finish_omp_atomic callers, handle seq_cst and new OpenMP 4.0 |
| atomic variants. |
| (finish_omp_cancel, finish_omp_cancellation_point): New functions. |
| * decl2.c (mark_used): Force immediate instantiation of |
| DECL_OMP_DECLARE_REDUCTION_P decls. |
| (is_late_template_attribute): Return true for "omp declare simd" |
| attribute. |
| (cp_omp_mappable_type): New function. |
| (cplus_decl_attributes): Add implicit "omp declare target" attribute |
| if requested. |
| * parser.c (cp_debug_parser): Print |
| parser->colon_doesnt_start_class_def_p. |
| (cp_ensure_no_omp_declare_simd, cp_finalize_omp_declare_simd): New |
| functions. |
| (enum pragma_context): Add pragma_member and pragma_objc_icode. |
| (cp_parser_binary_expression): Handle no_toplevel_fold_p |
| even for binary operations other than comparison. |
| (cp_parser_linkage_specification): Call |
| cp_ensure_no_omp_declare_simd if needed. |
| (cp_parser_namespace_definition): Likewise. |
| (cp_parser_init_declarator): Call cp_finalize_omp_declare_simd. |
| (cp_parser_direct_declarator): Pass declarator to |
| cp_parser_late_return_type_opt. |
| (cp_parser_late_return_type_opt): Add declarator argument, |
| call cp_parser_late_parsing_omp_declare_simd for declare simd. |
| (cp_parser_class_specifier_1): Call cp_ensure_no_omp_declare_simd. |
| Parse UDRs before all other methods. |
| (cp_parser_member_specification_opt): Use pragma_member instead of |
| pragma_external. |
| (cp_parser_member_declaration): Call cp_finalize_omp_declare_simd. |
| (cp_parser_function_definition_from_specifiers_and_declarator, |
| cp_parser_save_member_function_body): Likewise. |
| (cp_parser_late_parsing_for_member): Handle UDRs specially. |
| (cp_parser_next_token_starts_class_definition_p): Don't allow |
| CPP_COLON if colon_doesnt_start_class_def_p flag is true. |
| (cp_parser_objc_interstitial_code): Use pragma_objc_icode |
| instead of pragma_external. |
| (cp_parser_omp_clause_name): Parse new OpenMP 4.0 clause names. |
| (cp_parser_omp_var_list_no_open): Parse array sections for |
| OMP_CLAUSE_{DEPEND,MAP,TO,FROM} clauses. Add COLON argument, |
| if non-NULL, allow parsing to end with a colon rather than close |
| paren. |
| (cp_parser_omp_var_list): Adjust cp_parser_omp_var_list_no_open |
| caller. |
| (cp_parser_omp_clause_reduction): Handle user defined reductions. |
| (cp_parser_omp_clause_branch, cp_parser_omp_clause_cancelkind, |
| cp_parser_omp_clause_num_teams, cp_parser_omp_clause_thread_limit, |
| cp_parser_omp_clause_aligned, cp_parser_omp_clause_linear, |
| cp_parser_omp_clause_safelen, cp_parser_omp_clause_simdlen, |
| cp_parser_omp_clause_depend, cp_parser_omp_clause_map, |
| cp_parser_omp_clause_device, cp_parser_omp_clause_dist_schedule, |
| cp_parser_omp_clause_proc_bind, cp_parser_omp_clause_to, |
| cp_parser_omp_clause_from, cp_parser_omp_clause_uniform): New |
| functions. |
| (cp_parser_omp_all_clauses): Add finish_p argument. Don't call |
| finish_omp_clauses if it is false. Handle new OpenMP 4.0 clauses. |
| (cp_parser_omp_atomic): Parse seq_cst clause, pass |
| true if it is present to finish_omp_atomic. Handle new OpenMP 4.0 |
| atomic forms. |
| (cp_parser_omp_for_loop): Add CODE argument, pass it through |
| to finish_omp_for. Change last argument to cclauses, |
| and adjust uses to grab parallel clauses from the array of all |
| the split clauses. |
| (cp_omp_split_clauses): New function. |
| (cp_parser_omp_simd): New function. |
| (cp_parser_omp_for): Add p_name, mask and cclauses arguments. |
| Allow the function to be called also when parsing combined constructs, |
| and call c_parser_omp_simd when parsing for simd. |
| (cp_parser_omp_sections_scope): If section-sequence doesn't start with |
| #pragma omp section, require exactly one structured-block instead of |
| sequence of statements. |
| (cp_parser_omp_sections): Add p_name, mask and cclauses arguments. |
| Allow the function to be called also when parsing combined constructs. |
| (cp_parser_omp_parallel): Add p_name, mask and cclauses arguments. |
| Allow the function to be called also when parsing combined |
| constructs. |
| (cp_parser_omp_taskgroup, cp_parser_omp_cancel, |
| cp_parser_omp_cancellation_point, cp_parser_omp_distribute, |
| cp_parser_omp_teams, cp_parser_omp_target_data, |
| cp_parser_omp_target_update, cp_parser_omp_target, |
| cp_parser_omp_declare_simd, cp_parser_late_parsing_omp_declare_simd, |
| cp_parser_omp_declare_target, cp_parser_omp_end_declare_target, |
| cp_parser_omp_declare_reduction_exprs, cp_parser_omp_declare_reduction, |
| cp_parser_omp_declare): New functions. |
| (cp_parser_omp_construct): Add p_name and mask vars. Handle |
| PRAGMA_OMP_DISTRIBUTE, PRAGMA_OMP_SIMD, PRAGMA_OMP_TASKGROUP, |
| PRAGMA_OMP_TEAMS. Adjust cp_parser_omp_for, cp_parser_omp_parallel |
| and cp_parser_omp_sections callers. |
| (cp_parser_pragma): Handle PRAGMA_OMP_CANCEL, |
| PRAGMA_OMP_CANCELLATION_POINT, PRAGMA_OMP_DECLARE_REDUCTION, |
| PRAGMA_OMP_DISTRIBUTE, PRAGMA_OMP_SIMD, PRAGMA_OMP_TASKGROUP, |
| PRAGMA_OMP_TEAMS, PRAGMA_OMP_TARGET, PRAGMA_OMP_END_DECLARE_TARGET. |
| Handle pragma_member and pragma_objc_icode like pragma_external. |
| (OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK, |
| OMP_SINGLE_CLAUSE_MASK): Use OMP_CLAUSE_MASK_1 instead of 1. |
| (OMP_PARALLEL_CLAUSE_MASK): Likewise. Add OMP_CLAUSE_PROC_BIND. |
| (OMP_TASK_CLAUSE_MASK): Use OMP_CLAUSE_MASK_1 instead of 1. Add |
| OMP_CLAUSE_DEPEND. |
| (OMP_SIMD_CLAUSE_MASK, OMP_CANCEL_CLAUSE_MASK, |
| OMP_CANCELLATION_POINT_CLAUSE_MASK, OMP_DISTRIBUTE_CLAUSE_MASK, |
| OMP_TEAMS_CLAUSE_MASK, OMP_TARGET_DATA_CLAUSE_MASK, |
| OMP_TARGET_UPDATE_CLAUSE_MASK, OMP_TARGET_CLAUSE_MASK, |
| OMP_DECLARE_SIMD_CLAUSE_MASK): Define. |
| * parser.h (struct cp_omp_declare_simd_data): New type. |
| (struct cp_parser): Add colon_doesnt_start_class_def_p and |
| omp_declare_simd fields. |
| * cp-objcp-common.h (LANG_HOOKS_OMP_MAPPABLE_TYPE): Define. |
| * cp-tree.h (struct lang_decl_fn): Add omp_declare_reduction_p |
| bit. |
| (DECL_OMP_DECLARE_REDUCTION_P): Define. |
| (OMP_FOR_GIMPLIFYING_P): Use OMP_LOOP_CHECK macro. |
| (struct saved_scope): Add omp_declare_target_attribute field. |
| (cp_omp_mappable_type, omp_reduction_id, |
| cp_remove_omp_priv_cleanup_stmt, cp_check_omp_declare_reduction, |
| finish_omp_cancel, finish_omp_cancellation_point): New prototypes. |
| (finish_omp_for): Add CODE argument. |
| (finish_omp_atomic): Add seq_cst argument. |
| (cxx_omp_create_clause_info): Add need_dtor argument. |
| |
| 2013-10-09 Marek Polacek <polacek@redhat.com> |
| |
| PR c++/58635 |
| * semantics.c (finish_return_stmt): Return error_mark_node |
| when error_operand_p of the expr is true. |
| (build_transaction_expr): Check for EXPR_P before setting the |
| expr location. |
| |
| 2013-10-08 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/58568 |
| * lambda.c (begin_lambda_type): Check return value of xref_tag |
| for error_mark_node; tidy. |
| * decl.c (grokdeclarator): Tweak error message. |
| |
| 2013-10-08 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/58665 |
| Revert: |
| 2013-10-04 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/58448 |
| * pt.c (tsubst): Use error_operand_p on parameter t. |
| |
| 2013-10-06 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/58126 |
| * class.c (check_bases): Propagate CLASSTYPE_READONLY_FIELDS_NEED_INIT |
| and CLASSTYPE_REF_FIELDS_NEED_INIT from bases to derived. |
| * init.c (diagnose_uninitialized_cst_or_ref_member_1): Extend error |
| messages about uninitialized const and references members to mention |
| the base class. |
| |
| 2013-10-06 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/56060 |
| * pt.c (type_dependent_expression_p): Handle EXPR_PACK_EXPANSION. |
| |
| 2013-10-04 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/58560 |
| * typeck2.c (build_functional_cast): Use error_operand_p on exp. |
| |
| 2013-10-04 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/58503 |
| * parser.c (cp_parser_perform_range_for_lookup): If eventually |
| either *begin or *end is type-dependent, return NULL_TREE. |
| (do_range_for_auto_deduction): If cp_parser_perform_range_for_lookup |
| returns NULL_TREE, don't actually do_auto_deduction. |
| |
| 2013-10-04 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/58448 |
| * pt.c (tsubst): Use error_operand_p on parameter t. |
| |
| 2013-10-04 Marc Glisse <marc.glisse@inria.fr> |
| |
| PR c++/19476 |
| * decl.c (cxx_init_decl_processing): Set operator_new_flag. |
| |
| 2013-10-04 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/58584 |
| * decl2.c (save_template_attributes): Handle error_mark_node as |
| *attr_p argument. |
| (cp_check_const_attributes): Likewise for attributes. |
| * parser.c (cp_parser_std_attribute_spec): When alignas_expr is an |
| error_mark_node call cp_parser_skip_to_end_of_statement. |
| |
| 2013-10-03 Easwaran Raman <eraman@google.com> |
| |
| PR c++/33911 |
| * parser.c (cp_parser_init_declarator): Do not drop attributes |
| of template member functions. |
| |
| 2013-10-03 Marek Polacek <polacek@redhat.com> |
| |
| PR c++/58510 |
| * init.c (sort_mem_initializers): Splice when giving an error. |
| |
| 2013-10-02 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/58535 |
| * parser.c (cp_parser_function_specifier_opt): Upon error about |
| virtual templates don't set ds_virtual. |
| (finish_fully_implicit_template): Reject virtual implicit templates. |
| |
| 2013-10-02 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/58565 |
| * semantics.c (potential_constant_expression_1): Handle LABEL_EXPR. |
| |
| 2013-10-01 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/58563 |
| * parser.c (cp_parser_lookup_name): Check make_typename_type return |
| value for error_mark_node. |
| |
| 2013-09-25 Tom Tromey <tromey@redhat.com> |
| |
| * Make-lang.in (CXX_TREE_H, CXX_PARSER_H, CXX_PRETTY_PRINT_H): |
| Remove. |
| |
| 2013-09-25 Tom Tromey <tromey@redhat.com> |
| |
| * Make-lang.in (g++spec.o): Remove. |
| (CFLAGS-cp/g++spec.o): New variable. |
| (GXX_OBJS): Reference cp/g++spec.o. |
| (cc1plus-checksum.o, cp/lex.o, cp/cp-array-notation.o) |
| (cp/cp-lang.o, cp/decl.o, cp/decl2.o, cp/cp-objcp-common.o) |
| (cp/typeck2.o, cp/typeck.o, cp/class.o, cp/call.o) |
| (cp/friend.o, cp/init.o, cp/method.o, cp/cvt.o, cp/search.o) |
| (cp/tree.o, cp/ptree.o, cp/rtti.o, cp/except.o, cp/expr.o) |
| (cp/pt.o, cp/error.o, cp/repo.o, cp/semantics.o, cp/dump.o) |
| (cp/optimize.o, cp/mangle.o, cp/parser.o, cp/cp-gimplify.o) |
| (cp/name-lookup.o, cp/cxx-pretty-print.o): Remove. |
| |
| 2013-09-25 Tom Tromey <tromey@redhat.com> |
| |
| * Make-lang.in (g++spec.o): Don't use subshell. |
| |
| 2013-09-25 Marek Polacek <polacek@redhat.com> |
| |
| PR c++/58516 |
| * semantics.c (finish_transaction_stmt): Check for EXPR_P before |
| setting the expr location. |
| |
| 2013-09-23 Adam Butcher <adam@jessamine.co.uk> |
| |
| PR c++/58500 |
| * type-utils.h (find_type_usage): Only traverse one type level into |
| member function pointers. |
| |
| 2013-09-23 Adam Butcher <adam@jessamine.co.uk> |
| |
| * parser.c (cp_parser_init_declarator): Defer calling |
| finish_fully_implicit_template for forward declarations until after |
| other decl processing is complete. Cleanup for clarity: Extract 'else' |
| case after 'if' containing unconditional return. |
| |
| 2013-09-23 Adam Butcher <adam@jessamine.co.uk> |
| |
| * parser.c (make_generic_type_name): Spell generic type names '<autoN>' |
| rather than '__GenN'. |
| |
| 2013-09-23 Adam Butcher <adam@jessamine.co.uk> |
| |
| * lambda.c (maybe_add_lambda_conv_op): Don't check for instantiated |
| callop in the case of generic lambdas. |
| |
| 2013-09-23 Adam Butcher <adam@jessamine.co.uk> |
| |
| * parser.c (make_generic_type_name): Use global count rather than |
| parameter and ... |
| (add_implicit_template_parms): ... propagate interface change here. |
| |
| 2013-09-20 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/58481 |
| * pt.c (tsubst_copy): Use current_nonlambda_class_type to |
| call tsubst_baselink. |
| |
| 2013-09-18 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/58457 |
| * class.c (instantiate_type): Loosen a bit the gcc_assert. |
| |
| 2013-09-18 Marek Polacek <polacek@redhat.com> |
| |
| PR sanitize/58443 |
| * typeck.c (cp_build_binary_op): Properly honor -fsanitize options. |
| Remove unnecessary check. |
| |
| 2013-09-18 Marek Polacek <polacek@redhat.com> |
| |
| PR sanitizer/58411 |
| * typeck.c (cp_build_binary_op): Don't sanitize function if it has the |
| no_sanitize_undefined attribute. |
| |
| 2013-09-17 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/58435 |
| * pt.c (tsubst, [BOUND_TEMPLATE_TEMPLATE_PARM]): Take into account |
| the cp_type_quals (r) too. |
| |
| 2013-09-16 Adam Butcher <adam@jessamine.co.uk> |
| |
| * cp-tree.h (type_uses_auto_or_concept): Declare. |
| (is_auto_or_concept): Declare. |
| * decl.c (grokdeclarator): Allow 'auto' parameters in lambdas with |
| -std=gnu++1y or -std=c++1y or, as a GNU extension, in plain functions. |
| * type-utils.h: New header defining ... |
| (find_type_usage): ... this new function based on pt.c (type_uses_auto) |
| for searching a type tree given a predicate. |
| * pt.c (type_uses_auto): Reimplement via type-utils.h (find_type_usage). |
| (is_auto_or_concept): New function. |
| (type_uses_auto_or_concept): New function. |
| * parser.h (struct cp_parser): Add fully_implicit_function_template_p. |
| * parser.c (cp_parser_new): Initialize |
| fully_implicit_function_template_p. |
| (cp_parser_new): Initialize fully_implicit_function_template_p. |
| (cp_parser_lambda_expression): Copy and restore value of |
| fully_implicit_function_template_p as per other parser fields. |
| (cp_parser_parameter_declaration_list): Count generic |
| parameters and call ... |
| (add_implicit_template_parms): ... this new function to synthesize them |
| with help from type-utils.h (find_type_usage), ... |
| (tree_type_is_auto_or_concept): ... this new static function and ... |
| (make_generic_type_name): ... this new static function. |
| (cp_parser_direct_declarator): Account for implicit template parameters. |
| (cp_parser_lambda_declarator_opt): Finish fully implicit template if |
| necessary by calling ... |
| (finish_fully_implicit_template): ... this new function. |
| (cp_parser_init_declarator): Likewise. |
| (cp_parser_function_definition_after_declarator): Likewise. |
| (cp_parser_member_declaration): Likewise. |
| * Make-lang.in (cp/pt.o): Add dependency on type-utils.h. |
| (cp/parser.o): Likewise. |
| |
| 2013-09-16 Adam Butcher <adam@jessamine.co.uk> |
| |
| * parser.c (cp_parser_lambda_declarator_opt): Accept template parameter |
| list with std=c++1y or std=gnu++1y. |
| (cp_parser_lambda_body): Don't call 'expand_or_defer_fn' for lambda call |
| operator template to avoid adding template result to symbol table. |
| * lambda.c (lambda_function): Return template result if call operator is |
| a template. |
| (maybe_add_lambda_conv_op): Move declarations to point of use. Refactor |
| operator call building in order to support conversion of a non-capturing |
| lambda template to a function pointer with help from ... |
| (prepare_op_call): ... this new function. |
| * decl2.c (check_member_template): Don't reject lambda call operator |
| template in local [lambda] class. |
| * pt.c (instantiate_class_template_1): Don't instantiate lambda call |
| operator template when instantiating lambda class. |
| |
| 2013-09-16 Adam Butcher <adam@jessamine.co.uk> |
| |
| * pt.c (make_auto_1): Use input_location rather than BUILTINS_LOCATION. |
| |
| 2013-09-15 Jason Merrill <jason@redhat.com> |
| |
| Core DR 904 |
| PR c++/41933 |
| * parser.c (cp_parser_lambda_introducer): Handle variadic capture. |
| * lambda.c (add_capture): Handle variadic capture. |
| (add_default_capture, lambda_capture_field_type): Likewise. |
| (build_capture_proxy, register_capture_members): Likewise. |
| * pt.c (register_specialization): Allow FIELD_DECL. |
| (retrieve_specialization): Likewise. |
| (find_parameter_packs_r): Handle FIELD_DECL and VAR_DECL. |
| (tsubst_pack_expansion): Handle FIELD_DECL packs. |
| (gen_elem_of_pack_expansion_instantiation): Likewise. |
| (instantiate_class_template_1): Likewise. |
| (tsubst_decl, tsubst_copy): Likewise. |
| (tsubst_expr) [DECL_EXPR]: Handle capture proxy packs. |
| (tsubst_copy_and_build) [VAR_DECL]: Likewise. |
| * semantics.c (finish_non_static_data_member): Don't try to represent |
| the type of a COMPOUND_REF of a FIELD_DECL pack. |
| |
| PR c++/41933 |
| * cp-tree.h (DECL_PACK_P): Replace FUNCTION_PARAMETER_PACK_P. |
| * cxx-pretty-print.c (direct_declarator): Adjust. |
| * decl2.c (cp_build_parm_decl): Adjust. |
| * pt.c (function_parameter_pack_p): Adjust. |
| (find_parameter_packs_r, push_template_decl_real): Adjust. |
| (tsubst_pack_expansion, tsubst_decl): Adjust. |
| (regenerate_decl_from_template, instantiate_decl): Adjust. |
| |
| * lambda.c (add_capture): Don't add DECL_LANG_SPECIFIC. |
| |
| 2013-09-13 Jason Merrill <jason@redhat.com> |
| |
| PR c++/58273 |
| * pt.c (any_type_dependent_elements_p): Actually check for |
| type-dependence, not value-dependence. |
| |
| 2013-09-13 Jacek Caban <jacek@codeweavers.com> |
| |
| * decl.c: Use new cxx_implicit_extern_c hook |
| |
| 2013-09-12 Brooks Moses <bmoses@google.com> |
| |
| PR driver/42955 |
| * Make-lang.in: Do not install driver binaries in $(target)/bin. |
| |
| 2013-09-12 Adam Butcher <adam@jessamine.co.uk> |
| |
| * pt.c (instantiate_decl): Save/restore cp_unevaluated_operand and |
| c_inhibit_evaluation_warnings. Reset if instantiating within a |
| function-local template. |
| |
| 2013-09-12 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| * semantics.c (finish_pseudo_destructor_expr): Add location_t |
| parameter. |
| * pt.c (unify_arg_conversion): Use EXPR_LOC_OR_HERE. |
| (tsubst_copy_and_build): Adjust finish_pseudo_destructor_expr |
| calls. |
| * parser.c (cp_parser_postfix_dot_deref_expression): Likewise. |
| (cp_parser_postfix_expression): Pass the proper location to |
| cp_parser_postfix_dot_deref_expression. |
| * cp-tree.h (finish_pseudo_destructor_expr): Update declaration. |
| |
| 2013-09-10 Jan Hubicka <jh@suse.cz> |
| Paolo Carlini <paolo.carlini@oracle.com> |
| |
| * error.c (print_instantiation_partial_context_line): If |
| loc == UNKNOWN_LOCATION return immediately. |
| |
| 2013-09-09 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/58325 |
| * init.c (build_vec_delete): Call mark_rvalue_use on base. |
| |
| 2013-09-09 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/43452 |
| * init.c (build_vec_delete_1): When the type is incomplete emit a |
| warning, enabled by default (not an error). |
| (build_delete): Adjust to use OPT_Wdelete_incomplete. |
| |
| 2013-09-09 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/58362 |
| * error.c (location_of): Don't handle PARM_DECLs specially. |
| |
| 2013-09-09 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| * error.c (dump_expr, [PSEUDO_DTOR_EXPR]): Fix. |
| * cxx-pretty-print.c (cxx_pretty_printer::postfix_expression): |
| Tweak, TREE_OPERAND (t, 1) may be null. |
| |
| 2013-09-08 Caroline Tice <cmtice@google.com> |
| |
| PR c++/58300 |
| * vtable-class-hierarchy.c (vtv_generate_init_routine): In |
| preinit case, move call to assemble_vtv_preinit_initializer to |
| after call to cgraph_process_new_functions. |
| |
| 2013-09-08 Tom de Vries <tom@codesourcery.com> |
| |
| PR c++/58282 |
| * except.c (build_must_not_throw_expr): Handle |
| flag_exceptions. |
| |
| 2013-09-08 Joern Rennecke <joern.rennecke@embecosm.com> |
| |
| * typeck.c (cp_build_binary_op): Use vector_types_compatible_elements_p. |
| |
| 2013-09-04 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/24926 |
| * class.c (finish_struct_anon_r): New. |
| (finish_struct_anon): Use it. |
| |
| 2013-09-04 Gabriel Dos Reis <gdr@integrable-solutions.net> |
| |
| * cxx-pretty-print.h (cxx_pretty_printer::simple_type_specifier): |
| Declare as overrider. |
| * cxx-pretty-print.c (cxx_pretty_printer::simple_type_specifier): |
| Rename from pp_cxx_simple_type_specifier. |
| (cxx_pretty_printer::cxx_pretty_printer): Do not assign to |
| simple_type_specifier. |
| |
| 2013-09-03 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/58305 |
| * typeck2.c (build_functional_cast): Maybe warn_deprecated_use. |
| |
| 2013-09-03 Mike Stump <mikestump@comcast.net> |
| |
| * Make-lang.in (cp/lambda.o): Add dependencies. |
| |
| 2013-09-03 Gabriel Dos Reis <gdr@integrable-solutions.net> |
| |
| * cxx-pretty-print.h (cxx_pretty_printer::type_id): Declare as |
| overrider. |
| * cxx-pretty-print.c (pp_cxx_storage_class_specifier): Remove. |
| (pp_cxx_userdef_literal): Tidy. |
| (pp_cxx_template_argument_list): Likewise. |
| (pp_cxx_typeid_expression): Likewise. |
| (pp_cxx_offsetof_expression_1): Likewise. |
| (cxx_pretty_printer::postfix_expression): Likewise. |
| (cxx_pretty_printer::unary_expression): Likewise. |
| (cxx_pretty_printer::statement): Likewise. |
| (cxx_pretty_printer::type_id): Rename from pp_cxx_type_id. |
| (c_pretty_printer::cxx_pretty_printer): Do not assign to type_id. |
| * error.c (dump_decl): Tidy. |
| (dump_expr): Likewise. |
| |
| 2013-09-02 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/21682, implement DR 565 |
| * name-lookup.c (compparms_for_decl_and_using_decl): New. |
| (push_overloaded_decl_1, do_nonmember_using_decl): Use it. |
| |
| 2013-08-30 Marek Polacek <polacek@redhat.com> |
| |
| * typeck.c (cp_build_binary_op): Add division by zero and shift |
| instrumentation. |
| * error.c (dump_expr): Special-case ubsan builtins. |
| |
| 2013-08-30 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/51424 |
| * cp-tree.h (LOOKUP_DELEGATING_CONS): Add. |
| * init.c (perform_target_ctor): Use it. |
| * call.c (build_special_member_call): Diagnose self-delegating |
| constructors. |
| |
| 2013-08-30 Gabriel Dos Reis <gdr@integrable-solutions.net> |
| |
| * cxx-pretty-print.h (cxx_pretty_printer::declaration): Declare as |
| overrider. |
| (cxx_pretty_printer::declaration_specifiers): Likewise. |
| (cxx_pretty_printer::function_specifier): Likewise. |
| (cxx_pretty_printer::declarator): Likewise. |
| (cxx_pretty_printer::direct_declarator): Likewise. |
| (cxx_pretty_printer::abstract_declarator): Likewise. |
| (cxx_pretty_printer::direct_abstract_declarator): Likewise. |
| (pp_cxx_declaration): Remove. |
| * cxx-pretty-print.c (cxx_pretty_printer::function_specifier): |
| Rename from pp_cxx_function_specifier. Adjust. |
| (cxx_pretty_printer::declaration_specifiers): Rename from |
| pp_cxx_decl_specifier_seq. Adjust. |
| (cxx_pretty_printer::direct_declarator): Rename from |
| pp_cxx_direct_declarator. Adjust. |
| (cxx_pretty_printer::declarator): Rename from pp_cxx_declarator. |
| Adjust. |
| (cxx_pretty_printer::abstract_declarator): Rename from |
| pp_cxx_abstract_declarator. Adjust. |
| (cxx_pretty_printer::direct_abstract_declarator): Rename from |
| pp_cxx_direct_abstract_declarator. Adjust. |
| (cxx_pretty_printer::declaration): Rename from |
| pp_cxx_declaration. Adjust. |
| (cxx_pretty_printer::cxx_pretty_printer): Do not assign to |
| declaration, declaration_specifiers, function_specifier, |
| declarator, direct_declarator, abstract_declarator, |
| direct_abstract_declarator. |
| * error.c (dump_decl): Adjust. |
| |
| 2013-08-29 Jan Hubicka <jh@suse.cz> |
| |
| Correct previous patch to not mark terminate as LEAF. |
| * class.c (build_vtbl_initializer): Drop LEAF |
| * decl.c (cxx_init_decl_processing): Likewise. |
| (push_throw_library_fn): Likewise. |
| * except.c (init_exception_processing): Likewise. |
| (do_begin_catch): Likewise. |
| (do_end_catch): Likewise. |
| (do_allocate_exception): Likewise. |
| |
| 2013-08-29 Jan Hubicka <jh@suse.cz> |
| |
| * class.c (build_vtbl_initializer): Make __cxa_deleted_virtual |
| ECF_NORETURN | ECF_LEAF |
| * cp-tree.h (build_library_fn_ptr, build_cp_library_fn_ptr, |
| push_library_fn, push_void_library_fn): Update prototype. |
| * decl.c (build_library_fn_1): Remove. |
| (push_cp_library_fn, build_cp_library_fn): Update to take ECF flags. |
| (cxx_init_decl_processing): Update; global_delete_fndecl is ECF_NOTROW; |
| __cxa_pure_virtual is ECF_NORETURN | ECF_NORETURN | ECF_LEAF. |
| (build_library_fn_1): Add ecf_flags argument; rename to ... |
| (build_library_fn): ... this one. |
| (build_cp_library_fn): Take ecf_flags; do not copy NOTHROW flag. |
| (build_library_fn_ptr): Take ecf_flags. |
| (build_cp_library_fn_ptr): Likewise. |
| (push_library_fn): Likewise. |
| (push_cp_library_fn): Likewise. |
| (push_void_library_fn): Likewise. |
| (push_throw_library_fn): All throws are ECF_NORETURN. |
| (__cxa_atexit, __cxa_thread_atexit): Add ECF_LEAF | ECF_NOTHROW attributes. |
| (expand_static_init): __cxa_guard_acquire, __cxa_guard_release, |
| __cxa_guard_abort are ECF_NOTHROW | ECF_LEAF. |
| * except.c (init_exception_processing): terminate is |
| ECF_NOTHROW | ECF_NORETURN | ECF_LEAF. |
| (declare_nothrow_library_fn): Add ecf_flags parameter. |
| (__cxa_get_exception_ptr): Is ECF_NOTHROW | ECF_PURE | ECF_LEAF | |
| ECF_TM_PURE. |
| (do_begin_catch): cxa_begin_catch and _ITM_cxa_begin_catch |
| are ECF_NOTHROW | ECF_LEAF. |
| (do_end_catch): __cxa_end_catch and _ITM_cxa_end_catch is |
| ECF_LEAF. |
| (do_allocate_exception): _cxa_allocate_exception |
| and _ITM_cxa_allocate_exception are ECF_NOTHROW | ECF_MALLOC |
| | ECF_LEAF |
| (do_free_exception): __cxa_free_exception is |
| ECF_NOTHROW | ECF_LEAF. |
| * rtti.c (build_dynamic_cast_1): __dynamic_cast |
| is ECF_LEAF | ECF_PURE | ECF_NOTHROW. |
| |
| 2013-08-29 Adam Butcher <adam@jessamine.co.uk> |
| |
| * error.c (dump_lambda_function): New function, dependent on ... |
| (dump_substitution): ... this new function, factored out of ... |
| (subst_to_string): ... here and ... |
| (dump_function_decl): ... here. Updated to early-out with call to |
| dump_lambda_function after determining template bindings. |
| |
| 2013-08-28 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/58255 |
| * init.c (build_aggr_init): When init == void_type_node do not |
| set LOOKUP_ONLYCONVERTING. |
| |
| 2013-08-27 Caroline Tice <cmtice@google.com> |
| |
| * vtable-class-hierarchy.c: Remove unnecessary include statements. |
| (MAX_SET_SIZE): Remove unnecessary constant. |
| (register_construction_vtables): Make vtable_ptr_array parameter |
| into a vector; remove num_args parameter. Change array accesses to |
| vector accesses. |
| (register_other_binfo_vtables): Ditto. |
| (insert_call_to_register_set): Ditto. |
| (insert_call_to_register_pair): Ditto. |
| (output_set_info): Ditto. Also change warning calls to warning_at |
| calls, and fix format of warning messages. |
| (register_all_pairs): Change vtbl_ptr_array from an array into a |
| vector. Remove num_vtable_args (replace with calls to vector length). |
| Change array stores & accesses to vector functions. Change calls to |
| register_construction_vtables, register_other_binfo_vtables, |
| insert_call_to_register_set, insert_call_to_register_pair and |
| output_set_info to match their new signatures. Change warning to |
| warning_at and fix the format of the warning message. |
| |
| 2013-08-27 Jakub Jelinek <jakub@redhat.com> |
| Aldy Hernandez <aldyh@redhat.com> |
| |
| * cp-tree.h (CP_OMP_CLAUSE_INFO): Adjust range for new clauses. |
| |
| 2013-08-27 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| * decl.c (grokfndecl): Remove old bison hack. |
| |
| 2013-08-26 Jan Hubicka <jh@suse.cz> |
| |
| * cp-tree.h (DECL_CONSTRUCTOR_P, DECL_DESTRUCTOR_P): Use |
| middle-end flag. |
| |
| 2013-08-26 Gabriel Dos Reis <gdr@integrable-solutions.net> |
| |
| * cxx-pretty-print.h (cxx_pretty_printer::unary_expression): |
| Declare as overrider. |
| (cxx_pretty_printer::multiplicative_expression): Likewise. |
| (cxx_pretty_printer::conditional_expression): Likewise. |
| (cxx_pretty_printer::assignment_expression): Likewise. |
| (cxx_pretty_printer::expression): Likewise. |
| * cxx-pretty-print.c (cxx_pretty_printer::unary_expression): |
| Rename from pp_cxx_unary_expression. Adjust. |
| (cxx_pretty_printer::multiplicative_expression): Rename from |
| pp_cxx_multiplicative_expression. Adjust. |
| (cxx_pretty_printer::conditional_expression): Rename from |
| pp_cxx_conditional_expression. Adjust. |
| (cxx_pretty_printer::assignment_expression): Rename from |
| pp_cxx_assignment_expression. Adjust. |
| (cxx_pretty_printer::expression): Rename from pp_cxx_expression. |
| Adjust. |
| (cxx_pretty_printer::cxx_pretty_printer): Dot not assign to |
| unary_expression, multiplicative_expression, |
| conditional_expression, assignment_expression, expression. |
| |
| 2013-08-25 Gabriel Dos Reis <gdr@integrable-solutions.net> |
| |
| * cxx-pretty-print.h (cxx_pretty_printer::postfix_expression): |
| Declare as overrider. |
| * cxx-pretty-print.c (cxx_pretty_printer::postfix_expression): |
| Rename from pp_cxx_postfix_expression. Adjust. |
| (pp_cxx_expression): Use pp_postfix_expression. |
| (cxx_pretty_printer::cxx_pretty_printer): Do not assign to |
| postfix_expression. |
| |
| 2013-08-25 Gabriel Dos Reis <gdr@integrable-solutions.net> |
| |
| * cxx-pretty-print.h (cxx_pretty_printer::primary_expression): Now |
| an overrider of c_pretty_printer::primary_expression. |
| * cxx-pretty-print.c (cxx_pretty_printer::primary_expression): |
| Rename from pp_cxx_primary_expression. Adjust. |
| (pp_cxx_postfix_expression): Use pp_primary_expression. |
| (pp_cxx_ctor_initializer): Likewise. |
| (cxx_pretty_printer::cxx_pretty_printer): Do not assign to |
| primary_expression. |
| |
| 2013-08-23 Jan Hubicka <jh@suse.cz> |
| |
| * cp-tree.h (struct lang_type_class): Free is_final bit. |
| (CLASSTYPE_FINAL): Define using TYPE_FINAL_P. |
| (DECL_FINAL_P): Remove. |
| * pt.c (instantiate_class_template_1): Guard that CLASSTYPE_FINAL |
| is called on CLASS_TYPE_P. |
| |
| 2013-08-25 Gabriel Dos Reis <gdr@integrable-solutions.net> |
| |
| * cxx-pretty-print.c (M_): Remove. |
| (pp_cxx_unqualified_id): Use translate_string instead of M_. |
| (pp_cxx_canonical_template_parameter): Likewise. |
| |
| 2013-08-24 Gabriel Dos Reis <gdr@integrable-solutions.net> |
| |
| * cxx-pretty-print.h (cxx_pretty_printer::id_expression): Declare. |
| * cxx-pretty-print.c (cxx_pretty_printer::id_expression): Rename |
| from pp_cxx_id_expression. Adjust. |
| (pp_cxx_userdef_literal): Use pp_id_expression. |
| (pp_cxx_primary_expression): Likewise. |
| (pp_cxx_direct_declarator): Likewise. |
| (cxx_pretty_printer::cxx_pretty_printer): Do not assign to |
| id_expression. |
| |
| 2013-08-24 Gabriel Dos Reis <gdr@integrable-solutions.net> |
| |
| * cxx-pretty-print.h (cxx_pretty_printer::constant): Now a member |
| function, overriding c_pretty_printer::constant. |
| * cxx-pretty-print.c (cxx_pretty_printer::constant): Rename from |
| pp_cxx_constant. Adjust. |
| (cxx_pretty_printer::cxx_pretty_printer): Do not assign to constant. |
| |
| 2013-08-23 Gabriel Dos Reis <gdr@integrable-solutiobs.net> |
| |
| * cp-objcp-common.c (cxx_initialize_diagnostics): Call a |
| destructor for the early printer. |
| * error.c (type_to_string): Use pp_buffer. |
| |
| 2013-08-22 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/56380 |
| * class.c (check_field_decls): Check for const mutable and const |
| reference data members. |
| |
| 2013-08-22 Gabriel Dos Reis <gdr@integrable-solutions.net> |
| |
| * error.c (init_error): Remove calls to pp_construct and |
| pp_cxx_pretty_printer_init. Initialize cxx_pp with placement-new. |
| * cxx-pretty-print.h (cxx_pretty_printer::cxx_pretty_printer): Declare. |
| (cxx_pretty_printer_init): Remove. |
| * cxx-pretty-print.c (cxx_pretty_printer::cxx_pretty_printer): |
| Rename from cxx_pretty_printer_init. Adjust. |
| * cp-objcp-common.c (cxx_initialize_diagnostics): Simplify |
| initialization of C++ diagnostics pretty printer. |
| |
| 2013-08-21 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| * call.c (build_new_method_call_1): Use INDIRECT_REF_P. |
| * cp-tree.h (REFERENCE_REF_P): Likewise. |
| * semantics.c (finish_offsetof): Likewise. |
| |
| 2013-08-21 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/56130 |
| * semantics.c (finish_id_expression): Handle deprecated references. |
| |
| 2013-08-20 Jason Merrill <jason@redhat.com> |
| |
| PR c++/58119 |
| * cvt.c (build_expr_type_conversion): Don't complain about a |
| template that can't match the desired type category. |
| |
| 2013-08-20 Gabriel Dos Reis <gdr@integrable-solutions.net> |
| |
| * error.c (pp_ggc_formatted_text): New. |
| (type_as_string): Use it in lieu of pp_formatted_text. |
| (type_as_string_translate): Likewise. |
| (expr_as_string): Likewise. |
| (decl_as_string): Likewise. |
| (decl_as_string_translate): Likewise. |
| (lang_decl_name): Likewise. |
| (decl_to_string): Likewise. |
| (expr_to_string): Likewise. |
| (fndecl_to_string): Likewise. |
| (parm_to_string): Likewise. |
| (type_to_string): Likewise. |
| (args_to_string): Likewise. |
| (subst_to_string): Likewise. |
| |
| 2013-08-19 Balaji V. Iyer <balaji.v.iyer@intel.com> |
| |
| PR c/57490 |
| * cp-array-notation.c (cp_expand_cond_array_notations): Added a |
| check for truth values. |
| (expand_array_notation_exprs): Added truth values case. Removed an |
| unwanted else. Added for-loop to walk through subtrees in default |
| case. |
| * call.c (build_cxx_call): Inherited the type of the array notation for |
| certain built-in array notation functions. |
| |
| 2013-08-19 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| * parser.c (cp_parser_lambda_introducer, cp_parser_decltype_expr): |
| Use cp_parser_lookup_name_simple. |
| |
| 2013-08-19 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| * name-lookup.h (pop_bindings_and_leave_scope): Declare. |
| * name-lookup.c (pop_bindings_and_leave_scope): Define. |
| * parser.c (cp_parser_lambda_declarator_opt, |
| cp_parser_direct_declarator, cp_parser_cache_defarg): Use it. |
| |
| 2013-08-17 Jason Merrill <jason@redhat.com> |
| |
| PR c++/58083 |
| * name-lookup.c (push_class_level_binding_1): It's OK to push a |
| lambda type after the enclosing type is complete. |
| |
| 2013-08-17 Gabriel Dos Reis <gdr@integrable-solutions.net> |
| |
| * error.c (dump_scope): Add a cxx_pretty_printer parameter. |
| Adjust callers. |
| (dump_template_argument): Likewise. |
| (dump_template_argument_list): Likewise. |
| (dump_template_parameter): Likewise. |
| (dump_template_bindings): Likewise. |
| (dump_alias_template_specialization): Likewise. |
| (dump_type): Likewise. |
| (dump_typename): Likewise. |
| (dump_aggr_type): Likewise. |
| (dump_type_prefix): Likewise. |
| (dump_type_suffix): Likewise. |
| (dump_global_iord): Likewise. |
| (dump_simple_decl): Likewise. |
| (dump_decl): Likewise. |
| (dump_template_decl): Likewise. |
| (dump_function_decl): Likewise. |
| (dump_parameters): Likewise. |
| (dump_ref_qualifier): Likewise. |
| (dump_exception_spec): Likewise. |
| (dump_function_name): Likewise. |
| (dump_template_parms): Likewise. |
| (dump_call_expr_args): Likewise. |
| (dump_aggr_init_expr_args): Likewise. |
| (dump_expr_list): Likewise. |
| (dump_expr_init_vec): Likewise. |
| (dump_expr): Likewise. |
| (dump_binary_op): Likewise. |
| (dump_unary_op): Likewise. |
| |
| 2013-08-14 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/51912 |
| * cp-tree.h (LOOKUP_NO_NON_INTEGRAL): Add. |
| * decl.c (case_conversion): Use it. |
| * call.c (standard_conversion): Likewise. |
| (implicit_conversion): Adjust. |
| |
| 2013-08-13 Adam Butcher <adam@jessamine.co.uk> |
| |
| * pt.c: Grammar fix in comments ("it's" to "its"). |
| |
| 2013-08-12 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| * decl.c (warn_extern_redeclared_static, duplicate_decls, |
| check_elaborated_type_specifier): Use error + inform. |
| * friend.c (make_friend_class): Likewise. |
| * semantics.c (finish_id_expression): Likewise. |
| |
| 2013-08-09 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| Revert: |
| 2013-08-07 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/46206 |
| * name-lookup.c (lookup_name_real_1): Handle iter->type before |
| iter->value. |
| |
| 2013-08-07 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/46206 |
| * name-lookup.c (lookup_name_real_1): Handle iter->type before |
| iter->value. |
| |
| 2013-08-06 Caroline Tice <cmtice@google.com> |
| |
| * Make-lang.in (*CXX_AND_OBJCXX_OBJS): Add vtable-class-hierarchy.o to |
| list. |
| (vtable-class-hierarchy.o): Add build rule. |
| * cp-tree.h (vtv_start_verification_constructor_init_function): New |
| extern function decl. |
| (vtv_finish_verification_constructor_init_function): New extern |
| function decl. |
| (build_vtbl_address): New extern function decl. |
| (get_mangled_vtable_map_var_name): New extern function decl. |
| (vtv_compute_class_hierarchy_transitive_closure): New extern function |
| decl. |
| (vtv_generate_init_routine): New extern function decl. |
| (vtv_save_class_info): New extern function decl. |
| (vtv_recover_class_info): New extern function decl. |
| (vtv_build_vtable_verify_fndecl): New extern function decl. |
| * class.c (finish_struct_1): Add call to vtv_save_class_info if |
| flag_vtable_verify is true. |
| * config-lang.in: Add vtable-class-hierarchy.c to gtfiles list. |
| * vtable-class-hierarchy.c: New file. |
| * mangle.c (get_mangled_vtable_map_var_name): New function. |
| * decl2.c (start_objects): Update function comment. |
| (cp_write_global_declarations): Call vtv_recover_class_info, |
| vtv_compute_class_hierarchy_transitive_closure and |
| vtv_build_vtable_verify_fndecl, before calling |
| finalize_compilation_unit, and call vtv_generate_init_rount after, IFF |
| flag_vtable_verify is true. |
| (vtv_start_verification_constructor_init_function): New function. |
| (vtv_finish_verification_constructor_init_function): New function. |
| * init.c (build_vtbl_address): Remove static qualifier from function. |
| |
| 2013-08-06 Jason Merrill <jason@redhat.com> |
| |
| PR c++/57825 |
| * tree.c (strip_typedefs) [METHOD_TYPE]: Preserve ref-qualifier. |
| |
| 2013-08-05 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/58080 |
| * typeck.c (cp_pointer_int_sum): Add tsubst_flags_t parameter. |
| (cp_build_binary_op): Adjust. |
| |
| 2013-08-04 Gabriel Dos Reis <gdr@integrable-solutions.net> |
| |
| * cxx-pretty-print.h (pp_c_base): Remove. |
| (cxx_pretty_printer): Derive from c_pretty_printer. |
| Adjust macros using pp_c_base. |
| * cp-objcp-common.c (cxx_initialize_diagnostics): Do not call pp_base. |
| * cxx-pretty-print.c (pp_cxx_nonconsecutive_character): Likewise. |
| (pp_cxx_colon_colon): Likewise. |
| (pp_cxx_separate_with): Likewise. |
| (pp_cxx_storage_class_specifier): Do not call pp_c_base. |
| (pp_cxx_expression_list): Likewise. |
| (pp_cxx_space_for_pointer_operator): Likewise. |
| (pp_cxx_init_declarator): Likewise. |
| (pp_cxx_call_argument_list): Likewise. |
| (pp_cxx_constant): Likewise. |
| (pp_cxx_postfix_expression): Likewise. |
| (pp_cxx_new_expression): Likewise. |
| (pp_cxx_unary_expression): Likewise. |
| (pp_cxx_cast_expression): Likewise. |
| (pp_cxx_conditional_expression): Likewise. |
| (pp_cxx_assignment_expression): Likewise. |
| (pp_cxx_expression): Likewise. |
| (pp_cxx_function_specifier): Likewise. |
| (pp_cxx_decl_specifier_seq): Likewise. |
| (pp_cxx_simple_type_specifier): Likewise. |
| (pp_cxx_type_specifier_seq): Likewise. |
| (pp_cxx_ptr_operator): Likewise. |
| (pp_cxx_parameter_declaration_clause): Likewise. |
| (pp_cxx_direct_declarator): Likewise. |
| (pp_cxx_direct_abstract_declarator): Likewise. |
| (pp_cxx_type_id): Likewise. |
| (pp_cxx_statement): Likewise. |
| (pp_cxx_pretty_printer_init): Tidy. |
| * error.c (init_error): Do not use pp_base. |
| (dump_aggr_type): Likewise. |
| (dump_type_prefix): Likewise. |
| (dump_type_suffix): Likewise. |
| (dump_global_iord): Likewise. |
| (dump_decl): Likewise. |
| (dump_function_decl): Likewise. |
| (dump_ref_qualifier): Likewise. |
| (reinit_cxx_pp): Likewise. |
| (decl_as_dwarf_string): Likewise. |
| (lang_decl_dwarf_name): Likewise. |
| (type_to_string): Likewise. |
| (cv_to_string): Likewise. |
| (cxx_print_error_function): Likewise. |
| (cp_diagnostic_starter): Likewise. |
| (cp_diagnostic_finalizer): Likewise. |
| (cp_print_error_function): Likewise. |
| (print_instantiation_context): Likewise. |
| (cp_printer): Likewise. |
| |
| 2013-08-03 Gabriel Dos Reis <gdr@integrable-solutions.net> |
| |
| * error.c (dump_type_prefix): Use specialized pretty printer |
| functions instead of pp_string or operators and punctuators. |
| (dump_decl): Likewise. |
| (dump_expr): Likewise. |
| |
| 2013-08-03 Jason Merrill <jason@redhat.com> |
| |
| DR 1286 |
| * pt.c (get_underlying_template): New. |
| (convert_template_argument, lookup_template_class_1): Use it. |
| |
| DR 1430 |
| PR c++/51239 |
| * pt.c (pack_expansion_args_count): Rename from |
| any_pack_expanson_args_p. |
| (coerce_template_parms): Reject pack expansion to |
| non-pack template parameter of alias template. |
| |
| 2013-08-03 Gabriel Dos Reis <gdr@integrable-solutions.net> |
| |
| * error.c (dump_aggr_type): Use specialized pretty printer |
| functions instead of pp_character. |
| (dump_type_prefix): Likewise. |
| (dump_simple_decl): Likewise. |
| (type_to_string): Likewise. |
| |
| 2013-08-02 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| * cp-tree.h (finish_stmt): Do not declare. |
| * decl.c (finish_stmt): Do not define. |
| * parser.c (cp_parser_expression_statement, |
| cp_parser_declaration_statement, |
| cp_parser_transaction_cancel): Don't call finish_stmt. |
| * semantics.c (finish_expr_stmt, finish_if_stmt, |
| finish_while_stmt, finish_do_stmt, finish_return_stmt, |
| finish_for_stmt, finish_switch_stmt, finish_compound_stmt, |
| finish_transaction_stmt): Likewise. |
| |
| 2013-08-01 Fabien Chêne <fabien@gcc.gnu.org> |
| |
| PR c++/54537 |
| * cp-tree.h: Check OVL_USED with OVERLOAD_CHECK. |
| * name-lookup.c (do_nonmember_using_decl): Make sure we have an |
| OVERLOAD before calling OVL_USED. Call diagnose_name_conflict |
| instead of issuing an error without mentioning the conflicting |
| declaration. |
| |
| 2013-07-31 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| * parser.c (cp_parser_sizeof_pack): Check cp_parser_identifier |
| return value for error_mark_node. |
| |
| 2013-07-30 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/57673 |
| * parser.c (cp_parser_cache_defarg): In an NSDMI don't stop when |
| token->type == CPP_ELLIPSIS. |
| |
| 2013-07-30 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/57947 |
| * call.c (is_std_init_list): Return false if cxx_dialect == cxx98. |
| |
| 2013-07-29 Jason Merrill <jason@redhat.com> |
| |
| PR c++/57901 |
| * semantics.c (build_data_member_initialization, constexpr_fn_retval): |
| Use break_out_target_exprs instead of unshare_expr. |
| |
| 2013-07-29 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/57948 |
| * call.c (initialize_reference): Don't crash when reference_binding |
| returns a conv with conv->kind == ck_ambig. |
| |
| 2013-07-29 Jason Merrill <jason@redhat.com> |
| |
| * mangle.c (write_name): Check for null context. |
| (write_unscoped_name): Allow PARM_DECL context. |
| |
| 2013-07-25 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/57981 |
| * decl.c (check_default_argument): Take a tsubst_flags_t parameter. |
| (grokparms): Adjust. |
| * parser.c (cp_parser_late_parse_one_default_arg): Likewise. |
| * pt.c (tsubst_default_argument, tsubst_default_arguments): Take |
| a tsubst_flags_t parameter. |
| (tsubst_decl): Adjust. |
| * call.c (convert_default_arg): Likewise. |
| * cp-tree.h (check_default_argument, tsubst_default_argument): |
| Update declarations. |
| |
| 2013-07-25 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/57880 |
| * parser.c (cp_parser_operator, case CPP_WSTRING, CPP_STRING16, |
| CPP_STRING32, CPP_UTF8STRING, CPP_WSTRING_USERDEF, |
| CPP_STRING16_USERDEF, CPP_STRING32_USERDEF, CPP_UTF8STRING_USERDEF): |
| Fix string_len management, tidy. |
| |
| 2013-07-24 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/57942 |
| * typeck.c (ptr_reasonably_similar): Use COMPARE_STRICT if either |
| target type is incomplete; return a bool, not an int. |
| * cp-tree.h (ptr_reasonably_similar): Adjust declaration. |
| |
| 2013-07-22 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| * cp-tree.h (DERIVED_FROM_P): Pass tf_none to lookup_base, not |
| tf_warning_or_error. |
| |
| 2013-07-21 Ondřej BÃÂlka <neleai@seznam.cz> |
| |
| * class.c: Fix typos. |
| * cp-array-notation.c: Likewise. |
| * cp-objcp-common.c: Likewise. |
| * decl.c: Likewise. |
| * init.c: Likewise. |
| * mangle.c: Likewise. |
| * parser.c: Likewise. |
| * pt.c: Likewise. |
| * semantics.c: Likewise. |
| |
| 2013-07-14 Adam Butcher <adam@jessamine.co.uk> |
| |
| * semantics.c (build_lambda_expr), |
| (build_lambda_object), (begin_lambda_type), (lambda_return_type), |
| (lambda_function), (lambda_capture_field_type), (is_capture_proxy), |
| (is_normal_capture_proxy), (insert_capture_proxy), |
| (insert_pending_capture_proxies), (lambda_proxy_type), |
| (build_capture_proxy), (vla_capture_type), |
| (register_capture_members), (add_default_capture), |
| (lambda_expr_this_capture), (maybe_resolve_dummy), |
| (nonlambda_method_basetype), (maybe_add_lambda_conv_op) and |
| (is_lambda_ignored_entity): Moved definitions into ... |
| * lambda.c: ... this new file. |
| |
| 2013-07-14 Marc Glisse <marc.glisse@inria.fr> |
| |
| * call.c (build_conditional_expr_1): Handle the case with 1 vector |
| and 2 scalars. Call save_expr before building a vector. |
| * typeck.c (cp_build_binary_op): Check complain before complaining. |
| |
| 2013-07-13 Lubos Lunak <l.lunak@suse.cz> |
| |
| PR c++/55203 |
| * init.c (build_aggr_init): Check for warn_unused attribute. |
| * decl.c (poplevel): Likewise. |
| |
| 2013-07-13 Jason Merrill <jason@redhat.com> |
| |
| PR c++/57402 |
| * init.c (build_vec_init): Use {} for arrays of class type. |
| (build_vec_delete): Don't take the address of the array. |
| |
| PR c++/57793 |
| * class.c (layout_class_type): Check for too-large class. |
| |
| * call.c (can_convert): Allow user-defined conversions. |
| (can_convert_standard): New. |
| * cp-tree.h: Declare it. |
| * cvt.c (convert_to_reference): Use it. |
| * pt.c (convert_nontype_argument): Likewise. |
| * search.c (check_final_overrider): Likewise. |
| Don't worry about user-defined conversions. |
| |
| 2013-07-10 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/57869 |
| * typeck.c (build_reinterpret_cast_1): With -Wconditionally-supported |
| warn about casting between pointer-to-function and pointer-to-object. |
| |
| 2013-07-09 Jason Merrill <jason@redhat.com> |
| |
| PR c++/57402 |
| * init.c (build_vec_init): Don't take shortcuts when initializing |
| a VLA. |
| |
| PR c++/57471 |
| * parser.c (cp_parser_sizeof_pack): Clear parser scopes. |
| |
| PR c++/57658 |
| * semantics.c (finish_id_expression): Return the id for an |
| unevaluated outer variable. |
| |
| PR c++/57526 |
| * semantics.c (lambda_capture_field_type): Build a DECLTYPE_TYPE |
| if the variable type uses 'auto'. |
| |
| PR c++/57437 |
| * typeck.c (check_return_expr): Lambda proxies aren't eligible |
| for nrv or return by move. |
| |
| PR c++/57532 |
| * parser.c (cp_parser_ref_qualifier_opt): Don't tentatively parse |
| a ref-qualifier in C++98 mode. |
| |
| PR c++/57545 |
| * pt.c (convert_nontype_argument) [INTEGER_CST]: Force the |
| argument to have the exact type of the parameter. |
| |
| PR c++/57551 |
| * semantics.c (cxx_eval_indirect_ref): Don't try to look through |
| a POINTER_PLUS_EXPR for type punning diagnostic. |
| |
| PR c++/57831 |
| * pt.c (tsubst_copy): Handle USING_DECL. |
| |
| 2013-07-09 Marc Glisse <marc.glisse@inria.fr> |
| |
| PR c++/53094 |
| * semantics.c (cxx_eval_bit_field_ref): Handle VECTOR_CST. |
| |
| 2013-07-09 Marc Glisse <marc.glisse@inria.fr> |
| |
| PR c++/53000 |
| * call.c (build_conditional_expr_1): Preserve xvalues. |
| |
| 2013-07-09 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/51786 |
| * parser.c (cp_parser_simple_declaration): Before calling shadow_tag |
| also check declares_class_or_enum. |
| |
| 2013-07-08 Jason Merrill <jason@redhat.com> |
| |
| PR c++/57550 |
| * pt.c (fn_type_unification): Only defer during substitution. |
| (type_unification_real): Defer during defarg substitution, |
| add checks parm to pass back deferred checks. |
| (unify, do_auto_deduction): Adjust. |
| * semantics.c (reopen_deferring_access_checks): New. |
| * cp-tree.h: Declare it. |
| |
| 2013-07-06 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/28262 |
| * parser.c (cp_parser_init_declarator): If we are parsing a typedef |
| set parser->default_arg_ok_p to false before cp_parser_declarator. |
| |
| 2013-07-05 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/14263 |
| * class.c (build_base_path): Improve diagnostic. |
| |
| 2013-07-04 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/38634 |
| * decl.c (start_preparsed_function): Return a bool, false if |
| push_template_decl fails. |
| (start_function): Adjust. |
| * cp-tree.h: Update. |
| |
| 2013-07-03 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/57771 |
| * parser.c (cp_parser_postfix_expression) <case RID_STATCAST> |
| Temporarily set parser->greater_than_is_operator_p for |
| cp_parser_expression and restore from saved value afterwards. |
| |
| 2013-06-28 Ed Smith-Rowland <3dw4rd@verizon.net> |
| |
| * cp-tree.h (UDLIT_OP_ANSI_PREFIX): Remove space. |
| * parser.c (cp_parser_operator()): Parse user-defined string |
| literal as literal operator. |
| |
| 2013-06-28 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/57645 |
| * class.c (deduce_noexcept_on_destructors): Save, set, and restore |
| TYPE_HAS_NONTRIVIAL_DESTRUCTOR (t) around the main loop over the |
| destructors. |
| |
| 2013-06-28 Balaji V. Iyer <balaji.v.iyer@intel.com> |
| |
| * parser.c (cp_parser_array_notation): Removed rejection array notation |
| of type function pointers. Added handling of array expressions when |
| Cilk Plus is enabled. Took out type-checking. |
| (cp_parser_postfix_open_square_expression): Moved normal array expr. |
| parsing into cp_parser_array_notation when cilkplus is enabled. |
| (cp_parser_compound_statement): Removed expansion of array notations. |
| (cp_parser_ctor_initializer_opt_and_function_body): Likewise. |
| (cp_parser_function_definition_after_declarator): Likewise. |
| (cp_parser_selection_statement): Removed error reporting. |
| (cp_parser_iteration_statement): Likewise. |
| (cp_parser_direct_declarator): Removed error checking/reporting if |
| array notations are used in the declarator. |
| * pt.c (instantiate_decl): Likewise. |
| (type_unification_real): Removed a check for ARRAY_NOTATION_REF. |
| (cxx_eval_constant_expression): Removed ARRAY_NOTATION_REF case. |
| (potential_constant_expression_1): Returned false for |
| ARRAY_NOTATION_REF case. |
| * cp-gimplify.c (cp_genericize): Added expansion of array notation |
| expressions here. |
| * cp-array-notation.c (make_triplet_val_inv): Removed loc and cry |
| parameters. Replaced build_decls with get_temp_regvar with type as |
| ptrdiff. |
| (create_array_refs): Made the type-casting to ptrdiff_type. |
| (replace_invariant_var): Added a check for void return type before |
| creating new var. Replaced build_decl and build_min_nt_loc with |
| get_temp_regvar. |
| (expand_an_in_modify_expr): Ditto. Replaced body of redundant else |
| with gcc_unreachable. Removed few unwanted checks. Made induction |
| variable type as ptrdiff_type. Removed loc and complain arguments |
| passed into make_triplet_val_inv. Replaced all modify expression's |
| code from NOP EXPR to INIT EXPR. Replaced all forceful appending |
| into stmt. list with the non-forceful one. Replaced some integer |
| conversion and equality-checking to using tree_int_cst_equal. |
| (expand_sec_reduce_builtin): All changes mentioned in above function |
| expand_an_in_modify_expr. Made the new variable type of |
| SEC_REDUCE_ANY/ALL_{NON}ZERO intrinsic functions as bool. |
| (expand_array_notation_exprs): Removed SWITCH_EXPR case. Moved all |
| the error reporting from parser to this function. Removed unwanted |
| statements and checks from SWITCH_STMT, WHILE_STMT, and DO_STMT cases. |
| (cilkplus_an_triplet_types_ok_p): Removed rejection of array notation |
| in function pointers. |
| (cp_expand_cond_array_notations): Added a new if statements to check |
| if condition has a zero rank. If so, then just return. |
| (expand_return_expr): Added a check for return expressions with a rank. |
| Replaced get_tmp_regvar with a create_temporary_var. |
| (build_array_notation_ref): Simplified and removed unwanted if-stmts. |
| Moved common code outside if-statements. Moved type-checking from |
| parser to here. |
| * semantics.c (finish_return_stmt): Removed a check for return exprs. |
| with a rank. |
| * call.c (convert_like_real): Removed a check for array notation |
| expression in a function. |
| (build_over_call): Likewise. |
| (magic_varargs_p): Added a check for builtin array notation function. |
| Made this function non-static and removed its prototype. |
| * cp-tree.h (magic_varargs_p): New prototype. |
| * typeck.c (cp_build_function_call_vec): Removed automatic setting of |
| nargs to the param->length when builtin reduction function is used. |
| (convert_arguments): Replaced check for a constant_p function with |
| margic_varargs_p function call. |
| (cp_build_binary_op): Removed calling of the function |
| find_correct_array_notation_type. |
| (cp_build_addr_expr_1): Removed an unwanted if-statement. |
| (convert_for_assignment): Removed automatic return of rhs when array |
| notation builtin function is used. |
| |
| 2013-06-28 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/57682 |
| * parser.c (cp_parser_save_member_function_body): Handle correctly |
| curly braces in function-try-block mem-initializers. |
| |
| 2013-06-27 Marc Glisse <marc.glisse@inria.fr> |
| |
| PR c++/57509 |
| * typeck.c (cp_build_vec_perm_expr): New function. |
| * cp-tree.h: Declare it. |
| * parser.c (cp_parser_postfix_expression): Call it. |
| * pt.c (tsubst_copy): Handle VEC_PERM_EXPR. |
| (tsubst_copy_and_build): Likewise. |
| |
| 2013-06-27 Marc Glisse <marc.glisse@inria.fr> |
| |
| PR c++/57172 |
| * pt.c (more_specialized_fn): If both arguments are references, |
| give priority to an lvalue. |
| |
| 2013-06-26 Jason Merrill <jason@redhat.com> |
| |
| * typeck2.c (store_init_value): Diagnose a non-constant |
| initializer for in-class static. |
| |
| PR c++/57408 |
| * semantics.c (add_capture): Set type to error_mark_node after |
| error. |
| |
| 2013-06-25 Ed Smith-Rowland <3dw4rd@verizon.net> |
| |
| PR c++/57640 |
| * parser.c (cp_parser_unqualified_id): Add declarator_p to checks |
| to trigger warning, (cp_literal_operator_id): Remove bogus TODO comment. |
| |
| 2013-06-22 Gabriel Dos Reis <gdr@integrable-solutions.net> |
| |
| * call.c (null_ptr_cst_p): Use cxx11 in lieu of cxx0x. |
| * class.c (add_implicitly_declared_members): Likewise. |
| (check_field_decl): Likewise. |
| (finalize_literal_type_property): Likewise. |
| (check_bases_and_members): Likewise. |
| * decl.c (poplevel): Likewise. |
| (case_conversion): Likewise. |
| (check_initializer): Likewise. |
| (grokfndecl): Likewise. |
| (check_static_variable_definition): Likewise. |
| (compute_array_index_type): Likewise. |
| (grokdeclarator): Likewise. |
| (build_enumerator): Likewise. |
| * friend.c (make_friend_class): Likewise. |
| * lex.c (init_reswords): Likewise. |
| * method.c (synthesized_method_walk): Likewise. |
| (implicitly_declare_fn): Likewise. |
| * parser.c (cp_parser_diagnose_invalid_type_name): Likewise. |
| (cp_parser_constant_expression): Likewise. |
| (cp_parser_for_init_statement): Likewise. |
| (cp_parser_block_declaration): Likewise. |
| (cp_parser_type_name): Likewise. |
| (cp_parser_enum_specifier): Likewise. |
| (cp_parser_enumerator_list): Likewise. |
| (cp_parser_member_declaration): Likewise. |
| (cp_nth_tokens_can_be_std_attribute_p): Likewise. |
| (cp_parser_template_declaration_after_export): Likewise. |
| * pt.c (convert_nontype_argument_function): Likewise. |
| (convert_nontype_argument): Likewise. |
| (convert_template_argument): Likewise. |
| (tsubst_copy_and_build): Likewise. |
| (build_non_dependent_expr): Likewise. |
| * semantics.c (non_const_var_error): Likewise. |
| (potential_constant_expression_1): Likewise. |
| * tree.c (lvalue_kind): Likewise. |
| (build_vec_init_expr): Likewise. |
| (cast_valid_in_integral_constant_expression_p): Likewise. |
| * typeck.c (build_x_conditional_expr): Likewise. |
| * typeck2.c (check_narrowing): Likewise. |
| |
| 2013-06-21 Balaji V. Iyer <balaji.v.iyer@intel.com> |
| |
| * cp-array-notation.c (cp_length_mismatch_in_expr_p): Remove. |
| (expand_an_in_modify_expr): Changed a function call from the above |
| removed function to length_mismatch_in_expr_p. |
| |
| 2013-06-21 Balaji V. Iyer <balaji.v.iyer@intel.com> |
| |
| * call.c (convert_like_real): Added a check if array notation is present |
| in expression. If so, then no conversion of arguments is necessary. |
| (build_over_call): Likewise. |
| * typeck.c (cp_build_function_call_vec): Likewise. |
| (convert_for_assignment): Likewise. |
| (cp_build_array_ref): Reject array notations with a rank greater than 1 |
| as an array's index. |
| (cp_build_binary_op): If array notations are preent in op, then call |
| find_correct_array_notation_type. |
| (cp_build_addr_expr_1): Handle ARRAY_NOTATION_REF similar to ARRAY_REF. |
| * cp-array-notation.c: New file. |
| * cp-objcp-common.c (cp_common_init_ts): Marked ARRAY_NOTATION_REF tree |
| as typed. |
| * cp-tree.h (fix_array_notation_exprs): New prototype. |
| * semantics.c (finish_return_stmt): Reject array notations as |
| return value. |
| (cxx_eval_constant_expression): Added ARRAY_NOTATION_REF case. |
| (potential_constant_expression_1): Likewise. |
| * tree.c (lvalue_kind): Likewise. |
| * error.c (dump_decl): Likewise. |
| (dump_expr): Likewise. |
| * pt.c (ARRAY_NOTATION_REF): Likewise. |
| (type_unification_real): Do not unify any arguments if array notations |
| are found in arg. |
| (instantiate_decl): Added a check for array notaitons inside the |
| function body. If so, then expand them. |
| * parser.c (cp_parser_array_notation): New function. |
| (cp_parser_postfix_open_square_expression): Added a check for colons |
| inside square braces. If found, then handle the array access as an |
| array notation access. Also, disable auto-correction from a single |
| colon to scope when Cilk Plus is enabled. |
| (cp_parser_compound_statement): Added a check for array notations |
| inside the statement. If found, then expand them. |
| (cp_parser_ctor_initializer_opt_and_function_body): Likewise. |
| (cp_parser_function_definition_after_declarator): Likewise. |
| (cp_parser_selection_statement): Searched for array notations inside |
| condition. If so, then emit an error. |
| (cp_parser_iteration_statement): Likewise. |
| (cp_parser_direct_declarator): Reject array notations inside a |
| variable or array declaration. |
| * Make-lang.in (CXX_AND_OBJCXX_OBJS): Added cp/cp-array-notation.o. |
| |
| 2013-06-20 Jason Merrill <jason@redhat.com> |
| |
| PR c++/55149 |
| * decl.c (compute_array_index_type): Don't reject VLAs in SFINAE |
| context if we're in C++14 mode. |
| * tree.c (array_of_runtime_bound_p): Return true for a dependent |
| bound that is not potentually constant. |
| * cp-tree.h (DECL_VLA_CAPTURE_P, REFERENCE_VLA_OK): New. |
| * pt.c (tsubst) [REFERENCE_TYPE]: Check REFERENCE_VLA_OK. |
| * semantics.c (build_lambda_object): Don't rvalue a VLA capture. |
| (build_capture_proxy): Set REFERENCE_VLA_OK. |
| (vla_capture_type): Make it a proper C++ class. |
| (add_capture): Set DECL_VLA_CAPTURE_P. Don't pre-digest the |
| initializer. |
| |
| * decl.c (compute_array_index_type): Use size_one_node. |
| |
| * pt.c (process_partial_specialization): Build a TEMPLATE_DECL for |
| a partial specialization. |
| (tsubst_decl): Don't clobber CLASSTYPE_TI_TEMPLATE of a partial |
| specialization. |
| (most_specialized_class): Adjust. |
| |
| * cp-tree.h (DECL_TEMPLATE_PARMS, DECL_TEMPLATE_RESULT) |
| (DECL_TEMPLATE_INSTANTIATIONS, DECL_TEMPLATE_SPECIALIZATIONS): Use |
| TEMPLATE_DECL_CHECK. |
| |
| 2013-06-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org> |
| |
| PR c++/57638 |
| * pt.c (unify, [TEMPLATE_PARM_INDEX]): Pass to unify_type_mismatch |
| TREE_TYPE (arg), not arg itself. |
| |
| 2013-06-18 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/53211 |
| * pt.c (type_dependent_expression_p): Handle an array of unknown |
| bound depending on a variadic parameter. |
| * parser.c (cp_parser_range_for): Revert PR56794 changes. |
| |
| 2013-06-17 Richard Biener <rguenther@suse.de> |
| |
| * cp-tree.h (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Move to tree.h. |
| |
| 2013-06-17 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/16128 |
| * parser.c (cp_parser_expression_statement): Check whether |
| cp_parser_expression returns error_mark_node. |
| |
| 2013-06-14 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/51413 |
| * semantics.c (finish_offsetof): Handle INDIRECT_REF as expr. |
| |
| 2013-06-14 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/57599 |
| * rtti.c (build_dynamic_cast_1): In case of cast to an unambiguous |
| accessible base simply forward to build_static_cast. |
| |
| 2013-06-12 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/38958 |
| * decl.c (poplevel): For the benefit of -Wunused-variable see |
| through references. |
| |
| 2013-06-12 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| * parser.c (cp_parser_nested_name_specifier_opt): Fix typo in comment. |
| |
| 2013-06-12 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/42021 |
| * parser.c (cp_parser_nested_name_specifier_opt): Avoid emitting |
| again diagnostic already emitted by cp_parser_lookup_name. |
| |
| 2013-06-11 Jan Hubicka <jh@suse.cz> |
| |
| PR c++/57551 |
| * cp/pt.c (mark_decl_instantiated): Do not export explicit |
| instantiations of anonymous namespace templates. |
| |
| 2013-06-10 Jason Merrill <jason@redhat.com> |
| |
| * name-lookup.c (add_decl_to_level): Add decls in an anonymous |
| namespace to static_decls. |
| |
| 2013-06-07 Sriraman Tallam <tmsriram@google.com> |
| |
| PR c++/57548 |
| * call.c (build_over_call): Check if current_function_decl is |
| NULL. |
| |
| 2013-06-07 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/53658 |
| * pt.c (lookup_template_class_1): Consistently use TYPE_MAIN_DECL, |
| not TYPE_STUB_DECL, to access the _DECL for a _TYPE. |
| |
| 2013-06-06 Jason Merrill <jason@redhat.com> |
| |
| PR c++/55520 |
| * semantics.c (add_capture): Diagnose capture of variable-size |
| type that is not a C++1y array of runtime bound. |
| |
| * decl.c (grokdeclarator): Keep a decl with error type. |
| (grokfield, grokbitfield): Likewise. |
| * pt.c (instantiate_class_template_1): Likewise. |
| (tsubst_decl): Drop redundant error. |
| * class.c (walk_subobject_offsets): Handle erroneous fields. |
| * typeck2.c (process_init_constructor_record): Likewise. |
| |
| 2013-06-05 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/51908 |
| * parser.c (cp_parser_postfix_expression [RID_*CAST]): Set |
| parser->in_type_id_in_expr_p before calling cp_parser_type_id. |
| |
| 2013-06-03 Jan Hubicka <jh@suse.cz> |
| |
| * decl2.c (maybe_make_one_only): Use forced_by_abi instead of |
| mark_decl_referenced. |
| (mark_needed): Likewise. |
| |
| 2013-06-03 Jason Merrill <jason@redhat.com> |
| |
| * class.c (mark_type_abi_tags): New. |
| (check_abi_tags): Use it. |
| |
| 2013-06-03 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/57419 |
| * decl2.c (mark_used): Add overload taking a tsubst_flags_t too. |
| * semantics.c (finish_qualified_id_expr): Use it. |
| * cp-tree.h: Update. |
| |
| 2013-06-01 Jan Hubicka <jh@suse.cz> |
| |
| * decl2.c (cp_write_global_declarations): Replace same_body_alias |
| by symbol.cpp_implicit_alias. |
| |
| 2013-05-30 Jason Merrill <jason@redhat.com> |
| |
| PR c++/57404 |
| * cp-lang.c (cp_classify_record): Handle structs without |
| TYPE_LANG_SPECIFIC. |
| |
| PR c++/52377 |
| * class.c (common_enclosing_class): New. |
| * cp-tree.h: Declare it. |
| * init.c (sort_mem_initializers): Don't splice out a union member |
| with an NSDMI. |
| |
| 2013-05-29 Jan Hubicka <jh@suse.cz> |
| |
| * tree.c (cp_fix_function_decl_p): Update for new symtab flags. |
| * decl2.c )var_finalized_p, cp_write_global_declarations): Likewise. |
| |
| 2013-05-25 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/25666 |
| * decl2.c (check_classfn): Check for destructors declared as member |
| templates. |
| |
| 2013-05-24 Jason Merrill <jason@redhat.com> |
| |
| PR c++/56971 |
| * pt.c (any_template_arguments_need_structural_equality_p): A |
| TEMPLATE_TEMPLATE_PARM can require structural type comparison. |
| |
| 2013-05-24 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/19618 |
| * class.c (check_bitfield_decl): Warn for bool and enum bitfields |
| with width exceeding the type. |
| |
| 2013-05-24 Jason Merrill <jason@redhat.com> |
| |
| PR c++/57391 |
| * semantics.c (cxx_eval_constant_expression): Handle FMA_EXPR. |
| (cxx_eval_trinary_expression): Rename from cxx_eval_vec_perm_expr. |
| |
| 2013-05-23 Jason Merrill <jason@redhat.com> |
| |
| PR c++/57388 |
| * tree.c (build_ref_qualified_type): Clear |
| FUNCTION_RVALUE_QUALIFIED for lvalue ref-qualifier. |
| |
| 2013-05-22 Jason Merrill <jason@redhat.com> |
| |
| PR c++/56930 |
| * call.c (convert_like_real): Use cp_convert_and_check. |
| * cvt.c (cp_convert_and_check): Use maybe_constant_value. |
| * semantics.c (cxx_eval_constant_expression): Handle LTGT_EXPR. |
| (potential_constant_expression_1): Handle OMP_ATOMIC*. |
| |
| PR c++/56915 |
| * semantics.c (maybe_add_lambda_conv_op): Give up if the call op |
| isn't defined. |
| |
| 2013-05-22 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/57352 |
| * parser.c (cp_parser_conversion_type_id): Set up |
| parser->type_definition_forbidden_message before calling |
| cp_parser_type_specifier_seq. |
| |
| 2013-05-22 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/57211 |
| * method.c (defaultable_fn_check): Avoid do_warn_unused_parameter |
| warnings about defaulted functions. |
| |
| 2013-05-21 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| * call.c (build_conditional_expr_1): Add location_t parameter. |
| (build_conditional_expr): Likewise. |
| * typeck.c (rationalize_conditional_expr, cp_build_array_ref, |
| get_member_function_from_ptrfunc, build_x_conditional_expr, |
| cp_build_modify_expr): Update. |
| * init.c (build_new_1): Likewise. |
| * cp-tree.h: Update declaration. |
| |
| 2013-05-20 Jason Merrill <jason@redhat.com> |
| |
| PR c++/57016 |
| * pt.c (instantiation_dependent_r) [TRAIT_EXPR]: Only check type2 |
| if there is one. |
| |
| PR c++/57102 |
| * decl.c (fndecl_declared_return_type): Also look in |
| DECL_SAVED_FUNCTION_DATA. |
| |
| 2013-05-20 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/12288 |
| * parser.c (cp_parser_parameter_declaration): Check return value |
| of cp_parser_parse_and_diagnose_invalid_type_name. |
| |
| 2013-05-20 Jason Merrill <jason@redhat.com> |
| |
| PR c++/57319 |
| * class.c (vbase_has_user_provided_move_assign): New. |
| * method.c (synthesized_method_walk): Check it. |
| * cp-tree.h: Declare it. |
| |
| PR c++/57325 |
| * tree.c (build_cplus_array_type): Copy layout info if element |
| type is complete. |
| |
| 2013-05-20 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/23608 |
| * call.c (build_new_op_1): Propagate loc to cp_build_binary_op. |
| |
| 2013-05-20 Jason Merrill <jason@redhat.com> |
| |
| PR c++/57317 |
| * decl2.c (determine_visibility): Use PRIMARY_TEMPLATE_P to decide |
| whether a template has its own args. |
| |
| 2013-05-20 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/57327 |
| * pt.c (unify_no_common_base): Swap arg and parm arguments to inform. |
| |
| 2013-05-20 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/10207 |
| * parser.c (cp_parser_postfix_expression): Use cp_parser_braced_list |
| instead of cp_parser_initializer_list for compound-literals. |
| |
| 2013-05-20 Marc Glisse <marc.glisse@inria.fr> |
| |
| PR c++/57175 |
| * typeck.c (check_return_expr): Reverse the alignment comparison. |
| |
| 2013-05-17 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/18126 |
| * parser.c (cp_parser_sizeof_operand): As a GNU Extension, parse |
| correctly sizeof compound-literal; update comments. |
| |
| 2013-05-16 Marc Glisse <marc.glisse@inria.fr> |
| |
| * call.c (build_conditional_expr_1): Use cp_build_binary_op |
| instead of directly calling fold_build2. |
| |
| 2013-05-16 Jason Merrill <jason@redhat.com> |
| |
| * Make-lang.in (cc1plus$(exeext)): Use link mutex. |
| |
| PR c++/57279 |
| * decl.c (grokdeclarator): Allow member function qualifiers in |
| TYPENAME context in C++11 mode. |
| |
| 2013-05-16 Dodji Seketeli <dodji@redhat.com> |
| |
| PR c++/56782 - Regression with empty pack expansions |
| * pt.c (use_pack_expansion_extra_args_p): When at least a |
| parameter pack has an empty argument pack, and another parameter |
| pack has no argument pack at all, use the PACK_EXPANSION_EXTRA |
| mechanism. |
| |
| 2013-05-15 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| * name-lookup.c (pushdecl_maybe_friend_1): Replace pairs of |
| warning_at and permerror with warning_at/inform and permerror/ |
| inform, respectively. |
| |
| 2013-05-15 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/31952 |
| * name-lookup.c (pushdecl_maybe_friend_1): Diagnose illegal |
| redeclarations. |
| |
| 2013-05-14 Jason Merrill <jason@redhat.com> |
| |
| PR c++/57243 |
| * parser.c (cp_parser_range_for): Call complete_type. |
| |
| PR c++/57041 |
| * pt.c (tsubst_copy_and_build): Don't recur into a designator. |
| |
| 2013-05-14 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/53903 |
| * method.c (defaulted_late_check): Check for compatible exception |
| specification out of class explicitly defaulted functions too. |
| |
| 2013-05-14 Jason Merrill <jason@redhat.com> |
| |
| PR c++/56998 |
| * semantics.c (potential_constant_expression_1): Make sure the |
| called function is potentially constant. |
| * call.c (null_ptr_cst_p): Revert earlier change. |
| |
| 2013-05-13 Jason Merrill <jason@redhat.com> |
| |
| PR c++/56998 |
| * call.c (null_ptr_cst_p): An expression with side-effects can't |
| be a C++03 null pointer constant. |
| |
| PR c++/57041 |
| * decl.c (reshape_init_class): Handle error_mark_node. |
| |
| PR c++/57254 |
| * typeck.c (merge_types): Propagate ref-qualifier |
| in METHOD_TYPE case. |
| |
| PR c++/57253 |
| * decl.c (grokdeclarator): Apply ref-qualifier |
| in the TYPENAME case. |
| |
| PR c++/57252 |
| * decl.c (decls_match): Compare ref-qualifiers. |
| |
| 2013-05-10 Jason Merrill <jason@redhat.com> |
| |
| PR c++/57196 |
| * pt.c (convert_template_argument): Use dependent_template_arg_p, |
| not uses_template_parms. |
| |
| PR c++/57047 |
| * semantics.c (cxx_fold_indirect_ref): Fix thinko. |
| |
| PR c++/55149 |
| * semantics.c (add_capture): Error rather than abort on copy |
| capture of VLA. |
| * typeck.c (maybe_warn_about_returning_address_of_local): Don't |
| warn about capture proxy. |
| |
| 2013-05-09 Jason Merrill <jason@redhat.com> |
| |
| * decl.c (cp_finish_decl): Only check VLA bound in C++1y mode. |
| |
| PR c++/57222 |
| * pt.c (lookup_template_class_1): Handle getting a template |
| template parameter as D1. |
| |
| N3639 C++1y VLA diagnostics |
| * decl.c (grokdeclarator): Complain about reference, pointer, or |
| typedef to VLA. |
| (create_array_type_for_decl): Complain about array of VLA. |
| * pt.c (tsubst): Likewise. |
| * rtti.c (get_tinfo_decl): Talk about "array of runtime bound". |
| * semantics.c (finish_decltype_type): Complain about decltype of VLA. |
| * typeck.c (cp_build_addr_expr_1): Complain about VLA. |
| (cxx_sizeof_or_alignof_type): Likewise. |
| |
| N3639 C++1y VLA support |
| * decl.c (compute_array_index_type): Allow VLAs in C++1y mode. |
| (check_array_initializer): Allow VLA init. |
| (reshape_init_array_1): Adjust. |
| (cp_finish_decl): Check for invalid VLA length. |
| * typeck2.c (process_init_constructor_array): Adjust. |
| (store_init_value): Use build_vec_init for VLAs. |
| * semantics.c (add_capture): Capture VLA as ptr+len. |
| (vla_capture_type): New. |
| (build_capture_proxy): Rebuild the VLA. |
| * typeck.c (build_simple_component_ref): Split out from... |
| (build_ptrmemfunc_access_expr): ...here. |
| * tree.c (array_of_runtime_bound_p): New. |
| * init.c (throw_bad_array_length): New. |
| (build_vec_init): Use it. |
| * parser.c (cp_convert_range_for): When iterating over a VLA, |
| use it directly rather than bind a reference. |
| * cp-tree.h: Declare new functions. |
| |
| 2013-05-08 Jason Merrill <jason@redhat.com> |
| |
| * except.c (is_admissible_throw_operand_or_catch_parameter): Check |
| variably_modified_type_p. |
| (expand_start_catch_block): Mark the typeinfo used here. |
| * semantics.c (finish_handler_parms): Not here. |
| |
| * error.c (dump_type_suffix): Try harder on VLA length. |
| |
| Core 624/N2932 |
| * init.c (throw_bad_array_new_length): New. |
| (build_new_1): Use it. Don't warn about braced-init-list. |
| (build_vec_init): Use it. |
| * call.c (build_operator_new_call): Use it. |
| |
| PR c++/57068 |
| * decl.c (grokdeclarator): Warn about ref-qualifiers here. |
| * parser.c (cp_parser_ref_qualifier_seq_opt): Not here. |
| * error.c (maybe_warn_cpp0x): s/0x/11/. |
| |
| 2013-05-08 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/51226 |
| * parser.c (cp_parser_enum_specifier): Handle nested_name_specifier |
| == error_mark_node. |
| |
| 2013-05-06 Marc Glisse <marc.glisse@inria.fr> |
| |
| * typeck.c (cp_build_binary_op): Call save_expr before |
| build_vector_from_val. |
| |
| 2013-05-06 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/57183 |
| * decl.c (cp_finish_decl): After do_auto_deduction copy the |
| qualifers with cp_apply_type_quals_to_decl. |
| |
| 2013-05-05 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| * pt.c (convert_nontype_argument): Add missing whitespace in |
| error message. |
| |
| 2013-05-04 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/53745 |
| * decl.c (build_enumerator): Improve error message. |
| |
| 2013-05-03 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/14283 |
| * parser.c (cp_parser_diagnose_invalid_type_name): Improve error |
| messages for template types and fix column numbers. |
| |
| 2013-05-01 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/57132 |
| * pt.c (tsubst_copy_and_build, MODOP_EXPR): Increase / decrease |
| c_inhibit_evaluation_warnings around build_x_modify_expr call. |
| |
| 2013-05-01 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/57092 |
| * semantics.c (finish_decltype_type): Handle instantiated template |
| non-type arguments. |
| |
| 2013-04-28 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/56450 |
| * semantics.c (finish_decltype_type): Handle COMPOUND_EXPR. |
| |
| 2013-04-26 Jakub Jelinek <jakub@redhat.com> |
| |
| * error.c (cp_print_error_function): Adjust file_name_as_prefix |
| caller. |
| |
| 2013-04-25 Jason Merrill <jason@redhat.com> |
| |
| PR c++/56859 |
| * typeck.c (cxx_alignas_expr): Handle value-dependence properly. |
| |
| PR c++/50261 |
| * init.c (perform_member_init): Call reshape_init. |
| |
| 2013-04-24 Jason Merrill <jason@redhat.com> |
| |
| PR c++/53721 |
| * parser.c (cp_parser_postfix_dot_deref_expression): Fix thinko. |
| |
| 2013-04-24 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| * typeck.c (cxx_sizeof_or_alignof_type): Change -Wpointer-arith |
| pedwarn to simply use OPT_Wpointer_arith. |
| (cp_build_unary_op): Likewise. |
| |
| 2013-04-24 Jason Merrill <jason@redhat.com> |
| |
| N3648: init-captures are named. |
| * semantics.c (add_capture): Don't prepend "__" to init-captures. |
| (build_capture_proxy): Adjust. |
| * error.c (dump_simple_decl): Check DECL_NORMAL_CAPTURE_P. |
| |
| N3648: Allow braced and parenthesized initializers. |
| * parser.c (cp_parser_lambda_introducer): Use cp_parser_initializer. |
| * pt.c (tsubst) [DECLTYPE_TYPE]: Handle DECLTYPE_FOR_INIT_CAPTURE. |
| * semantics.c (lambda_capture_field_type): Use do_auto_deduction. |
| (add_capture): Collapse a parenthesized initializer into a single |
| expression. |
| * cp-tree.h (DECLTYPE_FOR_INIT_CAPTURE): New. |
| |
| 2013-04-24 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/56970 |
| * init.c (build_offset_ref): Add tsubst_flags_t parameter. |
| * semantics.c (finish_qualified_id_expr): Likewise. |
| (finish_id_expression): Update. |
| * typeck.c (cp_build_addr_expr_1): Likewise. |
| * pt.c (tsubst_qualified_id, resolve_nondeduced_context): Likewise. |
| * cp-tree.h: Update declarations. |
| |
| 2013-04-22 Jason Merrill <jason@redhat.com> |
| |
| Core 1586 |
| * parser.c (cp_parser_unqualified_id): Handle ~auto. |
| (cp_parser_pseudo_destructor_name): Likewise. |
| (cp_parser_postfix_dot_deref_expression): Adjust. |
| (cp_lexer_nth_token_is_keyword): New. |
| * semantics.c (finish_pseudo_destructor_expr): Handle ~auto. |
| * typeck.c (lookup_destructor): Handle ~auto. |
| |
| * pt.c (fn_type_unification): Push tinst level around |
| type_unification_real if we aren't explaining. |
| * cp-tree.h (TFF_NO_TEMPLATE_BINDINGS): New. |
| * error.c (dump_function_decl): Respect it. |
| (subst_to_string): Pass it. |
| |
| PR c++/48665 |
| * rtti.c (get_typeid): Diagnose qualified function type. |
| * pt.c (tsubst) [POINTER_TYPE]: Likewise. |
| |
| * error.c (dump_aggr_type): Fix lambda detection. |
| (dump_simple_decl): Pretty-print capture field. |
| |
| N3323 |
| * cvt.c (build_expr_type_conversion): Two conversions that return |
| the same type aren't necessarily ambiguous. |
| |
| N3648 |
| * parser.c (cp_parser_lambda_introducer): Make lambda capture init |
| pedwarn unconditional except in C++1y mode. |
| |
| * semantics.c (potential_constant_expression_1): Don't crash on |
| 'this' in NSDMI. |
| |
| Core 1612 |
| * semantics.c (finish_id_expression): Reject capture of anonymous |
| union member. |
| |
| Core 1609 |
| * decl2.c (check_default_args): Check for pack expansion. |
| |
| * mangle.c (write_type): Mangle decltype(auto). |
| |
| 2013-04-19 Jason Merrill <jason@redhat.com> |
| |
| N3638 changes to return type deduction |
| * decl.c (undeduced_auto_decl): New. |
| (require_deduced_type): New. |
| (fndecl_declared_return_type): New. |
| (decls_match): Use it. |
| (duplicate_decls): Don't check for auto return. |
| (grokdeclarator): Reject virtual auto. |
| * class.c (resolve_address_of_overloaded_function): Handle |
| auto function templates. |
| * decl2.c (mark_used): Use undeduced_auto_decl, require_deduced_type. |
| * cp-tree.h: Declare new fns. |
| * error.c (dump_function_decl): Use fndecl_declared_return_type. |
| * search.c (check_final_overrider): Likewise. |
| * pt.c (make_decltype_auto): New. |
| (do_auto_deduction): Require plain decltype(auto). |
| (is_auto): Adjust. |
| |
| DR 941 |
| * decl.c (duplicate_decls): Don't propagate DECL_DELETED_FN to |
| template specializations. |
| |
| 2013-04-16 Ed Smith-Rowland <3dw4rd@verizon.net> |
| |
| Implement n3599 - Literal operator templates for strings. |
| * parser.c (make_string_pack (tree value)): New function. |
| (cp_parser_userdef_string_literal (cp_token *)): Use it |
| to construct calls to character string literal operator templates. |
| (cp_parser_template_declaration_after_export): Check for new string |
| literal operator template parameter form. |
| |
| 2013-04-15 Jason Merrill <jason@redhat.com> |
| |
| * pt.c (tsubst) [DECLTYPE_TYPE]: Use tsubst_copy_and_build. |
| |
| PR c++/52748 |
| * pt.c (tsubst) [DECLTYPE_TYPE]: If ~id is an expression |
| rather than a destructor name, it isn't an unqualified-name. |
| (tsubst_copy_and_build): Pass down decltype_flag to operator |
| handling code, too. |
| |
| PR c++/56388 |
| * semantics.c (insert_capture_proxy): Just use index 1 in the |
| stmt_list_stack. |
| |
| 2013-04-12 Jakub Jelinek <jakub@redhat.com> |
| |
| * error.c (cp_print_error_function, |
| print_instantiation_partial_context_line, |
| maybe_print_constexpr_context): Colorize locus strings. |
| |
| 2013-04-11 Jason Merrill <jason@redhat.com> |
| |
| PR c++/52748 |
| * parser.c (complain_flags): New. |
| (cp_parser_postfix_expression): Use it. |
| (cp_parser_unary_expression): Likewise. |
| (cp_parser_binary_expression): Likewise. |
| (cp_parser_assignment_expression): Likewise. |
| (cp_parser_expression): Likewise. |
| (cp_parser_postfix_open_square_expression): Take decltype_p. |
| (cp_parser_builtin_offsetof): Adjust. |
| (cp_convert_range_for): Pass complain to finish_unary_op_expr. |
| * decl2.c (grok_array_decl): Add decltype_p parm. |
| * cp-tree.h: Adjust prototype. |
| * semantics.c (finish_unary_op_expr): Add complain parm. |
| |
| 2013-04-11 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/56895 |
| * call.c (null_ptr_cst_p): Call fold_non_dependent_expr_sfinae before |
| calling maybe_constant_value for C++98. |
| |
| 2013-04-11 Jason Merrill <jason@redhat.com> |
| |
| PR c++/56901 |
| * semantics.c (lambda_capture_field_type, lambda_proxy_type): |
| Strip references before checking WILDCARD_TYPE_P. |
| |
| 2013-04-11 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| * call.c (build_conditional_expr_1, build_over_call): Protect |
| error calls with complain & tf_error. |
| * typeck.c (finish_class_member_access_expr, cp_build_binary_op, |
| build_x_unary_op, cp_build_unary_op, cp_build_compound_expr, |
| build_ptrmemfunc): Likewise. |
| (lookup_destructor): Take tsubst_flags_t parameter, adjust. |
| |
| * cvt.c (warn_ref_binding): Rename to diagnose_ref_binding. |
| (convert_to_reference): Adjust. |
| |
| 2013-04-11 Jason Merrill <jason@redhat.com> |
| |
| * pt.c (tsubst_copy) [VAR_DECL]: Don't call tsubst for |
| local variables, look them up instead. |
| (tsubst_decl) [VAR_DECL]: Remove handling for anonymous union |
| proxies and substitution in unevaluated context. |
| (tsubst_expr) [OMP_FOR]: Instantiate OMP_FOR_PRE_BODY |
| before the iterators. |
| |
| PR c++/23055 |
| * pt.c (uses_deducible_template_parms): New. |
| (deducible_array_bound, deducible_expression): New. |
| (deducible_template_args): New. |
| (unify_one_argument): Call uses_deducible_template_parms. |
| |
| 2013-04-11 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/56913 |
| * typeck2.c (build_m_component_ref): Protect error calls with |
| (complain & tf_error). |
| |
| 2013-04-11 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/54216 |
| * parser.c (cp_parser_enum_specifier): Check for empty |
| anonymous enums and anonymous scoped enums. |
| |
| 2013-04-10 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/56895 |
| * typeck.c (cp_build_binary_op): Call fold_non_dependent_expr_sfinae |
| first before calling maybe_constant_value for warn_for_div_by_zero |
| or invalid shift count warning purposes. |
| |
| 2013-04-09 Jason Merrill <jason@redhat.com> |
| |
| PR c++/25466 |
| * rtti.c (build_typeid): Check the address of the argument |
| rather than looking for an INDIRECT_REF. |
| |
| 2013-04-04 Jason Merrill <jason@redhat.com> |
| |
| PR c++/56838 |
| PR c++/17232 |
| * typeck2.c (abstract_virtuals_error_sfinae): Disable |
| complete_type again. |
| |
| 2013-04-08 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/56871 |
| * decl.c (validate_constexpr_redeclaration): Allow an explicit |
| specialization to be different wrt the constexpr specifier. |
| |
| 2013-04-06 Jason Merrill <jason@redhat.com> |
| |
| * parser.c (cp_parser_std_attribute): Treat [[noreturn]] like GNU |
| noreturn attribute. |
| |
| 2013-04-05 Ed Smith-Rowland <3dw4rd@verizon.net> |
| |
| * parser.c (cp_parser_ref_qualifier_seq_opt): Move to |
| cp_parser_ref_qualifier_opt. Error if more than one ref-qual found. |
| |
| 2013-04-03 Jason Merrill <jason@redhat.com> |
| |
| * cp-tree.h (FUNCTION_OR_METHOD_TYPE_CHECK): Remove. |
| (TYPE_RAISES_EXCEPTIONS): Use FUNC_OR_METHOD_CHECK instead. |
| (FUNCTION_REF_QUALIFIED, FUNCTION_RVALUE_QUALIFIED): Likewise. |
| |
| * mangle.c (write_type): When writing a function type with |
| function-cv-quals, don't add the unqualified type as a |
| substitution candidate. |
| |
| 2013-04-03 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/56815 |
| * typeck.c (cp_build_unary_op): Change -Wpointer-arith permerror to |
| pedwarn. |
| |
| 2013-04-03 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/56819 |
| * tree.c (strip_typedefs): Copy NON_DEFAULT_TEMPLATE_ARGS_COUNT |
| from args to new_args. |
| (strip_typedefs_expr): Copy NON_DEFAULT_TEMPLATE_ARGS_COUNT from t to |
| r instead of doing {S,G}ET_NON_DEFAULT_TEMPLATE_ARGS_COUNT. |
| |
| 2013-04-02 Jason Merrill <jason@redhat.com> |
| |
| PR c++/56821 |
| * mangle.c (write_function_type): Mangle ref-qualifier. |
| (write_nested_name): Likewise. |
| (canonicalize_for_substitution): Preserve ref-qualifier. |
| (write_type): Likewise. |
| |
| PR c++/34949 |
| * decl.c (begin_destructor_body): Clobber the object in a cleanup. |
| |
| 2013-04-02 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| * friend.c (do_friend): Use COMPLETE_OR_OPEN_TYPE_P. |
| * pt.c (find_parameter_packs_r): Use TYPE_ALIAS_P and TYPE_TI_ARGS. |
| (for_each_template_parm_r): Use TYPE_TI_ARGS. |
| |
| 2013-04-02 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| * cp-tree.h (TAGGED_TYPE_P): Remove. |
| (IS_OVERLOAD_TYPE): Rename to OVERLOAD_TYPE_P, adjust. |
| (TYPE_ANONYMOUS_P): Adjust. |
| * call.c (build_new_op_1): Likewise. |
| * class.c (find_abi_tags_r): Likewise. |
| * decl.c (warn_misplaced_attr_for_class_type, start_decl, |
| type_is_deprecated): Likewise. |
| * decl2.c (grokfield, min_vis_r): Likewise. |
| * pt.c (get_template_info): Likewise. |
| * tree.c (handle_abi_tag_attribute): Likewise. |
| |
| 2013-04-01 Jason Merrill <jason@redhat.com> |
| |
| * semantics.c (maybe_constant_value): Check |
| instantiation_dependent_expression_p. |
| * pt.c (build_non_dependent_expr): Don't check it here. |
| |
| PR c++/56772 |
| * init.c (build_new): Don't try to process an array initializer |
| at template definition time. |
| |
| PR c++/56793 |
| * typeck.c (finish_class_member_access_expr): Handle enum scope. |
| |
| PR c++/56794 |
| * parser.c (cp_parser_range_for): Don't try to do auto deduction |
| in a template if the type of the range is incomplete. |
| |
| * call.c (add_function_candidate): Take the address of 'this' here. |
| (build_over_call): And here. |
| (build_new_method_call_1, build_op_call_1): Not here. |
| (build_user_type_conversion_1): Or here. |
| (add_candidates): Adjust. |
| |
| * cxx-pretty-print.h (pp_cxx_cv_qualifiers): New. |
| * class.c (same_signature_p): Use type_memfn_quals. |
| * cp-tree.h (TYPE_RAISES_EXCEPTIONS): Use |
| FUNCTION_OR_METHOD_TYPE_CHECK. |
| * error.c (dump_type_suffix): Add padding before cv-qualifiers. |
| * pt.c (unify): Use static_fn_type. |
| |
| 2013-04-01 Bronek Kozicki <b.kozicki@gmail.com> |
| Jason Merrill <jason@redhat.com> |
| |
| Implement N2439 (ref-qualifiers for 'this') |
| * cp-tree.h (FUNCTION_REF_QUALIFIED): New. |
| (FUNCTION_RVALUE_QUALIFIED): New. |
| (FUNCTION_OR_METHOD_TYPE_CHECK): New. |
| (cpp0x_warn_str): Add CPP0X_REF_QUALIFIER. |
| (cp_ref_qualifier): New enum. |
| (cp_declarator): Add ref_qualifier. |
| * parser.c (cp_parser_ref_qualifier_seq_opt): New. |
| (cp_parser_direct_declarator): Use it. |
| (make_call_declarator): Adjust. |
| (cp_parser_lambda_declarator_opt): Adjust. |
| * call.c (add_function_candidate): Handle ref-qualifier overload |
| resolution semantics. |
| (standard_conversion): Adjust. |
| * class.c (add_method, same_signature_p): Compare ref-qualifiers. |
| * decl.c (grokdeclarator): Handle ref-qualifiers. |
| (grokfndecl): Check for invalid ref-qualifiers. |
| (static_fn_type, revert_static_member_fn): Adjust. |
| * decl2.c (build_memfn_type): Handle ref-qualifiers. |
| (check_classfn): Check them. |
| (cp_reconstruct_complex_type): Retain them. |
| * error.c (dump_ref_qualifier): New. |
| (dump_type_suffix, dump_function_decl): Use it. |
| (maybe_warn_cpp0x): Handle CPP0X_REF_QUALIFIER. |
| * pt.c (tsubst, tsubst_function_type): Instantiate ref-quals. |
| (unify): Retain them. |
| * tree.c (cp_check_qualified_type): New. |
| (cp_build_qualified_type_real): Keep exception spec and ref-qual. |
| (build_ref_qualified_type): New. |
| (strip_typedefs, build_exception_variant): Keep ref-qualifier. |
| (cp_build_type_attribute_variant): Keep ref-qualifier. |
| * typeck.c (merge_types): Keep ref-qualifier. |
| (structural_comptypes): Compare ref-qualifier. |
| (type_memfn_rqual): New. |
| (apply_memfn_quals): Take ref-qual argument. |
| * typeck2.c (build_m_component_ref): Check ref-qualifier. |
| |
| 2013-04-01 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| * cp-tree.h (DECL_UNBOUND_CLASS_TEMPLATE_P): Remove. |
| (DECL_FUNCTION_TEMPLATE_P): Adjust. |
| |
| * cxx-pretty-print.c (pp_cxx_nested_name_specifier, |
| pp_cxx_qualified_id): Use get_containing_scope. |
| * parser.c (cp_parser_class_head): Likewise. |
| * pt.c (push_template_decl_real): Likewise. |
| |
| * decl2.c (import_export_decl): Use DECL_TEMPLOID_INSTANTIATION. |
| * pt.c (unify): Use CP_INTEGRAL_TYPE_P. |
| |
| 2013-03-31 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| * decl2.c (collect_candidates_for_java_method_aliases): Use |
| DECL_CLASS_SCOPE_P. |
| * name-lookup.c (pushtag_1) Use TYPE_FUNCTION_SCOPE_P. |
| (pushdecl_maybe_friend_1): Use DECL_DECLARES_FUNCTION_P. |
| * decl.c (duplicate_decls): Likewise. |
| * parser.c (cp_parser_template_declaration_after_export): Likewise, |
| also DECL_DECLARES_TYPE_P. |
| * pt.c (instantiate_class_template_1): Likewise. |
| * search.c (lookup_field_1): Use DECL_DECLARES_TYPE_P. |
| (lookup_field_r): Likewise. |
| (friend_accessible_p): Use DECL_DECLARES_FUNCTION_P. |
| (lookup_fnfields_slot_nolazy): Likewise. |
| * semantics.c (finish_member_declaration): Likewise. |
| * typeck.c (convert_for_initialization): Use TYPE_REFFN_P. |
| |
| 2013-03-29 Gabriel Dos Reis <gdr@integrable-solutions.net> |
| |
| * pt.c (template_parms_to_args): Fix typo in comment. |
| |
| 2013-03-29 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| * call.c (build_op_call_1): Use TYPE_PTRFN_P and TYPE_REFFN_P. |
| |
| 2013-03-29 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| * call.c (add_builtin_candidate): Use TYPE_PTR_P and VOID_TYPE_P. |
| (build_op_call_1): Likewise. |
| (build_over_call): Likewise. |
| (compare_ics): Likewise. |
| * class.c (build_base_path): Likewise. |
| (resolve_address_of_overloaded_function): Likewise. |
| * cp-tree.h: Likewise. |
| * cvt.c (cp_convert_to_pointer): Likewise. |
| (convert_to_reference): Likewise. |
| (ocp_convert): Likewise. |
| (convert_force): Likewise, tidy. |
| * cxx-pretty-print.c (pp_cxx_postfix_expression): Likewise. |
| (pp_cxx_ptr_operator): Likewise. |
| * decl.c (duplicate_decls): Likewise. |
| (start_decl): Likewise. |
| (grok_op_properties): Likewise. |
| (start_preparsed_function): Likewise. |
| (store_parm_decls): Likewise. |
| (finish_function): Likewise. |
| * decl2.c (delete_sanity): Likewise. |
| (acceptable_java_type): Likewise. |
| (grokbitfield): Likewise. |
| (cp_reconstruct_complex_type): Likewise. |
| * error.c (dump_type_prefix): Likewise. |
| (dump_expr): Likewise. |
| * except.c (push_eh_cleanup): Likewise. |
| (complete_ptr_ref_or_void_ptr_p): Likewise. |
| (can_convert_eh): Likewise. |
| * init.c (build_new_1): Likewise. |
| (build_delete): Likewise. |
| (build_vec_delete): Likewise. |
| * mangle.c (write_type): Likewise. |
| * parser.c (lookup_literal_operator): Likewise. |
| * pt.c (convert_nontype_argument_function): Likewise. |
| (convert_nontype_argument): Likewise. |
| (tsubst): Likewise. |
| (unify): Likewise. |
| (dependent_type_p_r): Likewise. |
| * rtti.c (build_headof): Likewise. |
| (build_typeid): Likewise. |
| (build_dynamic_cast_1): Likewise. |
| (target_incomplete_p): Likewise. |
| (typeinfo_in_lib_p): Likewise. |
| * semantics.c (finish_omp_for): Likewise. |
| (cxx_eval_call_expression): Likewise. |
| (maybe_resolve_dummy): Likewise. |
| * tree.c (build_target_expr): Likewise. |
| (cp_build_qualified_type_real): Likewise. |
| * typeck.c (composite_pointer_type_r): Likewise. |
| (composite_pointer_type): Likewise. |
| (comp_except_types): Likewise. |
| (cxx_sizeof_nowarn): Likewise. |
| (string_conv_p): Likewise. |
| (cp_build_array_ref): Likewise. |
| (cp_build_function_call_vec): Likewise, also use TYPE_PTRFN_P. |
| (pointer_diff): Likewise. |
| (cp_build_addr_expr_1): Likewise. |
| (cp_build_unary_op): Likewise. |
| (build_static_cast_1): Likewise. |
| (cp_build_c_cast): Likewise. |
| (comp_ptr_ttypes_real): Likewise. |
| (ptr_reasonably_similar): Likewise. |
| (comp_ptr_ttypes_const): Likewise. |
| (casts_away_constness): Likewise. |
| (check_literal_operator_args): Likewise. |
| * typeck2.c (build_x_arrow): Likewise. |
| (add_exception_specifier): Likewise. |
| |
| 2013-03-29 Jason Merrill <jason@redhat.com> |
| |
| N3582 |
| * cp-tree.h (AUTO_IS_DECLTYPE): New. |
| * parser.c (cp_parser_decltype): Handle decltype(auto). |
| (cp_parser_type_id_1): Allow auto without a late-specified |
| return in C++1y. |
| (cp_parser_primary_expression): Use the return value of |
| finish_parenthesized_expr. |
| (cp_parser_transaction_expression): Likewise. |
| * semantics.c (force_paren_expr): New. |
| (finish_parenthesized_expr): Use it. |
| * call.c (build_conditional_expr_1): Likewise. |
| * pt.c (do_auto_deduction): Handle decltype(auto). |
| (tsubst_copy): Handle PAREN_EXPR. |
| (tsubst_copy_and_build): Likewise. |
| * error.c (dump_expr): Handle PAREN_EXPR. |
| * cxx-pretty-print.c (pp_cxx_expression): Likewise. |
| * mangle.c (write_expression): Ignore PAREN_EXPR. |
| |
| * parser.c (cp_parser_decltype_expr): Split out... |
| (cp_parser_decltype): ...from here. |
| |
| PR c++/56774 |
| PR c++/35722 |
| * pt.c (unify_pack_expansion): Fix indexing. |
| |
| 2013-03-29 Gabriel Dos Reis <gdr@integrable-solutions.net> |
| |
| * call.c (build_java_interface_fn_ref): Likewise. |
| (make_temporary_var_for_ref_to_temp): Likewise. |
| * class.c (check_field_decls): Likewise. |
| (layout_class_type): Likewise. |
| (finish_struct_1): Likewise. |
| (fixed_type_or_null): Likewise. |
| (get_vtbl_decl_for_binfo): Likewise. |
| * cp-gimplify.c (omp_var_to_track): Likewise. |
| (cp_genericize_r): Likewise. |
| * cp-objcp-common.c (cxx_warn_unused_global_decl): Likewise. |
| * cp-tree.h (LANG_DECL_HAS_MIN): Likewise. |
| (DECL_DISCRIMINATOR_P): Likewise. |
| * decl.c (poplevel): Likewise. |
| (decls_match): Likewise. |
| (duplicate_decls): Likewise. |
| (decl_jump_unsafe): Likewise. |
| (start_decl): Likewise. |
| (check_for_uninitialized_const_var): Likewise. |
| (make_rtl_for_nonlocal_decl): Likewise. |
| (cp_finish_decl): Likewise. |
| (expand_static_init): Likewise. |
| (local_variable_p): Likewise. |
| (maybe_register_incomplete_var): Likewise. |
| * decl2.c (grokfield): Likewise. |
| (comdat_linkage): Likewise. |
| (determine_visibility): Likewise. |
| (import_export_decl): Likewise. |
| (prune_vars_needing_no_initialization): Likewise. |
| (decl_maybe_constant_var_p): Likewise. |
| * error.c (dump_simple_decl): Likewise. |
| (dump_template_decl): Likewise. |
| (cp_printer): Likewise. |
| * except.c (build_throw): Likewise. |
| * init.c (build_vtbl_address): Likewise. |
| (member_init_ok_or_else): Likewise. |
| (build_aggr_init): Likewise. |
| (expand_aggr_init_1): Likewise. |
| (build_offset_ref): Likewise. |
| (constant_value_1): Likewise. |
| * mangle.c (write_mangled_name): Likewise. |
| (write_prefix): Likewise. |
| * name-lookup.c (supplement_binding_1): Likewise. |
| (add_decl_to_level): Likewise. |
| (pushdecl_maybe_friend_1): Likewise. |
| (check_for_out_of_scope_variable): Likewise. |
| (validate_nonmember_using_decl): Likewise. |
| (lookup_name_innermost_nonclass_level_1): Likewise. |
| (lookup_arg_dependent_1): Likewise. |
| * parser.c (cp_parser_lambda_introducer): Likewise. |
| (cp_parser_template_argument): Likewise. |
| (cp_parser_single_declaration): Likewise. |
| * pt.c (convert_nontype_argument): Likewise. |
| (instantiate_class_template_1): Likewise. |
| (tsubst_decl): Likewise. |
| (tsubst_expr): Likewise. |
| (do_decl_instantiation): Likewise. |
| (do_type_instantiation): Likewise. |
| (regenerate_decl_from_template): Likewise. |
| (always_instantiate_p): Likewise. |
| (instantiate_decl): Likewise. |
| (type_dependent_expression_p): Likewise. |
| (build_non_dependent_expr): Likewise. |
| * repo.c (repo_emit_p): Likewise. |
| * rtti.c (build_dynamic_cast_1): Likewise. |
| * search.c (shared_member_p): Likewise. |
| * semantics.c (outer_var_p): Likewise. |
| (finish_id_expression): Likewise. |
| (finish_omp_clauses): Likewise. |
| (finish_decltype_type): Likewise. |
| (ensure_literal_type_for_constexpr_object): Likewise. |
| * tree.c (lvalue_kind): Likewise. |
| (bot_replace): Likewise. |
| (cp_tree_equal): Likewise. |
| (handle_init_priority_attribute): Likewise. |
| (decl_storage_duration): Likewise. |
| * typeck.c (cxx_sizeof_expr): Likewise. |
| (cxx_alignof_expr): Likewise. |
| (decay_conversion): Likewise. |
| (build_class_member_access_expr): Likewise. |
| (cp_build_array_ref): Likewise. |
| (cxx_mark_addressable): Likewise. |
| (maybe_warn_about_returning_address_of_local): Likewise. |
| (check_return_expr): Likewise. |
| * typeck2.c (cxx_readonly_error): Likewise. |
| (abstract_virtuals_error_sfinae): Likewise. |
| (cxx_incomplete_type_diagnostic): Likewise. |
| |
| 2013-03-28 Lawrence Crowl <crowl@google.com> |
| |
| * Make-lang.in |
| (CXX_PARSER_H): Add header dependence. |
| * cp-tree.h |
| (extern debug (cp_binding_level &)): New. |
| (extern debug (cp_binding_level *)): New. |
| * name-lookup.h |
| (debug (cp_binding_level &)): New. |
| (debug (cp_binding_level *)): New. |
| * parser.c |
| (debug (cp_parser &)): New. |
| (debug (cp_parser *)): New. |
| (debug (cp_token &)): New. |
| (debug (cp_token *)): New. |
| (debug (vec<cp_token, va_gc> &)): New. |
| (debug (vec<cp_token, va_gc> *)): New. |
| * parser.c: Add header dependence. |
| (extern debug (cp_parser &)): New. |
| (extern debug (cp_parser *)): New. |
| (extern debug (cp_token &)): New. |
| (extern debug (cp_token *)): New. |
| (extern debug (vec<cp_token, va_gc> &)): New. |
| (extern debug (vec<cp_token, va_gc> *)): New. |
| |
| 2013-03-28 Jason Merrill <jason@redhat.com> |
| |
| PR c++/17232 |
| PR c++/52748 |
| * typeck2.c (abstract_virtuals_error_sfinae): Don't complete |
| the type if tf_decltype is set. |
| * pt.c (fn_type_unification): Add decltype_p parm. |
| (get_bindings): Adjust. |
| * cp-tree.h: Adjust. |
| * class.c (resolve_address_of_overloaded_function): Adjust. |
| * call.c (add_template_candidate_real, print_z_candidate): Adjust. |
| |
| PR c++/56679 |
| * parser.c (cp_parser_sizeof_pack): Split out from... |
| (cp_parser_sizeof_operand): ...here. Require (id). |
| |
| PR c++/56701 |
| * semantics.c (finish_this_expr): 'this' is an rvalue. |
| * typeck.c (cp_build_indirect_ref): Handle NOP_EXPR of 'this'. |
| |
| PR c++/56710 |
| * semantics.c (finish_member_declaration): Don't push closure |
| members. |
| |
| * name-lookup.c (pushdecl_maybe_friend_1): Use |
| nonlambda_method_basetype and current_nonlambda_class_type. |
| |
| PR c++/56728 |
| * semantics.c (potential_constant_expression_1) [NOP_EXPR]: Reject |
| conversion from integer to pointer. |
| (cxx_eval_constant_expression): Likewise. |
| (cxx_eval_indirect_ref): Use the folded operand if we still think |
| this might be constant. |
| |
| 2013-03-28 Paolo Carlini <paolo.carlini@oracle.com> |
| Manuel Lopez-Ibanez <manu@gcc.gnu.org> |
| |
| PR c++/56725 |
| * call.c (convert_like_real): Change series of two permerrors |
| to permerror + inform (and likewise for two errors). |
| (build_new_method_call_1): Likewise. |
| * typeck.c (convert_for_initialization): Change additional |
| warning or error to inform. |
| |
| 2013-03-28 Gabriel Dos Reis <gdr@integrable-solutions.net> |
| |
| * cp-tree.h (next_aggr_init_expr_arg): Remove static specifier. |
| (first_aggr_init_expr): Likewise. |
| (more_aggr_init_expr_args_p): Likewise. |
| (type_of_this_parm): Likewise. |
| (class_of_this_parm): Likewise. |
| * name-lookup.h (get_global_value_if_present): Likewise. |
| (is_typename_at_global_scope): Likewise. |
| |
| 2013-03-28 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| * call.c (joust): Don't call inform for a permerror returning false. |
| * parser.c (cp_parser_check_class_key): Likewise. |
| * pt.c (tsubst_copy_and_build): Likewise. |
| |
| 2013-03-27 Jason Merrill <jason@redhat.com> |
| |
| PR c++/56749 |
| * semantics.c (finish_qualified_id_expr): Return early |
| for enum scope. |
| |
| 2013-03-26 Gabriel Dos Reis <gdr@integrable-solutions.net> |
| |
| * call.c (build_new_method_call_1): Use INDIRECT_REF_P. |
| * cvt.c (convert_to_void): Likewise. |
| * error.c (dump_expr): Likewise. |
| * mangle.c (write_expression): Likewise. |
| * parser.c (cp_parser_template_argument): Likewise. |
| * pt.c (convert_nontype_argument): Likewise. |
| (tsubst_copy_and_build): Likewise. |
| * rtti.c (build_typeid): Likewise. |
| * semantics.c (finish_call_expr): Likewise. |
| (finish_decltype_type): Likewise. |
| (build_data_member_initialization): Likewise. |
| * tree.c (is_dummy_object): Likewise. |
| * typeck.c (decay_conversion): Likewise. |
| (build_class_member_access_expr): Likewise. |
| (cp_build_addr_expr_1): Likewise. |
| (unary_complex_lvalue): Likewise. |
| (check_return_expr): Likewise. |
| * typeck2.c (cxx_readonly_error): Likewise. |
| |
| 2013-03-26 Jason Merrill <jason@redhat.com> |
| |
| PR c++/52597 |
| * typeck.c (invalid_nonstatic_memfn_p): Use get_first_fn. Take tree. |
| * semantics.c (finish_decltype_type): Check it before type_unknown_p. |
| * cp-tree.h: Adjust prototype. |
| |
| PR c++/45282 |
| * typeck2.c (build_m_component_ref): Handle prvalue object. |
| |
| 2013-03-26 Gabriel Dos Reis <gdr@integrable-solutions.net> |
| |
| * cp-gimplify.c (cp_genericize_r): Use VAR_OR_FUNCTION_DECL_P. |
| * decl.c (duplicate_decls): Likewise. |
| (cp_finish_decl): Likewise. |
| (check_class_member_definition_namespace): Likewise. |
| * decl2.c (grokfield): Likewise. |
| (decl_needed_p): Likewise. |
| (import_export_decl): Likewise. |
| (mark_used): Likewise. |
| * name-lookup.c (pushdecl_maybe_friend_1): Likewise. |
| * pt.c (push_access_scope): Likewise. |
| (instantiate_decl): Likewise. |
| * ptree.c (cxx_print_decl): Likewise. |
| * repo.c (repo_emit_p): Likewise. |
| * semantics.c (note_decl_for_pch): Likewise. |
| * tree.c (decl_linkage): Likewise. |
| |
| 2013-03-26 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/55951 |
| * decl.c (check_array_designated_initializer): Handle CONST_DECL |
| as ce->index. |
| |
| 2013-03-26 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| * decl.c (grokfndecl): Handle separately <inline> and <constexpr> |
| error messages. |
| |
| * decl.c (grokdeclarator): Declare typedef_p and use it everywhere. |
| |
| 2013-03-25 Jason Merrill <jason@redhat.com> |
| |
| PR c++/56699 |
| * semantics.c (maybe_resolve_dummy): Make sure that the enclosing |
| class is derived from the type of the object. |
| |
| PR c++/52014 |
| * semantics.c (lambda_expr_this_capture): Don't capture 'this' in |
| unevaluated context. |
| |
| 2013-03-25 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/56722 |
| * decl.c (cp_finish_decl): Check DECL_LANG_SPECIFIC before |
| DECL_TEMPLATE_INSTANTIATION. |
| |
| 2013-03-22 Jason Merrill <jason@redhat.com> |
| |
| PR c++/56684 |
| * pt.c (instantiation_dependent_r): Check DECL_INITIAL of VAR_DECL |
| and CONST_DECL. |
| |
| 2013-03-21 Gabriel Dos Reis <gdr@integrable-solutions.net> |
| |
| * cp-tree.h (identifier_p): New. |
| * call.c: Throughout, call identifier_p insstead of direct |
| comparaison of TREE_CODE against IDENTIFIER_NODE. |
| * decl.c: Likewisse. |
| * decl2.c: Likewise. |
| * init.c: Likewise. |
| * mangle.c: Likewise. |
| * name-lookup.c: Likewise. |
| * parser.c: Likewise. |
| * pt.c: Likewise. |
| * search.c: Likewise. |
| * semantics.c: Likewise. |
| * tree.c: Likewise. |
| * typeck.c: Likewise. |
| * typeck2.c: Likewise. |
| |
| 2013-03-21 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/48087 |
| * pt.c (convert_nontype_argument): Count werrorcount as warnings. |
| * call.c (build_temp): Likewise. |
| * method.c (synthesize_method): Likewise. |
| * typeck.c (convert_for_initialization): Likewise. |
| |
| 2013-03-21 Marc Glisse <marc.glisse@inria.fr> |
| |
| * call.c (build_conditional_expr_1): Fold VEC_COND_EXPR. |
| |
| 2013-03-21 Richard Biener <rguenther@suse.de> |
| |
| * error.c (cp_printer): Use DECL_HAS_DEBUG_EXPR_P instead of |
| DECL_DEBUG_EXPR_IS_FROM. Guard properly. |
| |
| 2013-03-20 Jason Merrill <jason@redhat.com> |
| |
| PR c++/56646 |
| * parser.c (cp_parser_late_return_type_opt): Save and restore |
| current_class_ptr/ref. |
| |
| PR c++/54532 |
| * expr.c (cplus_expand_constant): Do nothing if the class is |
| incomplete. |
| * semantics.c (reduced_constant_expression_p): Allow PTRMEM_CST. |
| * typeck2.c (store_init_value): Use reduced_constant_expression_p. |
| * decl.c (maybe_register_incomplete_var): Handle PTRMEM_CST. |
| (complete_vars): Likewise. |
| |
| * name-lookup.c (get_anonymous_namespace_name): Never use |
| get_file_function_name. |
| |
| * pt.c (retrieve_specialization): Handle null tmpl argument. |
| |
| PR c++/17232 |
| PR c++/56642 |
| * pt.c (tsubst_decl): Check return value of register_specialization. |
| * typeck2.c (abstract_virtuals_error_sfinae): Re-apply complete_type |
| change. |
| |
| 2013-03-17 Jason Merrill <jason@redhat.com> |
| |
| PR c++/54359 |
| PR c++/56639 |
| * parser.c (cp_parser_direct_declarator): Bail if we see a |
| qualified-id not at namespace scope. |
| |
| PR c++/17232 |
| PR c++/56642 |
| * typeck2.c (abstract_virtuals_error_sfinae): Revert complete_type |
| change for now. |
| |
| 2013-03-16 Jason Merrill <jason@redhat.com> |
| |
| * decl.c (grokdeclarator): Assert that we won't see a pointer to |
| METHOD_TYPE. |
| |
| PR c++/54277 |
| * cp-tree.h (WILDCARD_TYPE_P): Split out from... |
| (MAYBE_CLASS_TYPE_P): ...here. |
| * semantics.c (lambda_capture_field_type): Only build a |
| magic decltype for wildcard types. |
| (lambda_proxy_type): Likewise. |
| (finish_non_static_data_member): Get the quals from |
| the object. |
| |
| PR c++/55931 |
| * parser.c (cp_parser_template_argument): Don't |
| fold_non_dependent_expr. |
| |
| * parser.c (cp_parser_lambda_declarator_opt): Use |
| cp_parser_trailing_type_id. |
| |
| PR c++/45917 |
| * parser.c (cp_parser_template_id): Don't forget access checks. |
| |
| PR c++/52374 |
| * pt.c (tsubst_qualified_id): Use current_nonlambda_class_type. |
| |
| PR c++/54764 |
| PR c++/55972 |
| * name-lookup.h (tag_scope): Add ts_lambda. |
| * semantics.c (begin_lambda_type): Use it. |
| * decl.c (xref_tag_1): Set CLASSTYPE_LAMBDA_EXPR. |
| * pt.c (check_default_tmpl_args): Ignore lambdas. |
| (push_template_decl_real): Handle lambdas. |
| * tree.c (no_linkage_check): Adjust lambda check. |
| |
| PR c++/56039 |
| * tree.c (strip_typedefs_expr): Complain about lambda, don't abort. |
| |
| PR c++/54359 |
| * parser.c (cp_parser_direct_declarator): Fix late return |
| for out-of-class defn of member function. |
| |
| PR c++/55357 |
| * semantics.c (maybe_add_lambda_conv_op): Clear DECL_NAME of copied |
| parms to avoid duplicate -Wshadow warnings. |
| |
| * search.c (lookup_base): Handle NULL_TREE. |
| |
| PR c++/56481 |
| * semantics.c (potential_constant_expression_1): Use of 'this' in |
| a non-constexpr function makes the expression not potentially |
| constant. |
| |
| N3276 |
| PR c++/52748 |
| * cp-tree.h (tsubst_flags): Add tf_decltype. |
| * call.c (build_cxx_call): Don't build a temporary if it's set. |
| (build_over_call): Make sure it's only passed to build_cxx_call. |
| * parser.c (cp_parser_primary_expression): Add decltype_p parm. |
| (cp_parser_unary_expression): Likewise. |
| (cp_parser_cast_expression): Likewise. |
| (cp_parser_binary_expression): Likewise. |
| (cp_parser_assignment_expression): Likewise. |
| (cp_parser_postfix_expression): Likewise. Pass tf_decltype. |
| (cp_parser_expression): Add decltype_p. Force a |
| temporary for a call on the LHS of a comma. |
| (cp_parser_decltype): Pass true to decltype_p parms. |
| * pt.c (tsubst) [DECLTYPE_TYPE]: Pass tf_decltype. |
| (tsubst_copy_and_build): Pass tf_decltype down only for |
| CALL_EXPR and the RHS of COMPOUND_EXPR. |
| * tree.c (build_cplus_new): Call complete_type_or_maybe_complain. |
| |
| * cp-tree.h (abstract_class_use): New enum. |
| * typeck2.c (pending_abstract_type): Add use field. |
| (abstract_virtuals_error_sfinae): Add overloads taking |
| abstract_class_use instead of tree. |
| * typeck.c (build_static_cast_1): Call it. |
| * except.c (is_admissible_throw_operand_or_catch_parameter): Call it. |
| * pt.c: Adjust calls. |
| * decl.c (cp_finish_decl): Don't handle functions specially. |
| (grokdeclarator): Always check return type. |
| * init.c (build_new_1): Adjust call. |
| |
| DR 337 |
| PR c++/17232 |
| * pt.c (tsubst) [ARRAY_TYPE]: Use abstract_virtuals_error_sfinae. |
| * typeck2.c (abstract_virtuals_error_sfinae): Call complete_type. |
| |
| DR 657 |
| * pt.c (tsubst_function_type): Call abstract_virtuals_error_sfinae. |
| (tsubst_arg_types): Likewise. |
| |
| DR 1518 |
| PR c++/54835 |
| * call.c (convert_like_real): Check for explicit constructors |
| even for value-initialization. |
| |
| PR c++/54946 |
| * pt.c (convert_nontype_argument): Handle invalid pointer. |
| |
| * parser.c (cp_parser_lambda_expression): Use nreverse. |
| |
| PR c++/56447 |
| PR c++/55532 |
| * pt.c (instantiate_class_template_1): Instantiate lambda capture |
| list here. |
| (tsubst_copy_and_build): Not here. |
| |
| PR c++/55017 |
| * method.c (walk_field_subobs): Disallow copy of rvalue ref. |
| |
| PR c++/55240 |
| * parser.c (parsing_nsdmi): New. |
| * semantics.c (outer_automatic_var_p): Check it. |
| (finish_id_expression): Likewise. |
| * cp-tree.h: Declare it. |
| |
| PR c++/55241 |
| * error.c (dump_expr) [SIZEOF_EXPR]: Print sizeof... properly. |
| |
| * parser.c (lookup_literal_operator): Correct parm/arg naming |
| mixup. |
| |
| PR c++/56238 |
| * pt.c (fold_non_dependent_expr_sfinae): Check |
| instantiation_dependent_expression_p. |
| |
| PR c++/56095 |
| * class.c (resolve_address_of_overloaded_function): Accept a |
| reference to function for target_type. |
| (instantiate_type): Likewise. |
| * pt.c (convert_nontype_argument): Pass it to |
| convert_nontype_argument_function. |
| |
| 2013-03-16 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree.c (cp_tree_equal): Fix a pasto. |
| |
| PR c++/56607 |
| * typeck.c (cp_build_binary_op): When calling warn_for_div_by_zero, |
| pass op1 through maybe_constant_value first. |
| |
| 2013-03-16 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/56582 |
| * semantics.c (cxx_eval_array_reference): Check for negative index. |
| |
| 2013-03-14 Jason Merrill <jason@redhat.com> |
| |
| PR c++/56614 |
| * decl.c (local_variable_p_walkfn): Check DECL_ARTIFICIAL again. |
| |
| PR c++/56346 |
| * decl.c (register_dtor_fn): Pass null to __cxa_thread_atexit |
| dso_handle parm on targets without __cxa_atexit. |
| |
| 2013-03-11 Jason Merrill <jason@redhat.com> |
| |
| PR c++/56567 |
| * typeck.c (check_return_expr): Disallow returning init list here. |
| * semantics.c (apply_deduced_return_type): Not here. |
| |
| 2013-03-08 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/51412 |
| * cxx-pretty-print.c (pp_cxx_expression): Handle LAMBDA_EXPR. |
| * error.c (dump_expr): Likewise. |
| |
| 2013-03-08 Jason Merrill <jason@redhat.com> |
| |
| PR c++/51884 |
| * class.c (modify_all_vtables): Mangle the vtable name before |
| entering dfs_walk. |
| |
| * semantics.c (lambda_expr_this_capture): In unevaluated context, |
| just return the nearest 'this'. |
| |
| PR c++/51494 |
| PR c++/52183 |
| PR c++/56222 |
| * tree.c (maybe_dummy_object): Don't capture 'this'. |
| * semantics.c (maybe_resolve_dummy): New. |
| (finish_non_static_data_member): Use it. |
| (finish_qualified_id_expr): Don't test is_dummy_object. |
| * cp-tree.h: Declare maybe_resolve_dummy. |
| * call.c (build_new_method_call_1): Use it. |
| |
| PR c++/56567 |
| * semantics.c (apply_deduced_return_type): Don't allow returning |
| std::initializer_list. |
| |
| 2013-03-06 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/56534 |
| * parser.c (cp_parser_elaborated_type_specifier): Don't call |
| check_elaborated_type_specifier when TREE_CODE (decl) != TYPE_DECL. |
| * decl.c (check_elaborated_type_specifier): Tidy. |
| |
| 2013-03-06 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/56543 |
| * tree.c (strip_typedefs): Don't copy args if they are NULL. |
| |
| 2013-03-05 Jakub Jelinek <jakub@redhat.com> |
| |
| * parser.c (cp_parser_braced_list): For {} initialize |
| *non_constant_p to false. |
| |
| 2013-03-04 Jason Merrill <jason@redhat.com> |
| |
| PR c++/56464 |
| PR c++/54383 |
| * semantics.c (lambda_expr_this_capture): Handle NSDMI |
| and non-class scopes. |
| |
| 2013-03-01 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| * decl.c (grokdeclarator): Remove dead code. |
| |
| 2013-02-28 Jason Merrill <jason@redhat.com> |
| |
| PR c++/56481 |
| * semantics.c (potential_constant_expression_1): Use |
| cxx_eval_outermost_constant_expr rather than maybe_constant_value. |
| |
| PR c++/56243 |
| * call.c (build_over_call): Avoid virtual lookup in a template. |
| |
| 2013-02-27 Jason Merrill <jason@redhat.com> |
| |
| PR c++/56358 |
| PR c++/56323 |
| * name-lookup.c (do_class_using_decl): Use ctor_identifier instead |
| of the base name for inheriting ctors. |
| (push_class_level_binding_1): Remove inheriting ctor handling. |
| * pt.c (tsubst_decl) [USING_DECL]: Likewise. |
| * class.c (add_implicitly_declared_members): Adjust. |
| |
| 2013-02-26 David Binderman <dcb314@hotmail.com> |
| |
| PR c++/55632 |
| * decl.c (grokdeclarator): Tidy publicp assignment. |
| |
| 2013-02-25 Aldy Hernandez <aldyh@redhat.com> |
| |
| PR c++/56419 |
| * semantics.c (begin_transaction_stmt): Set TREE_SIDE_EFFECTS. |
| (build_transaction_expr): Same. |
| |
| 2013-02-25 Jason Merrill <jason@redhat.com> |
| |
| PR c++/56377 |
| * pt.c (fn_type_unification): Wait to call push_tinst_level until |
| we know what args we're looking at. |
| |
| PR c++/56438 |
| * semantics.c (potential_constant_expression_1): In C++98, a cast |
| to non-integral type can't be a constant expression. |
| |
| 2013-02-24 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/56403 |
| * init.c (build_zero_init_1): Use RECORD_OR_UNION_CODE_P instead |
| of CLASS_TYPE_P. |
| |
| 2013-02-22 Jason Merrill <jason@redhat.com> |
| |
| PR c++/40405 |
| * pt.c (push_template_decl_real): Set DECL_INTERFACE_KNOWN |
| if we got the wrong number of template parms. |
| |
| PR c++/56377 |
| * pt.c (fn_type_unification): Use explicit args in template |
| instantiation context. |
| |
| PR c++/56359 |
| * call.c (can_convert_arg): Discard access checks. |
| |
| PR c++/56395 |
| * tree.c (strip_typedefs): Strip typedefs from TYPENAME_TYPE template |
| args. |
| |
| 2013-02-20 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/56373 |
| * tree.c (maybe_warn_zero_as_null_pointer_constant): Add. |
| * cvt.c (ocp_convert): Use the latter. |
| (cp_convert_to_pointer): Likewise. |
| * decl.c (check_default_argument): Likewise. |
| * typeck.c (cp_build_binary_op): Likewise. |
| * cp-tree.h (maybe_warn_zero_as_null_pointer_constant): Declare. |
| |
| 2013-02-15 Jonathan Wakely <jwakely.gcc@gmail.com> |
| Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/51242 |
| * decl2.c (grokbitfield): Allow scoped enumeration types. |
| |
| 2013-02-15 Jason Merrill <jason@redhat.com> |
| |
| PR c++/54276 |
| * semantics.c (finish_id_expression): Also return the identifier |
| for an outer local static. |
| |
| PR c++/56343 |
| * class.c (check_bases_and_members): Deduce noexcept after |
| checking bases. |
| |
| PR c++/52026 |
| * semantics.c (finish_id_expression): In a template, return |
| the identifier for a constant variable. |
| |
| 2013-02-14 Jason Merrill <jason@redhat.com> |
| |
| PR c++/54922 |
| * semantics.c (build_anon_member_initialization): New. |
| (build_data_member_initialization): Use it. |
| |
| PR c++/55003 |
| * decl.c (cp_finish_decl): Force instantiation of an |
| auto static data member. |
| |
| PR c++/55220 |
| * pt.c (unify): A pack expansion that is not the last template |
| argument makes the entire template argument list non-deduced. |
| |
| PR c++/56323 |
| * name-lookup.c (do_class_using_decl): Handle typedefs with |
| inheriting constructors. |
| (push_class_level_binding_1): Allow inheriting from template |
| template parameter, too. |
| * pt.c (tsubst_decl) [USING_DECL]: Likewise. |
| |
| PR c++/55223 |
| * pt.c (tsubst_copy_and_build) [LAMBDA_EXPR]: Fix handling of |
| default argument scope. |
| * mangle.c (write_name): Likewise. |
| |
| PR c++/55232 |
| * error.c (find_typenames_r): Don't walk into a pack expansion. |
| |
| 2013-02-13 Jason Merrill <jason@redhat.com> |
| |
| PR c++/55670 |
| * parser.c (cp_parser_member_declaration): Check the declarator |
| form when detecting a function declaration via typedef. |
| |
| PR c++/55680 |
| * pt.c (maybe_process_partial_specialization): A lambda |
| isn't what's being specialized. |
| |
| PR c++/55710 |
| * semantics.c (maybe_add_lambda_conv_op): Mark static thunk |
| TREE_USED. |
| |
| PR c++/55879 |
| * semantics.c (cxx_bind_parameters_in_call): Undo DECL_BY_REFERENCE. |
| |
| PR c++/55993 |
| * semantics.c (cxx_fold_indirect_ref): Handle empty bases at |
| non-zero offsets, too. |
| |
| PR c++/56155 |
| * decl.c (build_enumerator): Always convert the value to a |
| fixed underlying type. |
| |
| PR c++/56135 |
| * pt.c (tsubst_copy_and_build): Don't forget any new |
| captures that arose from use of dependent names. |
| |
| 2013-02-13 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/56302 |
| * semantics.c (finish_asm_stmt): If input constraints allow |
| neither register nor memory, try maybe_constant_value to get |
| a constant if possible. |
| |
| 2013-02-12 Jason Merrill <jason@redhat.com> |
| |
| PR c++/56285 |
| * method.c (add_one_base_init): Handle base constructor |
| taking rvalue reference parm. |
| |
| PR c++/56291 |
| * semantics.c (sort_constexpr_mem_initializers): Handle |
| vptr out of order. |
| |
| 2013-02-09 Jason Merrill <jason@redhat.com> |
| |
| PR c++/56268 |
| * semantics.c (classtype_has_nothrow_assign_or_copy_p): Call |
| maybe_instantiate_noexcept. |
| |
| PR c++/56247 |
| * pt.c (eq_specializations): Set comparing_specializations. |
| * tree.c (cp_tree_equal): Check it. |
| * cp-tree.h: Declare it. |
| |
| * decl.c (decls_match): Check versions later. |
| |
| PR c++/56238 |
| * pt.c (build_non_dependent_expr): Don't try to fold |
| instantiation-dependent expressions. |
| (instantiation_dependent_r) [TRAIT_EXPR]: Split out. |
| [BIND_EXPR]: Treat as dependent. |
| |
| 2013-02-07 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/56241 |
| * init.c (build_vec_init): Don't append NULL values into new_vec. |
| (build_zero_init_1): Don't push anything into v if recursive call |
| returned NULL_TREE. |
| (build_value_init_noctor): Don't push anything into v if |
| build_value_init call returned NULL_TREE. |
| |
| PR c++/56239 |
| * parser.c (cp_parser_token_starts_cast_expression): Renamed to... |
| (cp_parser_tokens_start_cast_expression): ... this. Change parameter |
| to cp_parser *, call cp_lexer_peek_token first. For CPP_OPEN_PAREN, |
| return true only if 2nd token isn't CPP_CLOSE_PAREN. |
| (cp_parser_cast_expression): Adjust caller. |
| |
| PR c++/56237 |
| * decl.c (push_local_name): Look at DECL_DISCRIMINATOR (t) |
| only if DECL_DISCRIMINATOR_SET_P (t) rather than just |
| DECL_LANG_SPECIFIC (t). |
| |
| 2013-02-07 Jason Merrill <jason@redhat.com> |
| |
| PR c++/56235 |
| * method.c (do_build_copy_constructor): Don't bother turning |
| scalars from lvalues to xvalues. |
| (do_build_copy_assign): Likewise. |
| |
| 2013-02-06 Jason Merrill <jason@redhat.com> |
| |
| * parser.c (cp_parser_enum_specifier): Check for error_mark_node. |
| |
| 2013-02-05 Jason Merrill <jason@redhat.com> |
| |
| PR c++/54122 |
| * tree.c (lvalue_kind) [INDIRECT_REF]: Don't check for |
| METHOD_TYPE. |
| |
| PR c++/56177 |
| * decl.c (start_preparsed_function): Update restype if we change |
| decl1. |
| |
| PR c++/56208 |
| * pt.c (fn_type_unification): Discard any access checks from |
| substituting explicit args. |
| |
| 2013-01-31 Jason Merrill <jason@redhat.com> |
| |
| PR c++/56162 |
| PR c++/56104 |
| * typeck.c (get_member_function_from_ptrfunc): Fix |
| ptrmemfunc_vbit_in_delta case. |
| |
| 2013-01-29 Jason Merrill <jason@redhat.com> |
| |
| PR libstdc++/54314 |
| * class.c (build_ctor_vtbl_group): Give construction vtables |
| hidden visibility. |
| |
| 2013-01-25 Jason Merrill <jason@redhat.com> |
| |
| PR c++/56095 |
| * pt.c (convert_nontype_argument_function): Handle invalid input. |
| (convert_nontype_argument): Likewise. |
| |
| PR c++/56104 |
| * typeck.c (get_member_function_from_ptrfunc): Optimize if the |
| dynamic type has no virtual functions. |
| |
| 2013-01-22 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/55944 |
| * decl.c (check_initializer): Use TARGET_EXPR_DIRECT_INIT_P only |
| on TARGET_EXPR nodes. |
| |
| 2013-01-22 Jason Merrill <jason@redhat.com> |
| |
| PR c++/56071 |
| * pt.c (maybe_instantiate_noexcept): Don't defer access checks. |
| |
| 2013-01-22 Dodji Seketeli <dodji@redhat.com> |
| |
| PR c++/53609 |
| * pt.c (argument_pack_element_is_expansion_p) |
| (make_argument_pack_select, use_pack_expansion_extra_args_p) |
| (gen_elem_of_pack_expansion_instantiation): New static functions. |
| (tsubst): When looking through an ARGUMENT_PACK_SELECT tree node, |
| look through the possibly resulting pack expansion as well. |
| (tsubst_pack_expansion): Use use_pack_expansion_extra_p to |
| generalize when to use the PACK_EXPANSION_EXTRA_ARGS mechanism. |
| Use gen_elem_of_pack_expansion_instantiation to build the |
| instantiation piece-wise. Don't use arg_from_parm_pack_p anymore, |
| as gen_elem_of_pack_expansion_instantiation and the change in |
| tsubst above generalize this particular case. |
| (arg_from_parm_pack_p): Remove this for it's not used by |
| tsubst_pack_expansion anymore. |
| |
| 2013-01-21 Jason Merrill <jason@redhat.com> |
| |
| PR c++/56059 |
| * tree.c (strip_typedefs_expr) [TREE_VEC]: Preserve non-default |
| template args count. |
| |
| 2013-01-18 Jason Merrill <jason@redhat.com> |
| |
| PR target/54908 |
| * decl2.c (get_local_tls_init_fn): New. |
| (get_tls_init_fn): Handle flag_extern_tls_init. Don't bother |
| with aliases for internal variables. Don't use weakrefs if |
| the variable needs destruction. |
| (generate_tls_wrapper): Mark the wrapper as const if no |
| initialization is needed. |
| (handle_tls_init): Don't require aliases. |
| |
| 2013-01-15 Dodji Seketeli <dodji@redhat.com> |
| |
| PR c++/55663 |
| * pt.c (coerce_innermost_template_parms): New static function. |
| (instantiate_alias_template): Use it here. |
| |
| 2013-01-09 Jason Merrill <jason@redhat.com> |
| |
| PR c++/55878 |
| * rtti.c (build_typeid, get_typeid): Add complain parm. |
| (get_tinfo_decl_dynamic): Likewise. |
| * cp-tree.h, parser.c, pt.c: Adjust. |
| |
| PR c++/55893 |
| * decl.c (cp_finish_decl): Clear TREE_READONLY if the variable |
| needs destruction. |
| |
| 2013-01-09 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/48418 |
| * typeck.c (cp_build_binary_op): For LSHIFT_EXPR and RSHIFT_EXPR, |
| call maybe_constant_value for the negative or too big shift |
| count warnings. |
| |
| 2013-01-09 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/55801 |
| * decl2.c (var_needs_tls_wrapper): Return false when error_operand_p |
| of the argument is true. |
| |
| 2013-01-08 Joel Brobecker <brobecker@adacore.com> |
| |
| * parser.c (cp_parser_initializer_list): Move declaration |
| of variable non_const to start of lexical block. |
| |
| 2013-01-07 Jason Merrill <jason@redhat.com> |
| |
| PR c++/55753 |
| * tree.c (build_aggr_init_expr): Do nothing in a template. |
| * pt.c (tsubst_copy_and_build) [CALL_EXPR]: Strip an ADDR_EXPR off |
| a FUNCTION_DECL before tsubsting. |
| |
| 2013-01-04 Dodji Seketeli <dodji@redhat.com> |
| |
| PR c++/52343 |
| * pt.c (check_instantiated_arg): Allow type template arguments. |
| |
| 2013-01-04 Jason Merrill <jason@redhat.com> |
| |
| PR c++/55877 |
| * decl.c (reset_type_linkage, bt_reset_linkage): New. |
| (grokdeclarator): Use reset_type_linkage. |
| * name-lookup.c (binding_table_foreach): Handle null table. |
| * tree.c (decl_anon_ns_mem_p): Check TYPE_MAIN_DECL, not TYPE_NAME. |
| |
| 2013-01-04 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/54526 (again) |
| * parser.c (cp_parser_template_id): Revert core of previous change |
| (keep adjusted inform message). |
| |
| 2013-01-03 Jason Merrill <jason@redhat.com> |
| |
| PR c++/55419 |
| PR c++/55753 |
| * pt.c (tsubst_copy_and_build) [TARGET_EXPR]: Don't touch |
| TREE_CONSTANT. |
| |
| PR c++/55842 |
| * semantics.c (trait_expr_value): Call maybe_instantiate_noexcept. |
| |
| PR c++/55856 |
| * semantics.c (build_data_member_initialization): Handle DECL_EXPR. |
| |
| PR c++/53650 |
| * call.c (type_has_extended_temps): New. |
| * cp-tree.h: Declare it. |
| * decl.c (check_initializer): Use build_aggr_init for arrays |
| if it is false. |
| * init.c (build_vec_init): Avoid mixed signed/unsigned arithmetic. |
| |
| 2013-01-02 Jason Merrill <jason@redhat.com> |
| |
| PR c++/54325 |
| * call.c (build_new_method_call_1): Don't use build_value_init for |
| user-provided default constructors. |
| |
| * decl.c (check_default_argument): Use LOOKUP_IMPLICIT. |
| |
| PR c++/55032 |
| PR c++/55245 |
| * tree.c (build_cplus_array_type): Copy layout information |
| to main variant if necessary. |
| |
| Copyright (C) 2013 Free Software Foundation, Inc. |
| |
| Copying and distribution of this file, with or without modification, |
| are permitted in any medium without royalty provided the copyright |
| notice and this notice are preserved. |