]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/cp/ChangeLog
9f8d91a4500c0f0631fa2b48cda58289a3e895da
[thirdparty/gcc.git] / gcc / cp / ChangeLog
1 2016-01-27 Marek Polacek <polacek@redhat.com>
2
3 PR c++/69496
4 * constexpr.c (cxx_eval_array_reference): Evaluate the number of
5 elements of the array.
6
7 2016-01-26 Jason Merrill <jason@redhat.com>
8
9 PR c++/68949
10 * constexpr.c (register_constexpr_fundef): Keep the un-massaged body.
11 (cxx_eval_call_expression): Don't look through clones.
12 * optimize.c (maybe_clone_body): Clear DECL_SAVED_TREE of the alias.
13 * semantics.c (expand_or_defer_fn_1): Keep DECL_SAVED_TREE of
14 maybe-in-charge *tor.
15
16 2016-01-26 Jason Merrill <jason@redhat.com>
17
18 PR c++/68782
19 * constexpr.c (cxx_eval_bare_aggregate): Update TREE_CONSTANT
20 and TREE_SIDE_EFFECTS.
21 (cxx_eval_constant_expression) [CONSTRUCTOR]: Call
22 verify_constructor_flags.
23
24 2016-01-26 Jakub Jelinek <jakub@redhat.com>
25
26 PR c++/68357
27 * cp-gimplify.c (cp_fold): If some operand folds to error_mark_node,
28 return error_mark_node instead of building trees with error_mark_node
29 operands.
30
31 2016-01-26 David Malcolm <dmalcolm@redhat.com>
32
33 PR other/69006
34 * error.c (print_instantiation_partial_context_line): Add missing
35 newlines from output for the t == NULL case.
36 (print_instantiation_partial_context): Remove call to pp_newline.
37
38 2016-01-24 Patrick Palka <ppalka@gcc.gnu.org>
39
40 Revert:
41 2016-01-18 Patrick Palka <ppalka@gcc.gnu.org>
42
43 PR c++/11858
44 PR c++/24663
45 PR c++/24664
46 * decl.c (grokdeclarator): Don't decay array parameter type to
47 a pointer type if it's dependent.
48 (grokparms): Invoke strip_top_quals instead of directly invoking
49 cp_build_qualified_type.
50 * pt.c (decay_dependent_array_parm_type): New static function.
51 (type_unification_real): Call decay_dependent_array_parm_type
52 to decay a dependent array parameter type to its corresponding
53 pointer type before unification.
54 (more_specialized_fn): Likewise.
55 (get_bindings): Likewise.
56 * tree.c (cp_build_qualified_type): Trivial typofix in
57 documentation.
58
59 2016-01-23 Martin Sebor <msebor@redhat.com>
60
61 PR c++/58109
62 PR c++/69022
63 * decl2.c (is_late_template_attribute): Handle dependent argument
64 to attribute align and attribute vector_size.
65
66 2016-01-21 Jason Merrill <jason@redhat.com>
67
68 PR c++/69392
69 * lambda.c (lambda_capture_field_type): Handle 'this' specially
70 for init-capture, too.
71
72 PR c++/65687
73 * decl.c (type_is_deprecated): Don't look into a typedef.
74
75 PR c++/40751
76 PR c++/64987
77 * decl.c (copy_type_enum): Respect TYPE_USER_ALIGN.
78
79 PR c++/43407
80 * decl.c (start_enum): Add attributes parameter.
81 * parser.c (cp_parser_enum_specifier): Pass it.
82 * pt.c (lookup_template_class_1): Pass it.
83 * cp-tree.h: Adjust.
84
85 2016-01-19 Jason Merrill <jason@redhat.com>
86
87 PR c++/59759
88 * pt.c (convert_template_argument): Handle VAR_DECL properly.
89
90 2016-01-19 Marek Polacek <polacek@redhat.com>
91
92 PR c++/68586
93 * constexpr.c (clear_cv_cache): New.
94 * cp-gimplify.c (clear_fold_cache): New.
95 * cp-tree.h (clear_cv_cache, clear_fold_cache): Declare.
96 * decl.c (finish_enum_value_list): Call them.
97
98 PR c++/68965
99 * pt.c (tsubst_copy): Mark elements in expanded vector as used.
100
101 2016-01-18 Patrick Palka <ppalka@gcc.gnu.org>
102
103 PR c++/11858
104 PR c++/24663
105 PR c++/24664
106 * decl.c (grokdeclarator): Don't decay array parameter type to
107 a pointer type if it's dependent.
108 (grokparms): Invoke strip_top_quals instead of directly invoking
109 cp_build_qualified_type.
110 * pt.c (decay_dependent_array_parm_type): New static function.
111 (type_unification_real): Call decay_dependent_array_parm_type
112 to decay a dependent array parameter type to its corresponding
113 pointer type before unification.
114 (more_specialized_fn): Likewise.
115 (get_bindings): Likewise.
116 * tree.c (cp_build_qualified_type): Trivial typofix in
117 documentation.
118
119 2016-01-18 Jason Merrill <jason@redhat.com>
120
121 * cp-gimplify.c (cp_fold) [CONSTRUCTOR]: Don't clobber the input.
122
123 * cp-gimplify.c (cp_fold): Remove unnecessary special cases.
124
125 PR c++/68767
126 * cp-gimplify.c (cp_fold) [COND_EXPR]: Simplify. Do fold COND_EXPR.
127 (contains_label_1, contains_label_p): Remove.
128
129 2016-01-16 Patrick Palka <ppalka@gcc.gnu.org>
130
131 PR c++/69091
132 * pt.c (type_dependent_expression_p): For a function template
133 specialization, a type is dependent iff any of its template
134 arguments are.
135
136 2016-01-16 Patrick Palka <ppalka@gcc.gnu.org>
137
138 * cp-array-notation.c (cp_expand_cond_array_notations): Return
139 error_mark_node only if find_rank failed, not if it was
140 successful.
141
142 2016-01-16 Patrick Palka <ppalka@gcc.gnu.org>
143
144 PR c++/68936
145 * tree.c (build_min_non_dep_call_vec): Don't retain the
146 KOENIG_LOOKUP_P flag of the non-dependent expression that's
147 been built.
148 (build_min_non_dep_op_overload): Instead, do it here.
149
150 2016-01-15 Jakub Jelinek <jakub@redhat.com>
151
152 PR bootstrap/68271
153 * parser.h (cp_token): Remove pragma_kind field. Add comment
154 with number of unused bits.
155 * parser.c (eof_token): Remove pragma_kind field initializer.
156 (cp_lexer_get_preprocessor_token): Don't set pragma_kind
157 field, don't clear CPP_PRAGMA u.value.
158 (cp_parser_pragma_kind): New function.
159 (cp_parser_omp_sections_scope, cp_parser_oacc_kernels_parallel,
160 cp_parser_omp_construct, cp_parser_initial_pragma,
161 cp_parser_pragma): Use cp_parser_pragma_kind instead of accessing
162 pragma_kind field.
163
164 2016-01-15 Jason Merrill <jason@redhat.com>
165
166 PR c++/68847
167 * call.c (build_cxx_call): Use fold_non_dependent_expr.
168
169 * typeck2.c (cxx_incomplete_type_diagnostic): Use the location of
170 value.
171
172 PR c++/69257
173 * typeck.c (decay_conversion): Don't call mark_rvalue_use for
174 array/function-to-pointer conversion. Call
175 complete_type_or_maybe_complain for lvalue-to-rvalue conversion.
176 * call.c (convert_like_real): Print call context if
177 decay_conversion errors.
178
179 2016-01-14 Tom de Vries <tom@codesourcery.com>
180
181 PR tree-optimization/68773
182 * parser.c (cp_parser_oacc_declare, cp_parser_omp_declare_target): Don't
183 set force_output.
184
185 2016-01-14 Jason Merrill <jason@redhat.com>
186
187 PR c++/69261
188 * constexpr.c (find_array_ctor_elt): Handle splitting RANGE_EXPR.
189
190 2016-01-12 Marek Polacek <polacek@redhat.com>
191
192 PR c++/68979
193 * constexpr.c (cxx_eval_check_shift_p): Use permerror rather than
194 error_at and adjust the return value.
195
196 2016-01-12 Jakub Jelinek <jakub@redhat.com>
197
198 PR objc++/68511
199 PR c++/69213
200 * cp-gimplify.c (cp_gimplify_expr) <case INIT_EXPR>: Don't return
201 GS_ERROR whenever seen_error (), only if *expr_p contains
202 cilk spawn stmt, but cilk_detect_spawn_and_unwrap failed.
203
204 PR c++/66808
205 PR c++/69000
206 * pt.c (tsubst_decl): If not local_p, clear DECL_TEMPLATE_INFO.
207
208 2016-01-11 Jason Merrill <jason@redhat.com>
209
210 PR c++/69131
211 * method.c (walk_field_subobs): Add dtor_from_ctor parm.
212 (process_subob_fn): Likewise. Don't consider triviality if true.
213 (synthesize_method_walk): Pass it.
214
215 2016-01-11 David Malcolm <dmalcolm@redhat.com>
216
217 PR c++/68795
218 * parser.c (cp_parser_postfix_expression): Initialize
219 close_paren_loc to UNKNOWN_LOCATION; only use it if
220 it has been written to by
221 cp_parser_parenthesized_expression_list.
222 (cp_parser_parenthesized_expression_list): Document the behavior
223 with respect to the CLOSE_PAREN_LOC param.
224
225 2016-01-11 Jakub Jelinek <jakub@redhat.com>
226
227 PR c++/69211
228 * cp-gimplify.c (cp_fold): If COMPOUND_EXPR or MODIFY_EXPR
229 folded operands have side-effects, but folding changed any of them,
230 build a new tree with the folded operands instead of returning the
231 unfolded tree.
232
233 2016-01-09 Marek Polacek <polacek@redhat.com>
234
235 PR c++/69113
236 * decl2.c (comdat_linkage): Only set DECL_COMDAT if TREE_PUBLIC is set.
237
238 2016-01-09 Jakub Jelinek <jakub@redhat.com>
239
240 PR c++/69164
241 * class.c (layout_class_type): Use copy_node to copy FIELD_DECLs.
242
243 2016-01-08 Jason Merrill <jason@redhat.com>
244
245 PR c++/69158
246 * constexpr.c (cxx_fold_indirect_ref): Handle array type differing
247 in completion.
248
249 2016-01-08 Marek Polacek <polacek@redhat.com>
250
251 PR c++/68449
252 * constexpr.c (cxx_eval_constant_expression): Handle NULL initializer.
253
254 2016-01-08 Jason Merrill <jason@redhat.com>
255
256 * constexpr.c (cxx_eval_call_expression): Remove convert_to_void
257 workaround.
258
259 PR c++/68983
260 PR c++/67557
261 * cvt.c (convert_to_void): Don't strip a TARGET_EXPR of
262 TREE_ADDRESSABLE type.
263
264 PR c++/68983
265 PR c++/67557
266 * call.c (unsafe_copy_elision_p): Look through COMPOUND_EXPR.
267
268 2016-01-05 Nathan Sidwell <nathan@acm.org>
269
270 PR c++/58583
271 * pt.c (build_non_dependent_expr): Don't try a checking fold when
272 parsing an nsdmi.
273
274 2016-01-04 Jakub Jelinek <jakub@redhat.com>
275
276 Update copyright years.
277 \f
278 Copyright (C) 2016 Free Software Foundation, Inc.
279
280 Copying and distribution of this file, with or without modification,
281 are permitted in any medium without royalty provided the copyright
282 notice and this notice are preserved.