PR c++/85149 - generic lambda and constexpr if.
[gcc.git] / gcc / cp / ChangeLog
index 23f5d3a7e1b6be2b97f93f5f87df5c0d8e993c60..9dbb215154e59826737599356a47a5d67bb11b24 100644 (file)
@@ -1,5 +1,95 @@
+2018-04-03  Jason Merrill  <jason@redhat.com>
+
+       PR c++/85149 - generic lambda and constexpr if.
+       * pt.c (build_extra_args, add_extra_args): Split from
+       tsubst_pack_expansion.
+       (tsubst_expr) [IF_STMT]: Use them.
+       * cp-tree.h (IF_STMT_EXTRA_ARGS): New.
+
+       * typeck.c (merge_types): Limit matching attribute shortcut to
+       the default case.
+
+2018-04-03  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/85147
+       * pt.c (fixed_parameter_pack_p_1): Punt if parm is error_mark_node.
+
+       PR c++/85140
+       * name-lookup.c (handle_namespace_attrs): Return early if attributes
+       is error_mark_node.
+
+       PR c++/85134
+       * decl.c (cp_finish_decl): If ensure_literal_type_for_constexpr_object
+       fails, after clearing DECL_DECLARED_CONSTEXPR_P don't return early,
+       instead for static data members clear init and set DECL_EXTERNAL.
+
+2018-04-02  Jason Merrill  <jason@redhat.com>
+
+       PR c++/64095 - auto... parameter pack.
+       * parser.c (cp_parser_parameter_declaration): Handle turning autos
+       into packs here.
+       (cp_parser_parameter_declaration_list): Not here.
+
+2018-03-31  Alexandre Oliva <aoliva@redhat.com>
+
+       PR c++/85027
+       * class.c (instantiate_type): Peel off SAVE_EXPR before
+       BASELINK.
+
+2018-03-30  Jason Merrill  <jason@redhat.com>
+
+       * typeck2.c (process_init_constructor_record): Use
+       init_list_type_node for the CONSTRUCTOR around an anonymous union
+       designated initializer.
+
+2018-03-30  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/84791
+       * semantics.c (finish_omp_reduction_clause): If
+       OMP_CLAUSE_REDUCTION_PLACEHOLDER is error_mark_node, return true
+       even if processing_template_decl.
+
+2018-03-29  David Malcolm  <dmalcolm@redhat.com>
+
+       PR c++/84269
+       * name-lookup.c (get_std_name_hint): Add names from <memory>,
+       <tuple>, and <utility>.
+
+2018-03-29  Jason Merrill  <jason@redhat.com>
+
+       PR c++/85093 - too many template args with pack expansion.
+       * pt.c (coerce_template_parms): Keep pack expansion args that will
+       need to be empty.
+
+2018-03-29  Jason Merrill  <jason@redhat.com>
+
+       * pt.c (build_non_dependent_expr): Propagate expr location.
+
+2018-03-27  Jason Merrill  <jason@redhat.com>
+
+       PR c++/85060 - wrong-code with call to base member in template.
+       * search.c (any_dependent_bases_p): Check uses_template_parms
+       rather than processing_template_decl.
+
+2018-03-29  David Malcolm  <dmalcolm@redhat.com>
+
+       PR c++/85110
+       * typeck.c (convert_for_assignment): When complaining due to
+       conversions for an argument, attempt to use the location of the
+       argument.
+
+2018-03-28  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR c++/85028
+       * pt.c (tsubst_default_argument): Early return if the type of the
+       parameter is erroneous.
+
 2018-03-28  Alexandre Oliva <aoliva@redhat.com>
 
+       PR c++/84973
+       * decl2.c (note_vague_linkage_fn): Don't defer uninstantiated
+       templates.
+
        PR c++/84968
        * tree.c (strip_typedefs_expr): Reject STATEMENT_LISTs.