Introduce C++ support in libcc1
[gcc.git] / gcc / cp / ChangeLog
index c56c84089f0e92b46463342d53c540ff87d0b803..18732c927e3360fce8f5c10ca67d959c13ac8bac 100644 (file)
@@ -1,5 +1,119 @@
+2017-01-30  Alexandre Oliva <aoliva@redhat.com>
+
+       Introduce C++ support in libcc1.
+       * cp-tree.h (struct lang_identifier): Add oracle_looked_up.
+       (ansi_opname): Rename to...
+       (cp_operator_id): ... this.  Adjust all callers.
+       (ansi_assopname): Rename to...
+       (cp_assignment_operator_id): ... this.  Adjust all callers.
+       (cp_literal_operator_id): Declare.
+       (set_global_friend): Declare.
+       (is_global_friend): Declare.
+       (enum cp_oracle_request): New type.
+       (cp_binding_oracle_function): New type.
+       (cp_binding_oracle): Declare.
+       (cp_finish_injected_record_type): Declare.
+       * friend.c (global_friend): New var.
+       (set_global_friend): New fn.
+       (is_global_friend): New fn.
+       (is_friend): Call is_global_friend.
+       * name-lookup.c (cp_binding_oracle): New var.
+       (query_oracle): New fn.
+       (qualified_lookup_using_namespace): Call query_oracle.
+       (lookup_name_real_1): Likewise.
+       * parser.c (cp_literal_operator_id): Drop static.
+       * search.c (friend_accessible_p): Call is_global_friend.
+       * semantics.c (is_this_parameter): Accept a variable if the
+       binding oracle is enabled.
+
+2017-01-27  Jason Merrill  <jason@redhat.com>
+
+       PR c++/78771 - ICE with inherited constructor.
+       * call.c (build_over_call): Call deduce_inheriting_ctor here.
+       * pt.c (tsubst_decl): Not here.
+       * class.c (add_method): Or here.
+       * method.c (deduce_inheriting_ctor): Handle clones.
+       (implicitly_declare_fn): Don't deduce inheriting ctors yet.
+
+2017-01-27  Adam Butcher  <adam@jessamine.co.uk>
+
+       PR c++/64382
+       * cp/parser.c (parsing_default_capturing_generic_lambda_in_template):
+       New function.
+       * cp/cp-tree.h: Declare it.
+       * cp/semantics.c (finish_id_expression): Resolve names within a default
+       capturing generic lambda defined within a template prior to
+       instantiation to allow for captures to be added to the closure type.
+
+2017-01-26  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/68727
+       * cp-tree.def (OFFSETOF_EXPR): Bump number of operands to 2.
+       * cp-tree.h (finish_offsetof): Add OBJECT_PTR argument.
+       * parser.c (cp_parser_builtin_offsetof): Pass result of
+       build_static_cast of null_pointer_node to finish_offsetof.
+       * semantics.c (finish_offsetof): Add OBJECT_PTR argument, use
+       it for -Winvalid-offsetof pedwarn instead of trying to guess
+       original offsetof type from EXPR.  Save OBJECT_PTR as a new
+       second operand to OFFSETOF_EXPR.
+       * pt.c (tsubst_copy_and_build) <case OFFSETOF_EXPR>: Adjust
+       finish_offsetof caller, pass the second operand of OFFSETOF_EXPR
+       as OBJECT_PTR.
+
+2017-01-26  Jason Merrill  <jason@redhat.com>
+
+       * name-lookup.c (parse_using_directive): Deprecate strong using.
+
+       PR c++/79176 - lambda ICE with -flto -Os
+       * decl2.c (vague_linkage_p): Handle decloned 'tors.
+       * tree.c (decl_linkage): Likewise.
+
+2017-01-25  Martin Sebor  <msebor@redhat.com>
+
+       * decl.c (grokdeclarator): Fix a typo in a comment.
+
+2017-01-25  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/78896
+       * decl.c (cp_finish_decomp): Disallow memberwise decomposition of
+       lambda expressions.
+
+       PR c++/77914
+       * parser.c (cp_parser_lambda_declarator_opt): Pedwarn with
+       OPT_Wpedantic on lambda templates for -std=c++14 and higher.
+
+2017-01-25  Maxim Ostapenko  <m.ostapenko@samsung.com>
+
+       PR lto/79061
+       * decl.c (cxx_init_decl_processing): Pass main_input_filename
+       to build_translation_unit_decl.
+
+2017-01-24  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/79205
+       * cp-gimplify.c (cp_genericize_r): Add result of
+       convert_from_reference on invisiref parm to p_set.
+
+2017-01-24  Nathan Sidwell  <nathan@acm.org>
+
+       PR c++/78469 - defaulted ctor and inaccessible dtor
+       * cp-tree.h (tsubst_flags): Add tf_no_cleanup.
+       * init.c (build_new_1): Pass tf_no_cleanup to build_value_init.
+       * tree.c (build_target_expr): Check tf_no_cleanup.
+
+       PR c++/79118 - anon-members and constexpr
+       * constexpr.c (cx_check_missing_mem_inits): Caller passes type not
+       ctor decl.  Recursively check anonymous members.
+       (register_constexpr_fundef): Adjust cx_check_missing_mem_inits
+       call.
+       (explain_invalid_constexpr_fn): Likewise.
+
 2017-01-23  Nathan Sidwell  <nathan@acm.org>
 
+       PR c++/71710 - template using directive of field
+       * pt.c (tsubst_copy_and_build [COMPONENT_REF]): Move FIELD_DECL
+       check earlier.
+
        PR c++/71406 - ICE with scope-ref'd template id exprs
        PR c++/77508
        * typeck.c (finish_class_member_access_expr): Break up SCOPE_REF