aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/cp/ChangeLog')
-rw-r--r--gcc/cp/ChangeLog121
1 files changed, 121 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 6c92e1b3856..2b6e3b68b3c 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,124 @@
+2017-10-13 Jason Merrill <jason@redhat.com>
+
+ PR c++/82357 - bit-field in template
+ * tree.c (cp_stabilize_reference): Just return a NON_DEPENDENT_EXPR.
+
+2017-10-13 David Malcolm <dmalcolm@redhat.com>
+
+ * cp-tree.h (maybe_show_extern_c_location): New decl.
+ * decl.c (grokfndecl): When complaining about literal operators
+ with C linkage, issue a note giving the location of the
+ extern "C".
+ * parser.c (cp_parser_new): Initialize new field
+ "innermost_linkage_specification_location".
+ (cp_parser_linkage_specification): Store the location
+ of the linkage specification within the cp_parser.
+ (cp_parser_explicit_specialization): When complaining about
+ template specializations with C linkage, issue a note giving the
+ location of the extern "C".
+ (cp_parser_explicit_template_declaration): Likewise for templates.
+ (maybe_show_extern_c_location): New function.
+ * parser.h (struct cp_parser): New field
+ "innermost_linkage_specification_location".
+
+2017-10-12 Nathan Sidwell <nathan@acm.org>
+
+ * cp-tree.h (cp_expr): Add const operator * and operator->
+ accessors.
+ (cp_tree_node_structure_enum): Delete TS_CP_BINDING,
+ TS_CP_WRAPPER, LAST_TS_CP_ENUM.
+
+2017-10-12 David Malcolm <dmalcolm@redhat.com>
+
+ * parser.c (get_required_cpp_ttype): New function.
+ (cp_parser_error_1): Call it, using the result to call
+ maybe_suggest_missing_token_insertion.
+
+2017-10-12 David Malcolm <dmalcolm@redhat.com>
+
+ * parser.c (get_matching_symbol): Move to before...
+ (cp_parser_error): Split out into...
+ (cp_parser_error_1): ...this new function, merging in content
+ from...
+ (cp_parser_required_error): ...here. Eliminate partial duplicate
+ of body of cp_parser_error in favor of a call to the new
+ cp_parser_error_1 helper function.
+
+2017-10-11 Nathan Sidwell <nathan@acm.org>
+
+ * decl2.c (struct mangled_decl_hash): Use DECL_ASSEMBLER_NAME_RAW.
+ (record_mangling): Likewise.
+
+2017-10-10 Nathan Sidwell <nathan@acm.org>
+
+ * name-lookup.c (extern_c_fns): Rename to ...
+ (extern_c_decls): ... here.
+ (check_extern_c_conflict, extern_c_linkage_bindings): Update.
+ (do_pushdecl): Check extern-c fns and vars.
+
+ * cp-tree.h (default_hash_traits <lang_identifier *>): Delete
+ specialization.
+
+ * decl2.c (struct mangled_decl_hash): New hash traits.
+ (mangled_decls): Make hash_table<mangled_decl_hash>.
+ (generate_mangling_alias, record_mangling): Adjust.
+
+2017-10-10 Jason Merrill <jason@redhat.com>
+
+ More delayed lambda capture fixes.
+ * call.c (add_function_candidate): Use build_address.
+ (build_op_call_1): Call mark_lvalue_use early.
+ (build_over_call): Handle error from build_this.
+ * constexpr.c (cxx_bind_parameters_in_call): Use build_address.
+ (cxx_eval_increment_expression): Don't use rvalue().
+ * cvt.c (convert_to_void): Use mark_discarded_use.
+ * expr.c (mark_use): Handle PARM_DECL, NON_DEPENDENT_EXPR. Fix
+ reference handling. Don't copy the expression.
+ (mark_discarded_use): New.
+ * lambda.c (insert_capture_proxy): Add some sanity checking.
+ (maybe_add_lambda_conv_op): Set cp_unevaluated_operand.
+ * pt.c (register_local_specialization): Add sanity check.
+ * semantics.c (process_outer_var_ref): Fix check for existing proxy.
+ * typeck.c (cp_build_addr_expr_1): Handle error from
+ mark_lvalue_use.
+ (cp_build_modify_expr): Call mark_lvalue_use_nonread, handle error
+ from rvalue.
+
+ Handle generic lambda capture in dependent expressions.
+ * lambda.c (need_generic_capture, dependent_capture_r)
+ (do_dependent_capture): New.
+ * pt.c (processing_nonlambda_template): Use need_generic_capture.
+ * semantics.c (maybe_cleanup_point_expr)
+ (maybe_cleanup_point_expr_void, finish_goto_stmt)
+ (maybe_convert_cond): Call do_dependent_capture.
+ * typeck.c (build_static_cast): Remove dependent capture handling.
+
+ * typeck.c (condition_conversion): Assert !processing_template_decl.
+ * semantics.c (finish_omp_clauses): Don't
+ fold_build_cleanup_point_expr if processing_template_decl.
+ (outer_var_p): A temporary can't be from an outer scope.
+ * pt.c (type_dependent_expression_p): Fix dependency checking of
+ functions without DECL_TEMPLATE_INFO.
+ (instantiate_decl): Use lss_copy.
+ * constexpr.c (is_valid_constexpr_fn): Fix lambdas before C++17.
+
+ * typeck.c (check_return_expr): Check non-dependent conversion in
+ templates.
+ * constraint.cc (check_function_concept): Don't complain about an
+ empty concept if seen_error.
+
+2017-10-10 Richard Sandiford <richard.sandiford@linaro.org>
+
+ * cvt.c (ignore_overflows): Use wi::to_wide when
+ operating on trees as wide_ints.
+ * decl.c (check_array_designated_initializer): Likewise.
+ * mangle.c (write_integer_cst): Likewise.
+ * semantics.c (cp_finish_omp_clause_depend_sink): Likewise.
+
+2017-10-10 Nathan Sidwell <nathan@acm.org>
+
+ * name-lookup.c (set_global_binding): Don't deal with STAT_HACK.
+
2017-10-06 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/47791