PR c++/88312 - pack expansion of decltype.
[gcc.git] / gcc / cp / ChangeLog
1 2019-01-11 Jason Merrill <jason@redhat.com>
2
3 PR c++/88312 - pack expansion of decltype.
4 * pt.c (instantiation_dependent_r): A template non-type parameter
5 pack is instantiation-dependent.
6
7 2019-01-11 Jason Merrill <jason@redhat.com>
8
9 PR c++/88613 - ICE with use of const var in lambda.
10 * expr.c (mark_use): Fix location wrapper handling.
11 * cp-gimplify.c (cp_fold_maybe_rvalue): Call mark_rvalue_use.
12
13 2019-01-11 Tobias Burnus <burnus@net-b.de>
14
15 PR C++/88114
16 * decl2.c (maybe_emit_vtables): If needed, generate code for
17 the destructor of an abstract class.
18 (mark_used): Update comment for older function-name change.
19
20 2019-01-11 Paolo Carlini <paolo.carlini@oracle.com>
21
22 * decl.c (start_decl): Improve error location.
23 (grokdeclarator): Likewise, improve two locations.
24
25 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
26
27 PR other/16615
28
29 * cp-tree.h: Mechanically replace "can not" with "cannot".
30 * parser.c: Likewise.
31 * pt.c: Likewise.
32
33 2019-01-08 Paolo Carlini <paolo.carlini@oracle.com>
34
35 * decl.c (grok_reference_init): Improve error location.
36 (grokdeclarator): Likewise, improve two locations.
37
38 2019-01-08 Marek Polacek <polacek@redhat.com>
39
40 PR c++/88538 - braced-init-list in template-argument-list.
41 * parser.c (cp_parser_template_argument): Handle braced-init-list when
42 in C++20.
43
44 PR c++/88548 - this accepted in static member functions.
45 * parser.c (cp_debug_parser): Adjust printing of
46 local_variables_forbidden_p.
47 (cp_parser_new): Set local_variables_forbidden_p to 0 rather than false.
48 (cp_parser_primary_expression): When checking
49 local_variables_forbidden_p, use THIS_FORBIDDEN or
50 LOCAL_VARS_FORBIDDEN.
51 (cp_parser_lambda_body): Update the type of
52 local_variables_forbidden_p. Set it to 0 rather than false.
53 (cp_parser_condition): Adjust call to cp_parser_declarator.
54 (cp_parser_explicit_instantiation): Likewise.
55 (cp_parser_init_declarator): Likewise.
56 (cp_parser_declarator): New parameter. Use it.
57 (cp_parser_direct_declarator): New parameter. Use it to set
58 local_variables_forbidden_p. Adjust call to cp_parser_declarator.
59 (cp_parser_type_id_1): Adjust call to cp_parser_declarator.
60 (cp_parser_parameter_declaration): Likewise.
61 (cp_parser_default_argument): Update the type of
62 local_variables_forbidden_p. Set it to LOCAL_VARS_AND_THIS_FORBIDDEN
63 rather than true.
64 (cp_parser_member_declaration): Tell cp_parser_declarator if we saw
65 'static' or 'friend'.
66 (cp_parser_exception_declaration): Adjust call to cp_parser_declarator.
67 (cp_parser_late_parsing_default_args): Update the type of
68 local_variables_forbidden_p. Set it to LOCAL_VARS_AND_THIS_FORBIDDEN
69 rather than true.
70 (cp_parser_cache_defarg): Adjust call to cp_parser_declarator.
71 (cp_parser_objc_class_ivars): Likewise.
72 (cp_parser_objc_struct_declaration): Likewise.
73 (cp_parser_omp_for_loop_init): Likewise.
74 * parser.h (cp_parser): Change the type of local_variables_forbidden_p
75 to unsigned char.
76 (LOCAL_VARS_FORBIDDEN, LOCAL_VARS_AND_THIS_FORBIDDEN, THIS_FORBIDDEN):
77 Define.
78
79 2019-01-08 Paolo Carlini <paolo.carlini@oracle.com>
80
81 * decl.c (start_decl): Improve permerror location.
82
83 2019-01-08 Jonathan Wakely <jwakely@redhat.com>
84 Jakub Jelinek <jakub@redhat.com>
85
86 PR c++/88554
87 * decl.c (finish_function): For -Wreturn-type don't add a return *this;
88 fixit hint if current_class_ref is NULL. Use a single if instead of
89 two nested ones.
90
91 2019-01-07 Paolo Carlini <paolo.carlini@oracle.com>
92
93 * decl.c (start_decl): Improve two error_at locations.
94 (expand_static_init): Likewise.
95
96 2019-01-07 Marek Polacek <polacek@redhat.com>
97
98 PR c++/88741 - wrong error with initializer-string.
99 * decl.c (cp_complete_array_type): Strip any location wrappers.
100
101 2019-01-07 Bernd Edlinger <bernd.edlinger@hotmail.de>
102
103 PR c++/88261
104 PR c++/69338
105 PR c++/69696
106 PR c++/69697
107 * cp-tree.h (LOOKUP_ALLOW_FLEXARRAY_INIT): New flag value.
108 * typeck2.c (digest_init_r): Raise an error for non-static
109 initialization of a flexible array member.
110 (process_init_constructor, massage_init_elt,
111 process_init_constructor_array, process_init_constructor_record,
112 process_init_constructor_union, process_init_constructor): Add the
113 flags parameter and pass it thru.
114 (store_init_value): Pass LOOKUP_ALLOW_FLEXARRAY_INIT parameter to
115 digest_init_flags for static decls.
116
117 2019-01-07 Jakub Jelinek <jakub@redhat.com>
118
119 PR c++/85052
120 * cp-tree.h (cp_build_vec_convert): Declare.
121 * parser.c (cp_parser_postfix_expression): Parse
122 __builtin_convertvector.
123 * constexpr.c: Include fold-const-call.h.
124 (cxx_eval_internal_function): Handle IFN_VEC_CONVERT.
125 (potential_constant_expression_1): Likewise.
126 * semantics.c (cp_build_vec_convert): New function.
127 * pt.c (tsubst_copy_and_build): Handle CALL_EXPR to
128 IFN_VEC_CONVERT.
129
130 2019-01-03 Jakub Jelinek <jakub@redhat.com>
131
132 PR c++/88636
133 * decl.c (builtin_function_1): Return result of pushdecl_top_level
134 or pushdecl rather than decl.
135
136 2019-01-03 Paolo Carlini <paolo.carlini@oracle.com>
137
138 * tree.c (handle_nodiscard_attribute): Improve warning location.
139
140 2019-01-02 Marek Polacek <polacek@redhat.com>
141
142 PR c++/88612 - ICE with -Waddress-of-packed-member.
143 * call.c (convert_for_arg_passing): Only give warnings with tf_warning.
144 * typeck.c (convert_for_assignment): Likewise.
145
146 PR c++/88631 - CTAD failing for value-initialization.
147 * typeck2.c (build_functional_cast): Try deducing the template
148 arguments even if there are no arguments to deduce from.
149
150 2019-01-01 Jakub Jelinek <jakub@redhat.com>
151
152 Update copyright years.
153 \f
154 Copyright (C) 2019 Free Software Foundation, Inc.
155
156 Copying and distribution of this file, with or without modification,
157 are permitted in any medium without royalty provided the copyright
158 notice and this notice are preserved.