]>
Commit | Line | Data |
---|---|---|
40a59fc0 | 1 | 2018-03-19 Marek Polacek <polacek@redhat.com> |
2 | ||
3 | PR c++/84925 | |
4 | * pt.c (enclosing_instantiation_of): Check if fn is null. | |
5 | ||
79e65a6b | 6 | PR c++/84927 |
7 | * constexpr.c (cxx_eval_bare_aggregate): Update constructor's flags | |
8 | as we evaluate the elements. | |
9 | (cxx_eval_constant_expression): Verify constructor's flags | |
10 | unconditionally. | |
11 | ||
40e0b1f2 | 12 | 2018-03-16 Jason Merrill <jason@redhat.com> |
13 | ||
14 | PR c++/71834 - template-id with too few arguments. | |
15 | * pt.c (coerce_template_parms): Check fixed_parameter_pack_p. | |
16 | ||
4aaa9b04 | 17 | 2018-03-19 Nathan Sidwell <nathan@acm.org> |
18 | ||
1c4a339e | 19 | PR c++/84835 |
20 | * lambda.c (maybe_add_lambda_conv_op): Force C++ linkage. | |
21 | * pt.c (build_template_decl): Propagate language linkage. | |
22 | ||
4aaa9b04 | 23 | PR c++/84812 |
24 | * name-lookup.c (set_local_extern_decl_linkage): Defend against | |
25 | ambiguous lookups. | |
26 | ||
7b2c7b75 | 27 | 2018-03-16 Jakub Jelinek <jakub@redhat.com> |
28 | ||
29 | PR c/84910 | |
30 | * parser.c (cp_parser_lambda_introducer): Remove trailing space from | |
31 | diagnostics. | |
32 | * method.c (synthesize_method): Likewise. | |
33 | * pt.c (convert_nontype_argument): Likewise. | |
34 | ||
9582b9d8 | 35 | 2018-03-16 Jason Merrill <jason@redhat.com> |
36 | ||
6e3a6db6 | 37 | PR c++/84720 - ICE with rvalue ref non-type argument. |
38 | * pt.c (invalid_nontype_parm_type_p): Prohibit rvalue reference. | |
39 | (convert_nontype_argument): Revert earlier change. | |
40 | ||
e5392173 | 41 | PR c++/80227 - SFINAE and negative array size. |
42 | * decl.c (compute_array_index_type): Use | |
43 | build_converted_constant_expr and valid_constant_size_p. | |
44 | ||
612d07ac | 45 | PR c++/84906 - silent wrong code with ambiguous conversion. |
46 | * call.c (build_user_type_conversion_1): Set need_temporary_p on | |
47 | ambiguous conversion. | |
48 | (convert_like_real): Check it. | |
49 | ||
9582b9d8 | 50 | PR c++/83937 - wrong C++17 handling of init-list ctor argument. |
51 | * call.c (build_special_member_call): Don't convert an init-list | |
52 | argument directly to the class type. | |
53 | ||
7604a798 | 54 | 2018-03-16 Jakub Jelinek <jakub@redhat.com> |
55 | ||
56 | PR c++/79937 | |
57 | PR c++/82410 | |
58 | * cp-tree.h (CONSTRUCTOR_PLACEHOLDER_BOUNDARY): Define. | |
59 | (find_placeholder): Declare. | |
60 | * tree.c (struct replace_placeholders_t): Add exp member. | |
61 | (replace_placeholders_r): Don't walk into ctors with | |
62 | CONSTRUCTOR_PLACEHOLDER_BOUNDARY flag set, unless they are equal to | |
63 | d->exp. Replace PLACEHOLDER_EXPR with unshare_expr (x) rather than x. | |
64 | (replace_placeholders): Initialize data.exp. | |
65 | (find_placeholders_r, find_placeholders): New functions. | |
66 | * typeck2.c (process_init_constructor_record, | |
67 | process_init_constructor_union): Set CONSTRUCTOR_PLACEHOLDER_BOUNDARY | |
68 | if adding NSDMI on which find_placeholder returns true. | |
69 | * call.c (build_over_call): Don't call replace_placeholders here. | |
70 | * cp-gimplify.c (cp_genericize_r): Set TARGET_EXPR_NO_ELIDE on | |
71 | TARGET_EXPRs with CONSTRUCTOR_PLACEHOLDER_BOUNDARY set on | |
72 | TARGET_EXPR_INITIAL. | |
73 | (cp_fold): Copy over CONSTRUCTOR_PLACEHOLDER_BOUNDARY bit to new | |
74 | ctor. | |
75 | ||
91735070 | 76 | 2018-03-16 Jason Merrill <jason@redhat.com> |
77 | ||
78 | PR c++/83911 - ICE with multiversioned constructor. | |
79 | * cp-gimplify.c (cp_genericize_r): Replace versioned function with | |
80 | dispatchere here. | |
81 | * call.c (build_over_call): Not here. | |
82 | ||
8da6002a | 83 | 2018-03-16 Jakub Jelinek <jakub@redhat.com> |
84 | ||
85 | PR c++/84874 | |
86 | * decl.c (reshape_init_class): Don't assert d->cur->index == field | |
87 | if d->cur->index is a FIELD_DECL, instead set field to d->cur->index. | |
88 | ||
e57bcc46 | 89 | 2018-03-15 Jakub Jelinek <jakub@redhat.com> |
90 | ||
91 | PR c++/84222 | |
92 | * cp-tree.h (cp_warn_deprecated_use): Declare. | |
93 | * tree.c (cp_warn_deprecated_use): New function. | |
94 | * typeck2.c (build_functional_cast): Use it. | |
95 | * decl.c (grokparms): Likewise. | |
96 | (grokdeclarator): Likewise. Temporarily push nested class scope | |
97 | around grokparms call for out of class member definitions. | |
98 | ||
4fc774de | 99 | 2018-03-14 Jason Merrill <jason@redhat.com> |
100 | ||
41efa9a4 | 101 | PR c++/84820 - no error for invalid qualified-id. |
102 | * parser.c (cp_parser_make_indirect_declarator): Don't wrap | |
103 | cp_error_declarator. | |
104 | ||
783f1b0f | 105 | PR c++/84801 - ICE with unexpanded pack in lambda. |
106 | * pt.c (check_for_bare_parameter_packs): Don't return early for a | |
107 | lambda in non-template context. | |
108 | ||
4fc774de | 109 | PR c++/81236 - auto variable and auto function |
110 | * pt.c (tsubst_baselink): Update the type of the BASELINK after | |
111 | mark_used. | |
112 | ||
1227307b | 113 | 2018-03-14 Jason Merrill <jason@redhat.com> |
114 | ||
115 | PR c++/83916 - ICE with template template parameters. | |
116 | * pt.c (convert_template_argument): Don't substitute into type of | |
117 | non-type parameter if we don't have enough arg levels. | |
118 | (unify): Likewise. | |
119 | ||
1be31e55 | 120 | 2018-03-14 Marek Polacek <polacek@redhat.com> |
121 | ||
122 | PR c++/84596 | |
123 | * semantics.c (finish_static_assert): Check | |
124 | instantiation_dependent_expression_p instead of | |
125 | {type,value}_dependent_expression_p. | |
126 | ||
a6cdf4f3 | 127 | 2018-03-13 Paolo Carlini <paolo.carlini@oracle.com> |
128 | Jason Merrill <jason@redhat.com> | |
129 | ||
130 | PR c++/82336 - link error with list-init default argument. | |
131 | * decl.c (check_default_argument): Unshare an initializer list. | |
132 | ||
a6eb1b34 | 133 | 2018-03-13 Jakub Jelinek <jakub@redhat.com> |
134 | ||
135 | PR c++/84843 | |
136 | * decl.c (duplicate_decls): For redefinition of built-in, use error | |
137 | and return error_mark_node. For redeclaration, return error_mark_node | |
138 | rather than olddecl if !flag_permissive. | |
139 | ||
a4306186 | 140 | 2018-03-13 Jason Merrill <jason@redhat.com> |
141 | ||
142 | PR c++/82565 - ICE with concepts and generic lambda. | |
143 | * pt.c (instantiate_decl): Clear fn_context for lambdas. | |
144 | ||
c1fed38f | 145 | 2018-03-13 Jason Merrill <jason@redhat.com> |
146 | ||
849d6058 | 147 | PR c++/84720 - ICE with rvalue ref non-type argument. |
148 | * pt.c (convert_nontype_argument): Handle rvalue references. | |
149 | ||
d15ccbe3 | 150 | PR c++/84839 - ICE with decltype of parameter pack. |
151 | * pt.c (tsubst_pack_expansion): Set cp_unevaluated_operand while | |
152 | instantiating dummy parms. | |
153 | ||
e5cae1a3 | 154 | * parser.c (cp_parser_simple_type_specifier): Pedwarn about auto |
155 | parameter even without -Wpedantic. | |
156 | ||
c1fed38f | 157 | PR c++/84798 - ICE with auto in abstract function declarator. |
158 | * parser.c (cp_parser_parameter_declaration_clause): Check | |
159 | parser->default_arg_ok_p. | |
160 | ||
e99466d6 | 161 | 2018-03-13 Jakub Jelinek <jakub@redhat.com> |
162 | ||
163 | PR c++/84808 | |
164 | * constexpr.c (find_array_ctor_elt): Don't use elt reference after | |
165 | first potential CONSTRUCTOR_ELTS reallocation. Convert dindex to | |
166 | sizetype. Formatting fixes. | |
167 | ||
33d103ed | 168 | 2018-03-12 Jason Merrill <jason@redhat.com> |
169 | ||
edd55a60 | 170 | PR c++/84355 - ICE with deduction for member class template. |
171 | * pt.c (tsubst) [TEMPLATE_TYPE_PARM]: Always substitute into | |
172 | CLASS_PLACEHOLDER_TEMPLATE. | |
173 | ||
33d103ed | 174 | PR c++/84802 - ICE capturing uninstantiated class. |
175 | * lambda.c (build_capture_proxy): Call complete_type. | |
176 | ||
3ef7ff1b | 177 | 2018-03-09 Jason Merrill <jason@redhat.com> |
178 | ||
21e96d8d | 179 | PR c++/84770 - ICE with typedef and parameter pack. |
180 | * pt.c (verify_unstripped_args_1): Split out from | |
181 | verify_unstripped_args. | |
182 | ||
9aa4a1f0 | 183 | PR c++/84785 - ICE with alias template and default targs. |
184 | * pt.c (type_unification_real): Set processing_template_decl if | |
185 | saw_undeduced == 1. | |
186 | ||
3ef7ff1b | 187 | PR c++/84752 - ICE with capture of constexpr array. |
188 | * call.c (standard_conversion): Set rvaluedness_matches_p on the | |
189 | identity conversion under ck_lvalue. | |
190 | ||
641a7bca | 191 | 2018-03-09 Jason Merrill <jason@redhat.com> |
6a62aa42 | 192 | Paolo Carlini <paolo.carlini@oracle.com> |
193 | ||
194 | PR c++/71169 | |
195 | PR c++/71832 | |
196 | * pt.c (any_erroneous_template_args_p): New. | |
197 | * cp-tree.h (any_erroneous_template_args_p): Declare it. | |
198 | * parser.c (cp_parser_class_specifier_1): Use it. | |
199 | ||
80fdc40f | 200 | 2018-03-09 Jason Merrill <jason@redhat.com> |
201 | ||
202 | PR c++/84726 - unnecessary capture of constant vars. | |
203 | * cp-tree.h (LAMBDA_CAPTURE_EXPLICIT_P) | |
204 | (LAMBDA_EXPR_CAPTURE_OPTIMIZED): New. | |
205 | * expr.c (mark_use): Set LAMBDA_EXPR_CAPTURE_OPTIMIZED. | |
206 | * lambda.c (is_constant_capture_proxy) | |
207 | (current_lambda_expr, var_to_maybe_prune, mark_const_cap_r) | |
208 | (prune_lambda_captures): New. | |
209 | (finish_lambda_function): Call prune_lambda_captures. | |
210 | ||
533f67f1 | 211 | 2018-03-09 Jason Merrill <jason@redhat.com> |
212 | Jakub Jelinek <jakub@redhat.com> | |
213 | ||
214 | PR c++/84076 | |
215 | * call.c (convert_arg_to_ellipsis): Instead of cp_build_addr_expr | |
216 | build ADDR_EXPR with REFERENCE_TYPE. | |
217 | (build_over_call): For purposes of check_function_arguments, if | |
218 | argarray[j] is ADDR_EXPR with REFERENCE_TYPE created above, use | |
219 | its operand rather than the argument itself. | |
220 | ||
27e726cc | 221 | 2018-03-09 Jakub Jelinek <jakub@redhat.com> |
222 | ||
223 | PR c++/84724 | |
224 | * decl.c (duplicate_decls): Don't override __* prefixed builtins | |
225 | except for __[^b]*_chk, instead issue permerror and for -fpermissive | |
226 | also a note and return olddecl. | |
227 | ||
a0949cc9 | 228 | 2018-03-09 Nathan Sidwell <nathan@acm.org> |
229 | ||
230 | PR c++/84733 | |
231 | * name-lookup.c (do_pushdecl_with_scope): Only clear | |
232 | current_function_decl when pushing a non-class (i.e. namespace) | |
233 | scope. | |
234 | ||
ffd99ef2 | 235 | 2018-03-08 Jason Merrill <jason@redhat.com> |
236 | Jakub Jelinek <jakub@redhat.com> | |
237 | ||
238 | PR c++/80598 | |
239 | * call.c (build_over_call): In templates set TREE_USED (first_fn) when | |
240 | not calling mark_used for the benefit of -Wunused-function warning. | |
241 | ||
d0e2b7e7 | 242 | 2018-03-06 Jason Merrill <jason@redhat.com> |
243 | ||
244 | * lambda.c (is_capture_proxy_with_ref): Remove. | |
245 | * constexpr.c, expr.c, cp-tree.h, semantics.c: Adjust. | |
246 | ||
24d5b4f0 | 247 | 2018-03-06 Marek Polacek <polacek@redhat.com> |
248 | ||
249 | PR c++/84684 | |
250 | * constexpr.c (cxx_bind_parameters_in_call): Unshare evaluated | |
251 | arguments. | |
252 | ||
d5e30f01 | 253 | 2018-03-06 Alexandre Oliva <aoliva@redhat.com> |
254 | ||
11a93d7a | 255 | PR c++/84231 |
256 | * tree.c (lvalue_kind): Use presence/absence of REFERENCE_TYPE | |
257 | only while processing template decls. | |
258 | * typeck.c (build_x_conditional_expr): Move wrapping of | |
259 | reference type around type... | |
260 | * call.c (build_conditional_expr_1): ... here. Rename | |
261 | is_lvalue to is_glvalue. | |
262 | * parser.c (cp_parser_fold_expression): Catch REFERENCE_REF_P | |
263 | INDIRECT_REF of COND_EXPR too. | |
264 | ||
47608302 | 265 | PR c++/84593 |
266 | * init.c (build_zero_init_1): Zero-initialize references. | |
267 | ||
d5e30f01 | 268 | PR c++/84492 |
269 | * semantics.c (finish_stmt_expr_expr): Reject unresolved | |
270 | overloads used as stmt expr values. | |
271 | ||
fc25a333 | 272 | 2018-03-05 Jason Merrill <jason@redhat.com> |
273 | ||
274 | PR c++/84708 - ICE with lambda in local class NSDMI. | |
275 | * lambda.c (lambda_expr_this_capture): Handle local class NSDMI | |
276 | context. | |
277 | ||
c751e2cd | 278 | 2018-03-05 Jakub Jelinek <jakub@redhat.com> |
279 | ||
280 | PR c++/84684 | |
281 | * constexpr.c (constexpr_call_hasher::equal): Return false if | |
282 | lhs->hash != rhs->hash. Change return 1 to return true and | |
283 | return 0 to return false. | |
284 | ||
3917fefa | 285 | 2018-03-05 Nathan Sidwell <nathan@acm.org> |
286 | ||
287 | PR c++/84702 | |
288 | * pt.c (process_template_arg): Mark lookup_keep on a default arg. | |
289 | ||
f48ad2d0 | 290 | 2018-03-05 Marek Polacek <polacek@redhat.com> |
291 | ||
292 | PR c++/84707 | |
293 | * decl.c (duplicate_decls): Check DECL_NAME before accessing | |
294 | UDLIT_OPER_P. | |
295 | ||
f990cba0 | 296 | 2018-03-05 Nathan Sidwell <nathan@acm.org> |
297 | ||
298 | PR c++/84694 | |
299 | * friend.c (do_friend): Restore check for identifier_p inside | |
300 | TEMPLATE_ID_EXPR. | |
301 | ||
93fae4a1 | 302 | 2018-03-05 Paolo Carlini <paolo.carlini@oracle.com> |
303 | ||
304 | PR c++/84618 | |
305 | * parser.c (cp_parser_lambda_introducer): Reject any capture not | |
306 | involving a VAR_DECL or a PARM_DECL. | |
307 | ||
fcae3eb4 | 308 | 2018-03-05 Pádraig Brady <P@draigBrady.com> |
309 | Jason Merrill <jason@redhat.com> | |
310 | Nathan Sidwell <nathan@acm.org> | |
311 | ||
312 | PR c++/84497 | |
313 | * decl2.c (get_tls_init_fn): Check TYPE_HAS_TRIVIAL_DFLT too. | |
314 | ||
f4c5829e | 315 | 2018-03-03 Jason Merrill <jason@redhat.com> |
316 | ||
317 | PR c++/84686 - missing volatile loads. | |
318 | * cvt.c (convert_to_void): Call maybe_undo_parenthesized_ref. | |
319 | ||
c1585b9c | 320 | 2018-03-03 Paolo Carlini <paolo.carlini@oracle.com> |
321 | ||
322 | PR c++/71464 | |
323 | * optimize.c (maybe_thunk_body): Bail out immediately if either | |
324 | fns[0] or fns[1] is null. | |
325 | ||
51f0c7e2 | 326 | 2018-03-02 Marek Polacek <polacek@redhat.com> |
327 | ||
328 | PR c++/84578 | |
329 | * constexpr.c (get_array_or_vector_nelts): New. | |
330 | (cxx_eval_array_reference): Use it. | |
331 | (cxx_eval_vec_init_1): Likewise. | |
332 | (cxx_eval_store_expression): Likewise. | |
333 | ||
45fb03af | 334 | 2018-03-02 Jason Merrill <jason@redhat.com> |
335 | ||
336 | * semantics.c (force_paren_expr): Remove redundant test. | |
337 | ||
15a3655c | 338 | 2018-03-02 Marek Polacek <polacek@redhat.com> |
339 | ||
340 | PR c++/84663 | |
341 | * decl.c (cp_complete_array_type): Check error_mark_node. | |
342 | ||
624b4ae0 | 343 | PR c++/84664 |
344 | * typeck.c (cp_perform_integral_promotions): Check the result of | |
345 | mark_rvalue_use. | |
346 | ||
f096a90c | 347 | 2018-03-02 Jakub Jelinek <jakub@redhat.com> |
348 | ||
349 | PR c++/84662 | |
350 | * pt.c (tsubst_copy_and_build) <case TEMPLATE_ID_EXPR>: Use | |
351 | RETURN instead of return. | |
352 | <case POINTER_PLUS_EXPR>: Likewise. | |
353 | <case CONVERT_EXPR>: If op0 is error_mark_node, just return | |
354 | it instead of wrapping it into CONVERT_EXPR. | |
355 | ||
bd6f0014 | 356 | 2018-03-02 Jason Merrill <jason@redhat.com> |
357 | ||
358 | Fix MIPS16 ICE. | |
359 | * pt.c (type_dependent_expression_p): Check DECL_LANG_SPECIFIC. | |
360 | ||
5f9e77dd | 361 | 2018-03-02 Marek Polacek <polacek@redhat.com> |
362 | ||
363 | PR c++/84590 | |
364 | * cp-gimplify.c (cp_fully_fold): Unwrap TARGET_EXPR or a CONSTRUCTOR | |
365 | wrapped in VIEW_CONVERT_EXPR. | |
366 | ||
c973012d | 367 | 2018-03-01 Martin Sebor <msebor@redhat.com> |
368 | ||
369 | PR c++/84294 | |
370 | * decl.c (check_redeclaration_no_default_args): Merge attributes | |
371 | specified on redeclarations of the same function template. | |
372 | Remove dead code. | |
373 | ||
7dffa847 | 374 | 2018-03-01 Marek Polacek <polacek@redhat.com> |
375 | Jason Merrill <jason@redhat.com> | |
376 | ||
377 | PR c++/84582 | |
378 | * semantics.c (force_paren_expr): Create a PAREN_EXPR when in | |
379 | a template. | |
380 | (maybe_undo_parenthesized_ref): Unwrap PAREN_EXPR. | |
381 | * typeck2.c (store_init_value): Call fold_non_dependent_expr instead | |
382 | of instantiate_non_dependent_expr. | |
383 | * tree.c (lvalue_kind): Handle PAREN_EXPR like NON_DEPENDENT_EXPR. | |
384 | ||
7ebb6d0e | 385 | 2018-03-01 Nathan Sidwell <nathan@acm.org> |
386 | ||
387 | PR c++/84434 | |
388 | * name-lookup.c (member_vec_dedup): Remove manually peeled | |
389 | iteration. Ignore dependent ctor inheritance. | |
390 | ||
7e178fa3 | 391 | 2018-03-01 Jason Merrill <jason@redhat.com> |
392 | ||
393 | PR c++/71569 - decltype of template. | |
394 | * parser.c (cp_parser_decltype_expr): Handle missing template args. | |
395 | ||
786721dc | 396 | 2018-03-01 Marek Polacek <polacek@redhat.com> |
397 | ||
398 | PR c++/84596 | |
399 | * constexpr.c (require_rvalue_constant_expression): New function. | |
400 | * cp-tree.h: Declare it. | |
401 | * semantics.c (finish_static_assert): Use it instead of | |
402 | require_potential_rvalue_constant_expression. | |
403 | ||
45403176 | 404 | 2018-03-01 Jason Merrill <jason@redhat.com> |
405 | Alexandre Oliva <aoliva@redhat.com> | |
406 | ||
407 | PR c++/71569 - ICE with redundant args on member variable template. | |
408 | * decl.c (start_decl): Handle partial specialization of member | |
409 | variable template. | |
410 | * pt.c (determine_specialization): Allow partial specialization | |
411 | of member variable template without specializing enclosing class. | |
412 | (process_partial_specialization): Improve error message. | |
413 | ||
ef8d0c5b | 414 | 2018-02-28 Jason Merrill <jason@redhat.com> |
415 | ||
416 | PR c++/71784 - ICE with ref-qualifier and explicit specialization. | |
417 | * pt.c (determine_specialization): Check ref-qualifier. | |
418 | ||
bcf587f0 | 419 | 2018-02-28 Jakub Jelinek <jakub@redhat.com> |
420 | ||
b8cfdc96 | 421 | PR c++/84609 |
422 | * parser.c (cp_parser_attributes_opt): Formatting fix. | |
423 | (cp_parser_skip_balanced_tokens, cp_parser_skip_gnu_attributes_opt, | |
424 | cp_parser_skip_std_attribute_spec_seq, cp_parser_skip_attributes_opt): | |
425 | New functions. | |
426 | (cp_parser_member_declaration): Use cp_parser_skip_attributes_opt | |
427 | instead of tentative parse to peek over optional attribute tokens | |
428 | to check for CPP_COLON after them. | |
429 | ||
bcf587f0 | 430 | PR c++/83871 |
431 | PR c++/83503 | |
432 | * pt.c (INCLUDE_STRING): Remove define. | |
433 | (warn_spec_missing_attributes): Use pretty_printer instead of | |
434 | std::string. Fix up inform call so that the list of attributes | |
435 | is in %s argument. | |
436 | ||
3e124ed1 | 437 | 2018-02-28 Martin Sebor <msebor@redhat.com> |
438 | ||
439 | PR testsuite/84617 | |
440 | * decl.c (duplicate_decls): Fully merge attributes const, pure, | |
441 | and malloc. | |
442 | ||
3d78c7ae | 443 | 2018-02-28 Nathan Sidwell <nathan@acm.org> |
444 | ||
445 | PR c++/84602 | |
446 | * name-lookup.h (search_anon_aggr): Add defaulted WANT_TYPE arg. | |
447 | * name-lookup.c (fields_linear_search): Look in an anon-aggr | |
448 | regardless of want_type. | |
449 | (search_anon_aggr): Just use get_class_binding_direct. | |
450 | ||
e090753c | 451 | 2018-02-28 Jakub Jelinek <jakub@redhat.com> |
452 | ||
453 | * decl.c (cp_finish_decomp): Don't adjust eltscnt when calling | |
454 | inform_n. | |
455 | ||
0d0f3aca | 456 | 2018-02-27 Martin Sebor <msebor@redhat.com> |
457 | ||
458 | * pt.c: Avoid including <string> directly. | |
459 | ||
77628407 | 460 | 2018-02-27 Martin Sebor <msebor@redhat.com> |
461 | ||
462 | PR c++/83871 | |
463 | PR c++/83503 | |
464 | * cp-tree.h (warn_spec_missing_attributes): New function. | |
465 | ((check_explicit_specialization): Add an argument. Call the above | |
466 | function. | |
467 | * decl.c (duplicate_decls): Avoid applying primary function template's | |
468 | attributes to its explicit specializations. | |
469 | cp/pt.c (warn_spec_missing_attributes): Define. | |
470 | ||
5876201b | 471 | 2018-02-27 HÃ¥kon Sandsmark <hsandsmark@gmail.com> |
472 | ||
473 | PR c++/71546 - lambda init-capture with qualified-id. | |
474 | * parser.c (cp_parser_lambda_introducer): Clear scope after | |
475 | each lambda capture. | |
476 | ||
6e6ee7a0 | 477 | 2018-02-27 Nathan Sidwell <nathan@acm.org> |
478 | ||
479 | PR c++/84426 | |
480 | * name-lookup.h (get_member_slot): Rename ... | |
481 | (find_member_slot): ... here. | |
482 | (add_member_slot): New. | |
483 | * name-lookup.c (member_vec_linear_search): No need to check for | |
484 | NULL slot. | |
485 | (get_member_slot): Rename ... | |
486 | (find_member_slot): ... here. Don't add slot for incomplete class. | |
487 | (add_member_slot): New. | |
488 | * class.c (add_method): Adjust get_member_slot rename. Bail out | |
489 | if push_class_level_binding fails. Create slot and grok | |
490 | properties once we're committed to insertion. | |
491 | ||
6ba0e3e2 | 492 | 2018-02-27 Jason Merrill <jason@redhat.com> |
493 | ||
494 | PR c++/84489 - dependent default template argument | |
495 | * pt.c (type_unification_real): Handle early substitution failure. | |
496 | ||
fdafeeb7 | 497 | 2018-02-26 Jason Merrill <jason@redhat.com> |
498 | ||
bb85f261 | 499 | PR c++/84560 - ICE capturing multi-dimensional VLA. |
500 | * tree.c (array_of_runtime_bound_p): False if the element is | |
501 | variably-modified. | |
502 | ||
f52b11fe | 503 | PR c++/84441 - ICE with base initialized from ?: |
504 | * call.c (unsafe_copy_elision_p): Handle COND_EXPR. | |
505 | ||
9960ad27 | 506 | PR c++/84520 - ICE with generic lambda in NSDMI. |
507 | * lambda.c (lambda_expr_this_capture): Don't look for fake NSDMI | |
508 | 'this' in a generic lambda instantiation. | |
509 | ||
fdafeeb7 | 510 | PR c++/84559 - ICE with constexpr VLA. |
511 | * constexpr.c (ensure_literal_type_for_constexpr_object): Check | |
512 | for constexpr variable with VLA type. | |
513 | ||
eb7c25cc | 514 | 2018-02-26 Jakub Jelinek <jakub@redhat.com> |
515 | ||
516 | PR c++/84558 | |
517 | * constexpr.c (cxx_eval_vec_init_1): For reuse, treat NULL eltinit like | |
518 | a valid constant initializer. Formatting fixes. | |
519 | ||
4273f1a9 | 520 | 2018-02-26 Paolo Carlini <paolo.carlini@oracle.com> |
521 | ||
522 | PR c++/84540 | |
523 | * pt.c (tsubst_attributes): Handle correctly tsubst_attribute | |
524 | returning NULL_TREE. | |
525 | (apply_late_template_attributes): Likewise. | |
526 | ||
e6a3ce8a | 527 | 2018-02-26 Jakub Jelinek <jakub@redhat.com> |
528 | ||
529 | PR c++/84557 | |
530 | * parser.c (cp_parser_omp_var_list_no_open): Only call | |
531 | cp_parser_lookup_name_simple on names satisfying identifier_p. | |
532 | (cp_parser_oacc_routine): Likewise. | |
533 | ||
372c2d93 | 534 | 2018-02-26 Jason Merrill <jason@redhat.com> |
535 | ||
536 | PR c++/84551 - ICE with concepts and -g. | |
537 | * parser.c (add_debug_begin_stmt): Do nothing in a concept. | |
538 | ||
033f482d | 539 | 2018-02-26 Marek Polacek <polacek@redhat.com> |
540 | ||
541 | PR c++/84325 | |
542 | * tree.c (replace_placeholders_r): Only check TREE_CONSTANT on | |
543 | non-types. | |
544 | ||
417a5ba0 | 545 | 2018-02-26 Jason Merrill <jason@redhat.com> |
546 | ||
547 | PR c++/84447 - ICE with deleted inherited ctor with default arg. | |
548 | * call.c (build_over_call): Handle deleted functions in one place. | |
549 | ||
9ee1c5dd | 550 | 2018-02-26 Paolo Carlini <paolo.carlini@oracle.com> |
551 | ||
552 | PR c++/84533 | |
553 | * decl.c (redeclaration_error_message): Don't try to use | |
554 | DECL_DECLARED_CONSTEXPR_P on CONST_DECLs. | |
555 | ||
67ad87d3 | 556 | 2018-02-26 Paolo Carlini <paolo.carlini@oracle.com> |
557 | ||
558 | * lambda.c (build_capture_proxy): Define static. | |
559 | * cp-tree.h (build_capture_proxy): Remove. | |
560 | ||
490f6696 | 561 | 2018-02-26 Marek Polacek <polacek@redhat.com> |
562 | ||
563 | PR c++/84537 | |
564 | * name-lookup.c (suggest_alternative_in_explicit_scope): Return false | |
565 | if name is error node. | |
566 | ||
ea59dcc9 | 567 | 2018-02-25 Jason Merrill <jason@redhat.com> |
568 | ||
569 | PR c++/84015 - ICE with class deduction and auto template parm. | |
570 | * pt.c (rewrite_template_parm): Use tf_partial in first tsubst. | |
571 | ||
0c703e14 | 572 | 2018-02-24 Marek Polacek <polacek@redhat.com> |
573 | ||
574 | PR c++/83692 | |
575 | * constexpr.c (maybe_constant_init_1): New function. | |
576 | (maybe_constant_init): Make it a wrapper around maybe_constant_init_1. | |
577 | (cxx_constant_init): New function. | |
578 | * cp-tree.h (cxx_constant_init): Declare. | |
579 | * typeck2.c (store_init_value): Call cxx_constant_init instead of | |
580 | cxx_constant_value. Move the maybe_constant_init call under an 'else'. | |
581 | ||
9d351e63 | 582 | 2018-02-22 Jason Merrill <jason@redhat.com> |
583 | ||
584 | PR c++/70468 - ICE with constructor delegation via typedef. | |
585 | * pt.c (tsubst_initializer_list): Check for other mem-initializers | |
586 | with constructor delegation. | |
587 | ||
c4210852 | 588 | 2018-02-22 Jason Merrill <jason@redhat.com> |
589 | ||
590 | PR c++/84424 - ICE with constexpr and __builtin_shuffle. | |
591 | * constexpr.c (reduced_constant_expression_p): Handle CONSTRUCTOR of | |
592 | VECTOR_TYPE. | |
593 | ||
276194f4 | 594 | 2018-02-22 Marek Polacek <polacek@redhat.com> |
595 | ||
596 | PR c++/84493 | |
597 | * parser.c (cp_parser_braced_list): Use require_open instead of | |
598 | consume_open. | |
599 | ||
7436dc40 | 600 | 2018-02-21 Jason Merrill <jason@redhat.com> |
601 | ||
602 | PR c++/84454 - ICE with pack expansion in signature. | |
603 | * error.c (find_typenames_r): Also stop on EXPR_PACK_EXPANSION. | |
604 | ||
68f67eac | 605 | 2018-02-20 Siddhesh Poyarekar <siddhesh@sourceware.org> |
606 | ||
607 | * cp-objcp-common.c (cxx_block_may_fallthru): Add case for | |
608 | IF_STMT. | |
609 | ||
120a74e2 | 610 | 2018-02-20 Paolo Carlini <paolo.carlini@oracle.com> |
611 | ||
612 | PR c++/84446 | |
613 | * parser.c (cp_parser_init_declarator): Don't call start_lambda_scope | |
614 | on error_mark_node. | |
615 | ||
16335c27 | 616 | 2018-02-20 Jakub Jelinek <jakub@redhat.com> |
617 | ||
75436625 | 618 | PR c++/84445 |
619 | * class.c (fixed_type_or_null) <case CALL_EXPR>: Only test | |
620 | TREE_HAS_CONSTRUCTOR if instance is not an internal function call. | |
621 | ||
e6df3205 | 622 | PR c++/84449 |
623 | * tree.c (bot_manip): If build_cplus_new or break_out_target_exprs | |
624 | returns error_mark_node, return it immediately. | |
625 | (break_out_target_exprs): If cp_walk_tree with bot_manip returns | |
626 | error_mark_node, return error_mark_node. | |
627 | ||
16335c27 | 628 | PR c++/84455 |
629 | * pt.c (tsubst_lambda_expr): If not nested, increment temporarily | |
630 | function_depth to avoid GC during finish_lambda_function. | |
631 | ||
e86f32c0 | 632 | 2018-02-19 Jason Merrill <jason@redhat.com> |
633 | ||
634 | PR c++/84429 - ICE capturing VLA. | |
635 | * lambda.c (build_capture_proxy): Handle reference refs. | |
636 | ||
83728168 | 637 | 2018-02-19 Jakub Jelinek <jakub@redhat.com> |
638 | ||
d3b46eb8 | 639 | PR c++/84448 |
640 | * parser.c (cp_parser_binary_expression): For no_toplevel_fold_p, if | |
641 | either operand is error_mark_node, set current.lhs to that instead of | |
642 | creating a binary op with error_mark_node operands. | |
643 | ||
83728168 | 644 | PR c++/84430 |
645 | * constexpr.c (potential_constant_expression_1): Handle OMP_SIMD. | |
646 | ||
0c0fac86 | 647 | 2018-02-19 Paolo Carlini <paolo.carlini@oracle.com> |
648 | ||
649 | PR c++/84348 | |
650 | * decl.c (grokdeclarator): Early return error_mark_node upon | |
651 | ill-formed friend declaration. | |
652 | ||
2c572f5f | 653 | 2018-02-16 Marek Polacek <polacek@redhat.com> |
654 | Jakub Jelinek <jakub@redhat.com> | |
655 | ||
656 | PR c++/84192 | |
657 | * constexpr.c (cxx_eval_constant_expression) <case RETURN_EXPR>: Don't | |
658 | set *jump_target to anything if jump_target is NULL. | |
659 | ||
5557e6c9 | 660 | 2018-02-16 Jason Merrill <jason@redhat.com> |
661 | ||
63cb1fa2 | 662 | PR c++/84151 - unnecessary volatile load with static member. |
663 | * call.c (build_new_method_call_1): Avoid loading from a volatile | |
664 | lvalue used as the object argument for a static member function. | |
665 | ||
7285637a | 666 | PR c++/81853 - using-directive and constexpr. |
667 | * constexpr.c (cxx_eval_constant_expression): Handle USING_STMT. | |
668 | ||
c2f14a91 | 669 | PR c++/84420 - ICE with structured binding in lambda. |
670 | * lambda.c (is_capture_proxy): Check DECL_DECOMPOSITION_P. | |
671 | ||
525ca7cc | 672 | PR c++/83835 - C++17 error with constructor ctors. |
673 | * call.c (build_special_member_call): Set TARGET_EXPR_DIRECT_INIT_P. | |
674 | ||
d3bed086 | 675 | PR c++/82664 - ICE with reference to function template parm. |
676 | * pt.c (convert_nontype_argument_function): Avoid obfuscationg | |
677 | NOP_EXPRs. | |
678 | ||
5557e6c9 | 679 | PR c++/82764 - C++17 ICE with empty base |
680 | * class.c (build_base_field_1): Set DECL_SIZE to zero for empty base. | |
681 | ||
d6eb1d5d | 682 | 2018-02-16 Jason Merrill <jason@redhat.com> |
683 | ||
684 | PR c++/84421 - type-dependent if constexpr | |
685 | * semantics.c (finish_if_stmt_cond): Check type_dependent_expression_p. | |
686 | ||
5d4ea37d | 687 | 2018-02-16 Nathan Sidwell <nathan@acm.org> |
688 | ||
689 | Deprecate -ffriend-injection. | |
690 | * decl.c (cxx_init_decl_processing): Emit warning on option. | |
691 | * name-lookup.c (do_pushdecl): Emit warning if we push a visible | |
692 | friend. | |
693 | ||
1a60f00e | 694 | 2018-02-16 Paolo Carlini <paolo.carlini@oracle.com> |
695 | ||
696 | PR c++/82468 | |
697 | * decl.c (check_special_function_return_type): Reject template | |
698 | template parameter in deduction guide. | |
699 | ||
2aa07fb2 | 700 | 2018-02-16 Nathan Sidwell <nathan@acm.org> |
701 | ||
702 | PR c++/84375 | |
703 | * name-lookup.c (do_pushdecl): Bail out on bad local friend injection. | |
704 | ||
993c1df1 | 705 | 2018-02-15 Jason Merrill <jason@redhat.com> |
706 | ||
7238ae96 | 707 | PR c++/83227 - C++17 ICE with init-list derived-to-base conversion. |
708 | * call.c (convert_like_real): Don't use the copy-list-initialization | |
709 | shortcut for ck_base. | |
710 | ||
acc45438 | 711 | PR c++/84045 - ICE with typedef and noexcept. |
712 | * except.c (build_noexcept_spec): Use strip_typedefs_expr. | |
713 | ||
f9889f15 | 714 | PR c++/84376 - ICE with omitted template arguments. |
715 | * pt.c (dguide_name_p): Check for IDENTIFIER_NODE. | |
716 | ||
993c1df1 | 717 | PR c++/84368 - wrong error with local variable in variadic lambda. |
718 | * pt.c (tsubst_pack_expansion): Fix handling of non-packs in | |
719 | local_specializations. | |
720 | ||
8cacebc2 | 721 | 2018-02-15 Paolo Carlini <paolo.carlini@oracle.com> |
722 | ||
723 | PR c++/84330 | |
724 | * constraint.cc (tsubst_constraint_info): Handle an error_mark_node | |
725 | as first argument. | |
726 | ||
6a5545d9 | 727 | 2018-02-14 Paolo Carlini <paolo.carlini@oracle.com> |
728 | ||
729 | PR c++/84350 | |
730 | * pt.c (do_auto_deduction): Don't check the TREE_TYPE of a null | |
731 | init, early return. | |
732 | ||
e2f46fbf | 733 | 2018-02-14 Nathan Sidwell <nathan@acm.org> |
734 | ||
735 | * decl2.c (mark_vtable_entries): Set input_location to decl's. | |
736 | (c_parse_final_cleanups): Restore input_location after emitting | |
737 | vtables. | |
738 | ||
0b5cd8c1 | 739 | 2018-02-14 Paolo Carlini <paolo.carlini@oracle.com> |
740 | ||
741 | * cp-tree.h (do_auto_deduction (tree, tree, tree)): Remove. | |
742 | (do_auto_deduction (tree, tree, tree, tsubst_flags_t, | |
743 | auto_deduction_context, tree, int): Add defaults. | |
744 | * pt.c (do_auto_deduction (tree, tree, tree)): Remove definition. | |
745 | (tsubst_omp_for_iterator): Adjust do_auto_deduction call, forward | |
746 | tsubst_flags_t argument. | |
747 | * init.c (build_new): Likewise. | |
748 | ||
b868e155 | 749 | 2018-02-13 Jakub Jelinek <jakub@redhat.com> |
750 | ||
751 | PR c++/84364 | |
752 | * typeck.c (check_return_expr): Don't emit -Weffc++ warning | |
753 | about return other than *this in assignment operators if | |
754 | retval is type dependent expression. | |
755 | ||
08de4af3 | 756 | 2018-02-13 Paolo Carlini <paolo.carlini@oracle.com> |
757 | ||
758 | PR c++/84333 | |
759 | * call.c (build_conditional_expr_1): Use cp_save_expr instead of | |
760 | save_expr for the G++ extension. | |
761 | ||
1108bdc1 | 762 | 2018-02-13 Jason Merrill <jason@redhat.com> |
763 | ||
02f2ef5e | 764 | PR c++/84080 - ICE with return type deduction and specialization. |
765 | * pt.c (determine_specialization): Check uses_template_parms. | |
766 | ||
a5283f32 | 767 | Fix more variadic capture issues. |
768 | * pt.c (find_parameter_packs_r): Also look at explicit captures. | |
769 | (check_for_bare_parameter_packs): Check current_class_type for | |
770 | lambda context. | |
771 | (extract_locals_r): Handle seeing a full instantiation of a pack. | |
772 | (tsubst_pack_expansion): Likewise. Force lambda capture. | |
773 | * parser.c (cp_parser_lambda_introducer): Don't | |
774 | check_for_bare_parameter_packs. | |
775 | ||
1108bdc1 | 776 | PR c++/84338 - wrong variadic sizeof. |
777 | * pt.c (argument_pack_select_arg): Like the macro, but look through | |
778 | a pack expansion. | |
779 | (tsubst, tsubst_copy, dependent_template_arg_p): Use it. | |
780 | (extract_fnparm_pack): Do make_pack_expansion. | |
781 | (extract_locals_r): Do strip a pack expansion. | |
782 | * cp-tree.h (ARGUMENT_PACK_SELECT_ARG): Remove. | |
783 | ||
4aa81625 | 784 | 2018-02-12 Jakub Jelinek <jakub@redhat.com> |
785 | ||
786 | PR c++/84341 | |
787 | * parser.c (cp_parser_binary_expression): Use build_min instead of | |
788 | build2_loc to build the no_toplevel_fold_p toplevel binary expression. | |
789 | ||
8359fa53 | 790 | 2018-02-12 Nathan Sidwell <nathan@acm.org> |
791 | ||
792 | PR c++/84263 | |
793 | * parser.c (cp_parser_decltype): Push and pop | |
794 | deferring_access_checks. Reorganize to avoid goto. | |
795 | ||
228a2cd8 | 796 | 2018-02-12 Richard Biener <rguenther@suse.de> |
797 | ||
798 | PR c++/84281 | |
799 | * constexpr.c (cxx_eval_vec_init_1): Use a RANGE_EXPR to compact | |
800 | uniform constructors and delay allocating them fully. | |
801 | ||
b448c6f3 | 802 | 2018-02-09 Jason Merrill <jason@redhat.com> |
803 | ||
804 | PR c++/84036 - ICE with variadic capture. | |
805 | Handle variadic capture proxies more like non-variadic. | |
806 | * lambda.c (build_capture_proxy): Remove workaround. | |
807 | * pt.c (find_parameter_packs_r): The proxy is a pack. | |
808 | (instantiate_class_template_1): Remove dead lambda code. | |
809 | (extract_fnparm_pack): Don't make_pack_expansion. | |
810 | (extract_locals_r): Don't strip a pack expansion. | |
811 | (tsubst_pack_expansion): Handle proxy packs. Use | |
812 | PACK_EXPANSION_EXTRA_ARGS less. | |
813 | (tsubst_decl) [FIELD_DECL]: Don't register_specialization. | |
814 | (tsubst_copy) [FIELD_DECL]: Don't retrieve*_specialization. | |
815 | [VAR_DECL]: Handle ARGUMENT_PACK_SELECT. | |
816 | (tsubst_expr) [DECL_EXPR]: Handle proxy packs. | |
817 | (tsubst_copy_and_build) [VAR_DECL]: Handle proxy packs normally. | |
818 | ||
2918f4e9 | 819 | 2018-02-10 Jakub Jelinek <jakub@redhat.com> |
820 | ||
821 | PR sanitizer/83987 | |
822 | * tree.c (cp_free_lang_data): Revert 2018-01-23 change. | |
823 | ||
f3558be0 | 824 | 2018-02-09 Jason Merrill <jason@redhat.com> |
825 | ||
826 | PR c++/81917 - ICE with void_t and partial specialization. | |
827 | * pt.c (instantiate_class_template_1): Set TYPE_BEING_DEFINED before | |
828 | calling most_specialized_partial_spec. | |
829 | ||
d9757bb6 | 830 | 2018-02-09 Nathan Sidwell <nathan@acm.org> |
831 | ||
832 | PR c/84293 | |
833 | * typeck.c (cp_build_indirect_ref_1, build_reinterpret_cast_1): | |
834 | Pass expr location to strict_aliasing_warning. | |
835 | ||
2c92f3e3 | 836 | 2018-02-09 Jason Merrill <jason@redhat.com> |
837 | ||
838 | PR c++/84296 - ICE with qualified-id in template. | |
839 | PR c++/83714 | |
840 | * pt.c (unknown_base_ref_p): New. | |
841 | (instantiation_dependent_scope_ref_p): Use it instead of | |
842 | any_dependent_bases_p. | |
843 | ||
7d8e655d | 844 | 2018-02-09 Marek Polacek <polacek@redhat.com> |
845 | Jakub Jelinek <jakub@redhat.com> | |
846 | ||
847 | PR c++/83659 | |
848 | * constexpr.c (cxx_fold_indirect_ref): Sync some changes from | |
849 | fold_indirect_ref_1, including poly_*int64. Verify first that | |
850 | tree_fits_poly_int64_p (op01). Formatting fixes. | |
851 | ||
7ab20d7c | 852 | 2018-02-08 Paolo Carlini <paolo.carlini@oracle.com> |
853 | ||
854 | * constexpr.c (cxx_eval_component_reference): Use INDIRECT_REF_P. | |
855 | * lambda.c (build_capture_proxy): Likewise. | |
856 | * search.c (field_access_p): Likewise. | |
857 | * semantics.c (omp_clause_decl, omp_privatize_field, | |
858 | finish_omp_clauses): Likewise. | |
859 | ||
de6c153d | 860 | 2018-02-08 Paolo Carlini <paolo.carlini@oracle.com> |
861 | ||
862 | PR c++/83806 | |
863 | * typeck.c (decay_conversion): Use mark_rvalue_use for the special | |
864 | case of nullptr too. | |
865 | ||
b1be555e | 866 | 2018-02-08 Nathan Sidwell <nathan@acm.org> |
867 | ||
868 | * class.c (finish_struct): Fix std:initializer_list diagnostic | |
869 | formatting. | |
870 | ||
496b0d76 | 871 | 2018-02-08 Paolo Carlini <paolo.carlini@oracle.com> |
872 | ||
873 | PR c++/83204 | |
874 | * pt.c (tsubst_copy_and_build): Use force_paren_expr for INDIRECT_REF. | |
875 | ||
5b444188 | 876 | 2018-02-07 Jakub Jelinek <jakub@redhat.com> |
877 | ||
878 | PR c++/84082 | |
879 | * parser.c (cp_parser_dot_deref_incomplete): New function. | |
880 | (cp_parser_postfix_dot_deref_expression): Use it. | |
881 | ||
f2faade6 | 882 | 2018-02-07 David Malcolm <dmalcolm@redhat.com> |
883 | ||
884 | PR c++/81610 | |
885 | PR c++/80567 | |
886 | * name-lookup.c (suggest_rid_p): New function. | |
887 | (lookup_name_fuzzy): Replace enum-rid-filtering logic with call to | |
888 | suggest_rid_p. | |
889 | ||
81e7dc36 | 890 | 2018-02-07 Jason Merrill <jason@redhat.com> |
891 | ||
892 | PR c++/84182 - ICE with captured lambda | |
893 | PR c++/84181 | |
894 | * pt.c (extract_locals_r, extract_local_specs): New. | |
895 | (tsubst_pack_expansion): Use them. | |
896 | ||
490319f0 | 897 | 2018-02-07 Martin Liska <mliska@suse.cz> |
898 | ||
899 | PR c++/84059. | |
900 | * class.c (add_method): Append argument value. | |
901 | * cp-tree.h (maybe_version_functions): Add new argument. | |
902 | * decl.c (decls_match): Call it if a declaration does not | |
903 | have DECL_FUNCTION_VERSIONED. | |
904 | (maybe_version_functions): record argument is added. | |
905 | ||
a9a9828b | 906 | 2018-02-05 Marek Polacek <polacek@redhat.com> |
907 | ||
908 | * class.c: Remove unused global variables. | |
909 | (build_primary_vtable): Don't gather statistics. | |
910 | (print_class_statistics): Remove. | |
911 | * cp-tree.h (print_class_statistics): Remove. | |
912 | * tree.c (cxx_print_statistics): Don't call print_class_statistics. | |
913 | ||
3cde3c29 | 914 | 2018-02-02 Paolo Carlini <paolo.carlini@oracle.com> |
915 | ||
916 | * class.c (is_really_empty_class): Use DECL_UNNAMED_BIT_FIELD. | |
917 | * constexpr.c (cx_check_missing_mem_inits): Likewise. | |
918 | * decl.c (next_initializable_field, find_decomp_class_base, | |
919 | cp_finish_decomp): Likewise. | |
920 | * typeck2.c (process_init_constructor_record): Likewise. | |
921 | ||
84be7246 | 922 | 2018-02-02 Jason Merrill <jason@redhat.com> |
923 | ||
924 | PR c++/84181 - ICE with lambda parm in template argument. | |
925 | * tree.c (strip_typedefs_expr): Use cp_tree_operand_length. | |
926 | ||
ba23f9fb | 927 | 2018-02-01 Jason Merrill <jason@redhat.com> |
928 | ||
929 | PR c++/84160 - ICE with nested variadic capture. | |
930 | * lambda.c (is_capture_proxy_with_ref): New. | |
931 | (insert_capture_proxy): Don't set DECL_CAPTURED_VARIABLE from a | |
932 | COMPONENT_REF. | |
933 | * expr.c (mark_use): Use is_capture_proxy_with_ref. | |
934 | * constexpr.c (potential_constant_expression_1): Likewise. | |
935 | * semantics.c (process_outer_var_ref): Likewise. | |
936 | ||
d835b8fe | 937 | 2018-02-01 Marek Polacek <polacek@redhat.com> |
938 | ||
939 | PR c++/84125 | |
940 | * typeck.c (build_address): Relax the assert when | |
941 | processing_template_decl. | |
942 | ||
ea6ef4c4 | 943 | 2018-02-01 Jason Merrill <jason@redhat.com> |
944 | ||
945 | PR c++/84126 - ICE with variadic generic lambda | |
946 | PR c++/84036 | |
947 | PR c++/82249 | |
948 | * pt.c (tsubst_pack_expansion): Handle function parameter_packs in | |
949 | PACK_EXPANSION_EXTRA_ARGS. | |
950 | ||
22db75d7 | 951 | 2018-02-01 Paolo Carlini <paolo.carlini@oracle.com> |
952 | ||
953 | PR c++/83796 | |
954 | * call.c (convert_like_real): If w're initializing from {} explicitly | |
955 | call abstract_virtuals_error_sfinae. | |
956 | ||
1d29f4ea | 957 | 2018-01-31 Jason Merrill <jason@redhat.com> |
958 | Jakub Jelinek <jakub@redhat.com> | |
959 | ||
960 | PR c++/83993 | |
961 | * constexpr.c (cxx_eval_outermost_constant_expr): Build NOP_EXPR | |
962 | around non-constant ADDR_EXPRs rather than clearing TREE_CONSTANT | |
963 | on ADDR_EXPR. | |
964 | ||
d7d265db | 965 | 2018-01-31 Jakub Jelinek <jakub@redhat.com> |
966 | ||
967 | PR c++/83993 | |
968 | * constexpr.c (diag_array_subscript): Emit different diagnostics | |
969 | if TYPE_DOMAIN (arraytype) is NULL. | |
970 | (cxx_eval_array_reference, cxx_eval_store_expression): For arrays | |
971 | with NULL TYPE_DOMAIN use size_zero_node as nelts. | |
972 | ||
67e6b237 | 973 | 2018-01-31 Paolo Carlini <paolo.carlini@oracle.com> |
974 | ||
975 | PR c++/84092 | |
976 | * semantics.c (finish_qualified_id_expr): When handling an | |
977 | UNBOUND_CLASS_TEMPLATE only adjust qualifying_class and expr. | |
978 | ||
6fa371d1 | 979 | 2018-01-31 Marek Polacek <polacek@redhat.com> |
980 | ||
981 | PR c++/84138 | |
982 | * cp-gimplify.c (cp_fold): Check if X is an error node before | |
983 | calling useless_type_conversion_p. | |
984 | ||
28d07b9a | 985 | 2018-01-30 Jason Merrill <jason@redhat.com> |
986 | ||
99c72a58 | 987 | PR c++/84091 - ICE with local class in lambda in template. |
988 | * decl2.c (determine_visibility): Look for outer containing template | |
989 | instantiation. | |
990 | ||
28d07b9a | 991 | PR c++/84098 - ICE with lambda in template NSDMI. |
992 | * pt.c (instantiate_class_template_1): Ignore more lambdas. | |
993 | ||
81cc7d9c | 994 | 2018-01-29 Jason Merrill <jason@redhat.com> |
995 | ||
996 | PR c++/68810 - wrong location for reinterpret_cast error. | |
997 | * cvt.c (cp_convert_to_pointer): Always build a CONVERT_EXPR when | |
998 | !dofold. | |
999 | ||
53fa96c0 | 1000 | 2018-01-29 Marek Polacek <polacek@redhat.com> |
1001 | ||
1002 | PR c++/83996 | |
1003 | * constexpr.c (cxx_fold_indirect_ref): Compute ((foo *)&fooarray)[1] | |
1004 | => fooarray[1] in offset_int. | |
1005 | ||
f3d71480 | 1006 | 2018-01-29 Jason Merrill <jason@redhat.com> |
1007 | ||
1008 | PR c++/83942 - wrong unused warning with static_cast. | |
1009 | * cvt.c (ocp_convert): Call mark_rvalue_use. | |
1010 | ||
fa01d4a5 | 1011 | 2018-01-26 Jason Merrill <jason@redhat.com> |
1012 | ||
9bf918f3 | 1013 | PR c++/83956 - wrong dtor error with anonymous union |
1014 | * method.c (walk_field_subobs): Variant members only affect | |
1015 | deletedness. | |
1016 | (maybe_explain_implicit_delete): Pass &deleted_p for diagnostic. | |
1017 | ||
86dc258c | 1018 | PR c++/84036 - ICE with variadic capture. |
1019 | PR c++/82249 | |
1020 | * pt.c (tsubst_pack_expansion): When optimizing a simple | |
1021 | substitution, pull a single pack expansion out of its pack. | |
1022 | ||
fa01d4a5 | 1023 | PR c++/82514 - ICE with local class in generic lambda. |
1024 | * pt.c (regenerated_lambda_fn_p): Remove. | |
1025 | (enclosing_instantiation_of): Don't use it. | |
1026 | (tsubst_function_decl): Call enclosing_instantiation_of. | |
1027 | ||
1028 | * pt.c (lookup_template_class_1): Add sanity check. | |
1029 | * name-lookup.c (do_pushtag): Don't add closures to local_classes. | |
1030 | ||
ff0c900f | 1031 | 2018-01-25 Jakub Jelinek <jakub@redhat.com> |
1032 | ||
1033 | PR c++/84031 | |
1034 | * decl.c (find_decomp_class_base): Ignore unnamed bitfields. Ignore | |
1035 | recursive calls that return ret. | |
1036 | (cp_finish_decomp): Ignore unnamed bitfields. | |
1037 | ||
2100de53 | 1038 | 2018-01-23 Jason Merrill <jason@redhat.com> |
1039 | ||
1040 | PR c++/82249 - wrong mismatched pack length error. | |
1041 | * pt.c (extract_fnparm_pack, tsubst_pack_expansion): Handle | |
1042 | unsubstituted function parameter pack. | |
1043 | ||
282ea908 | 1044 | 2018-01-23 Paolo Carlini <paolo.carlini@oracle.com> |
1045 | ||
1046 | PR c++/83921 | |
1047 | * decl.c (check_for_uninitialized_const_var): Not static; add | |
1048 | bool and tsubst_flags_t parameters; adjust to be used both in | |
1049 | constexpr context and not. | |
1050 | * constexpr.c (potential_constant_expression_1): Use the above. | |
1051 | * cp-tree.h (check_for_uninitialized_const_var): Declare. | |
1052 | ||
5602246c | 1053 | 2018-01-23 Jason Merrill <jason@redhat.com> |
1054 | ||
1055 | PR c++/83947 - ICE with auto declarations. | |
1056 | * pt.c (do_auto_deduction): Don't deduce from an auto decl. | |
1057 | * decl.c (undeduced_auto_decl): Limit to vars and fns. | |
1058 | ||
33c25b7a | 1059 | 2018-01-23 David Malcolm <dmalcolm@redhat.com> |
1060 | ||
1061 | PR c++/83974 | |
1062 | * pt.c (tsubst_copy_and_build) <CONSTRUCTOR>: Remove early bailout | |
1063 | for pointer to member function types. | |
1064 | ||
e2c431bb | 1065 | 2018-01-23 Jakub Jelinek <jakub@redhat.com> |
1066 | ||
1067 | PR sanitizer/83987 | |
1068 | * tree.c (cp_free_lang_data): Change DECL_VALUE_EXPR of | |
1069 | DECL_OMP_PRIVATIZED_MEMBER vars to error_mark_node. | |
1070 | ||
0ecceb4d | 1071 | 2018-01-23 Nathan Sidwell <nathan@acm.org> |
1072 | ||
1073 | PR c++/83988 | |
1074 | * pt.c (tsubst_baselink): Remove optype assert. | |
1075 | * ptree.c (cxx_print_xnode): <case BASELINK> Print BASELINK_OPTYPE. | |
1076 | ||
eac8f1c4 | 1077 | 2018-01-23 Jakub Jelinek <jakub@redhat.com> |
1078 | ||
1079 | PR c++/83958 | |
1080 | * decl.c (cp_finish_decomp): Diagnose if reference structure binding | |
1081 | refers to incomplete type. | |
1082 | ||
ca488d04 | 1083 | 2018-01-23 Nathan Sidwell <nathan@acm.org> |
1084 | ||
1085 | Deprecate ARM-era for scope handling | |
1086 | * decl.c (poplevel): Flag_new_for_scope is a boolean-like. | |
1087 | (cxx_init_decl_processing): Deprecate flag_new_for_scope being | |
1088 | cleared. | |
1089 | * name-lookup.c (check_for_out_of_scope_variable): Deprecate and | |
1090 | cleanup handling. | |
1091 | * semantics.c (begin_for_scope): Flag_new_for_scope is | |
1092 | boolean-like. | |
1093 | (finish_for_stmt, begin_range_for_stmt): Likewise. | |
1094 | ||
85d7a189 | 1095 | 2018-01-22 Jason Merrill <jason@redhat.com> |
1096 | ||
0488e949 | 1097 | PR c++/83720 |
1098 | * decl2.c (determine_visibility): Fix template_decl handling | |
1099 | instead of blocking it. | |
1100 | ||
85d7a189 | 1101 | PR c++/83720 - ICE with lambda and LTO. |
1102 | * decl2.c (determine_visibility): Clear template_decl for | |
1103 | function-scope decls. Propagate anonymous linkage from containing | |
1104 | function. | |
1105 | ||
96fa24ad | 1106 | 2018-01-22 Marek Polacek <polacek@redhat.com> |
1107 | ||
1108 | PR c++/81933 | |
1109 | * typeck2.c (split_nonconstant_init_1): Return false if we didn't | |
1110 | split out anything. | |
85d7a189 | 1111 | |
94b3d6a1 | 1112 | 2018-01-22 Ville Voutilainen <ville.voutilainen@gmail.com> |
1113 | ||
1114 | PR c++/83895 | |
94b3d6a1 | 1115 | * decl.c (grokdeclarator): Don't diagnose extra parens |
1116 | on typedefs. | |
1117 | ||
85fd1174 | 1118 | 2018-01-19 Jakub Jelinek <jakub@redhat.com> |
1119 | ||
61a262f9 | 1120 | PR c++/81167 |
1121 | * call.c (joust): Use TREE_TYPE (source) if source is | |
1122 | a POINTER_TYPE_P rather than if ! DECL_CONSTRUCTOR_P (w->fn). | |
1123 | ||
85fd1174 | 1124 | PR c++/83919 |
1125 | * typeck.c (convert_for_assignment): Suppress warn_ignored_qualifiers | |
1126 | for direct enum init. | |
1127 | * decl.c (reshape_init): Likewise. | |
1128 | ||
6fe5fea9 | 1129 | 2018-01-19 Marek Polacek <polacek@redhat.com> |
1130 | ||
1131 | * constexpr.c (fold_simple): Simplify. | |
1132 | ||
54fd982d | 1133 | 2018-01-18 Jason Merrill <jason@redhat.com> |
1134 | ||
1135 | PR c++/83714 | |
1136 | * search.c (any_dependent_bases_p): Handle null TREE_BINFO. | |
1137 | * pt.c (instantiation_dependent_scope_ref_p): True if | |
1138 | any_dependent_bases_p. | |
1139 | ||
89f57a8f | 1140 | 2018-01-18 Paolo Carlini <paolo.carlini@oracle.com> |
1141 | ||
1142 | * cp-tree.h: Fix comment typo (DECL_NON_TRIVIALLY_INITIALIZED_P | |
1143 | vs DECL_NONTRIVIALLY_INITIALIZED_P). | |
1144 | ||
07d8961c | 1145 | 2018-01-18 Jason Merrill <jason@redhat.com> |
1146 | ||
1147 | PR c++/82461 - constexpr list-initialized member | |
1148 | * constexpr.c (potential_constant_expression_1): Check | |
1149 | TARGET_EXPR_DIRECT_INIT_P. | |
1150 | ||
d3d28fc8 | 1151 | 2018-01-18 Paolo Carlini <paolo.carlini@oracle.com> |
1152 | ||
1153 | PR c++/81013 | |
1154 | * decl.c (xref_basetypes): Early return upon error about derived | |
1155 | union. | |
1156 | ||
bc97e231 | 1157 | 2018-01-18 Nathan Sidwell <nathan@acm.org> |
1158 | ||
1159 | PR c++/83160 | |
1160 | * cp-tree.h (mark_use): Declare. | |
1161 | * expr.c (mark_use): Make extern. | |
1162 | * call.c (direct_reference_binding): Set inner conv's | |
1163 | rvaluedness_matches_p, if it is an identity. | |
1164 | (convert_like_real): Mark lvalue or rvalue use for identity as | |
1165 | rvaledness_matches_p demands. | |
1166 | ||
d60daad1 | 1167 | 2018-01-18 Jakub Jelinek <jakub@redhat.com> |
1168 | ||
1169 | PR c++/83824 | |
1170 | * parser.c (attr_chainon): New function. | |
1171 | (cp_parser_label_for_labeled_statement, cp_parser_decl_specifier_seq, | |
1172 | cp_parser_namespace_definition, cp_parser_init_declarator, | |
1173 | cp_parser_type_specifier_seq, cp_parser_parameter_declaration, | |
1174 | cp_parser_gnu_attributes_opt): Use it. | |
1175 | (cp_parser_member_declaration, cp_parser_objc_class_ivars, | |
1176 | cp_parser_objc_struct_declaration): Likewise. Don't reset | |
1177 | prefix_attributes if attributes is error_mark_node. | |
1178 | ||
5d657db9 | 1179 | 2018-01-17 Paolo Carlini <paolo.carlini@oracle.com> |
1180 | ||
1181 | PR c++/78344 | |
1182 | * decl.c (grokdeclarator): Do not append the error_mark_node | |
1183 | due to an erroneous optional attribute-specifier-seq. | |
1184 | ||
f907d51b | 1185 | 2018-01-17 Jakub Jelinek <jakub@redhat.com> |
1186 | ||
1187 | PR c++/83897 | |
1188 | * cp-gimplify.c (cp_maybe_instrument_return): Handle | |
1189 | CLEANUP_POINT_EXPR. | |
1190 | ||
e89257db | 1191 | 2018-01-17 Paolo Carlini <paolo.carlini@oracle.com> |
1192 | ||
1193 | PR c++/81054 | |
1194 | * constexpr.c (ensure_literal_type_for_constexpr_object): Return | |
1195 | error_mark_node when we give an error. | |
1196 | * decl.c (cp_finish_decl): Use the latter. | |
1197 | ||
65e9fe70 | 1198 | 2018-01-17 Nathan Sidwell <nathan@acm.org> |
1199 | ||
1200 | PR c++/83287 | |
1201 | * init.c (build_raw_new_expr): Scan list for lookups to keep. | |
1202 | ||
510e5f39 | 1203 | 2018-01-17 David Malcolm <dmalcolm@redhat.com> |
1204 | ||
1205 | PR c++/83814 | |
1206 | * expr.c (fold_for_warn): Move from c-common.c, reducing to just | |
1207 | the C++ part. If processing a template, call | |
1208 | fold_non_dependent_expr rather than fully folding. | |
1209 | ||
988a1f54 | 1210 | 2018-01-17 Jason Merrill <jason@redhat.com> |
1211 | ||
1212 | PR c++/81067 - redundant NULL warning. | |
1213 | * call.c (convert_like_real): Restore null_node handling. | |
1214 | ||
4a3d199b | 1215 | 2018-01-17 Jason Merrill <jason@redhat.com> |
1216 | ||
1217 | PR c++/81843 - ICE with variadic member template. | |
1218 | PR c++/72801 | |
1219 | * pt.c (unify_pack_expansion): Don't try to deduce enclosing | |
1220 | template args. | |
1221 | ||
d78e2177 | 1222 | 2018-01-17 David Malcolm <dmalcolm@redhat.com> |
1223 | ||
1224 | PR c++/83799 | |
1225 | * pt.c (type_dependent_expression_p): Strip any location wrapper | |
1226 | before testing tree codes. | |
1227 | (selftest::test_type_dependent_expression_p): New function. | |
1228 | (selftest::cp_pt_c_tests): Call it. | |
1229 | ||
40f2a9a2 | 1230 | 2018-01-17 Nathan Sidwell <nathan@acm.org> |
1231 | ||
1232 | PR c++/83739 | |
1233 | * pt.c (tsubst_expr) <case RANGE_FOR_STMT>: Rebuild a range_for if | |
1234 | this not a final instantiation. | |
1235 | ||
c943fc7b | 1236 | 2018-01-16 Jason Merrill <jason@redhat.com> |
1237 | ||
1238 | PR c++/83714 - ICE checking return in template. | |
1239 | * typeck.c (check_return_expr): Call build_non_dependent_expr. | |
1240 | ||
9543f485 | 1241 | 2018-01-16 Jakub Jelinek <jakub@redhat.com> |
1242 | ||
7328bb73 | 1243 | PR c++/83817 |
1244 | * pt.c (tsubst_copy_and_build) <case CALL_EXPR>: If function | |
1245 | is AGGR_INIT_EXPR rather than CALL_EXPR, set AGGR_INIT_FROM_THUNK_P | |
1246 | instead of CALL_FROM_THUNK_P. | |
1247 | ||
9543f485 | 1248 | PR c++/83825 |
1249 | * name-lookup.c (member_vec_dedup): Return early if len is 0. | |
1250 | (resort_type_member_vec, set_class_bindings, | |
1251 | insert_late_enum_def_bindings): Use vec qsort method instead of | |
1252 | calling qsort directly. | |
1253 | ||
42979993 | 1254 | 2018-01-15 Martin Sebor <msebor@redhat.com> |
1255 | ||
1256 | PR c++/83588 | |
1257 | * class.c (find_flexarrays): Make a record of multiple flexible array | |
1258 | members. | |
1259 | ||
a6ab30a5 | 1260 | 2018-01-12 Jason Merrill <jason@redhat.com> |
1261 | ||
1262 | PR c++/83186 - ICE with static_cast of list-initialized temporary. | |
1263 | * typeck.c (build_static_cast): Use build_non_dependent_expr. | |
1264 | ||
d3e9b3e9 | 1265 | 2018-01-12 Nathan Sidwell <nathan@acm.org> |
1266 | ||
1267 | * cp-tree.h (mark_rvalue_use): Add parm name. | |
1268 | * expr.c (mark_lvalue_use, mark_lvalue_use_nonread): Move next to | |
1269 | mark_rvalue_use. | |
1270 | * call.c (convert_like_real): Fix formatting. | |
1271 | ||
e00197cb | 1272 | 2018-01-11 Jason Merrill <jason@redhat.com> |
1273 | ||
1274 | PR c++/82728 - wrong -Wunused-but-set-variable | |
1275 | PR c++/82799 | |
1276 | PR c++/83690 | |
1277 | * call.c (perform_implicit_conversion_flags): Call mark_rvalue_use. | |
1278 | * decl.c (case_conversion): Likewise. | |
1279 | * semantics.c (finish_static_assert): Call | |
1280 | perform_implicit_conversion_flags. | |
1281 | ||
ba9728eb | 1282 | 2018-01-11 Nathan Sidwell <nathan@acm.org> |
1283 | ||
1284 | * method.c (enum mangling_flags): Delete long-dead enum. | |
1285 | ||
282b84c7 | 1286 | 2018-01-10 Paolo Carlini <paolo.carlini@oracle.com> |
1287 | ||
1288 | * parser.c (cp_parser_std_attribute_spec): When | |
1289 | token_pair::require_open / require_close return false simply | |
1290 | return error_mark_node, avoid duplicate cp_parser_error about | |
1291 | expected '(' / ')', respectively. | |
1292 | ||
d76863c8 | 1293 | 2018-01-10 David Malcolm <dmalcolm@redhat.com> |
1294 | ||
1295 | PR c++/43486 | |
1296 | * call.c (null_ptr_cst_p): Strip location wrappers when | |
1297 | converting from '0' to a pointer type in C++11 onwards. | |
1298 | (conversion_null_warnings): Replace comparison with null_node with | |
1299 | call to null_node_p. | |
1300 | (build_over_call): Likewise. | |
1301 | * cp-gimplify.c (cp_fold): Remove the early bailout when | |
1302 | processing_template_decl. | |
1303 | * cp-lang.c (selftest::run_cp_tests): Call | |
1304 | selftest::cp_pt_c_tests and selftest::cp_tree_c_tests. | |
1305 | * cp-tree.h (cp_expr::maybe_add_location_wrapper): New method. | |
1306 | (selftest::run_cp_tests): Move decl to bottom of file. | |
1307 | (null_node_p): New inline function. | |
1308 | (selftest::cp_pt_c_tests): New decl. | |
1309 | (selftest::cp_tree_c_tests): New decl. | |
1310 | * cvt.c (build_expr_type_conversion): Replace comparison with | |
1311 | null_node with call to null_node_p. | |
1312 | * error.c (args_to_string): Likewise. | |
1313 | * except.c (build_throw): Likewise. | |
1314 | * mangle.c (write_expression): Skip location wrapper nodes. | |
1315 | * parser.c (literal_integer_zerop): New function. | |
1316 | (cp_parser_postfix_expression): Call maybe_add_location_wrapper on | |
1317 | the result for RID_TYPEID. Pass true for new "wrap_locations_p" | |
1318 | param of cp_parser_parenthesized_expression_list. When calling | |
1319 | warn_for_memset, replace integer_zerop calls with | |
1320 | literal_integer_zerop, eliminating the double logical negation | |
1321 | cast to bool. Eliminate the special-casing for CONST_DECL in | |
1322 | favor of the fold_for_warn within warn_for_memset. | |
1323 | (cp_parser_parenthesized_expression_list): Add "wrap_locations_p" | |
1324 | param, defaulting to false. Convert "expr" to a cp_expr, and call | |
1325 | maybe_add_location_wrapper on it when wrap_locations_p is true. | |
1326 | (cp_parser_unary_expression): Call maybe_add_location_wrapper on | |
1327 | the result for RID_ALIGNOF and RID_SIZEOF. | |
1328 | (cp_parser_builtin_offsetof): Likewise. | |
1329 | * pt.c: Include "selftest.h". | |
1330 | (tsubst_copy): Handle location wrappers. | |
1331 | (tsubst_copy_and_build): Likewise. | |
1332 | (build_non_dependent_expr): Likewise. | |
1333 | (selftest::test_build_non_dependent_expr): New function. | |
1334 | (selftest::cp_pt_c_tests): New function. | |
1335 | * tree.c: Include "selftest.h". | |
1336 | (lvalue_kind): Handle VIEW_CONVERT_EXPR location wrapper nodes. | |
1337 | (selftest::test_lvalue_kind): New function. | |
1338 | (selftest::cp_tree_c_tests): New function. | |
1339 | * typeck.c (string_conv_p): Strip any location wrapper from "exp". | |
1340 | (cp_build_binary_op): Replace comparison with null_node with call | |
1341 | to null_node_p. | |
1342 | (build_address): Use location of operand when building address | |
1343 | expression. | |
1344 | ||
301c8f8f | 1345 | 2018-01-10 Marek Polacek <polacek@redhat.com> |
1346 | ||
1347 | PR c++/82541 | |
1348 | * call.c (build_conditional_expr_1): Check complain before warning. | |
1349 | * pt.c (tsubst_copy_and_build) <case COND_EXPR>: Suppress | |
1350 | -Wduplicated-branches. | |
1351 | ||
4b97404d | 1352 | 2018-01-10 Jakub Jelinek <jakub@redhat.com> |
1353 | ||
1354 | PR c++/81327 | |
1355 | * call.c (maybe_warn_class_memaccess): Add forward declaration. | |
1356 | Change last argument from tree * to const vec<tree, va_gc> *, adjust | |
1357 | args uses and check number of operands too. Don't strip away any | |
1358 | nops. Use maybe_constant_value when looking for INTEGER_CST args. | |
1359 | Deal with src argument not having pointer type. Check | |
1360 | tree_fits_uhwi_p before calling tree_to_uhwi. Remove useless | |
1361 | test. | |
1362 | (build_over_call): Call maybe_warn_class_memaccess here on the | |
1363 | original arguments. | |
1364 | (build_cxx_call): Rather than here on converted arguments. | |
1365 | ||
aa3d2f1c | 1366 | 2018-01-10 Paolo Carlini <paolo.carlini@oracle.com> |
1367 | ||
1368 | PR c++/81055 | |
1369 | * init.c (build_vec_init): Avoid building an INIT_EXPR with | |
1370 | error_mark_node as second argument. | |
1371 | ||
442c4003 | 1372 | 2018-01-09 Jakub Jelinek <jakub@redhat.com> |
1373 | ||
1374 | PR c++/83734 | |
1375 | * constexpr.c (cxx_eval_statement_list): Ignore DEBUG_BEGIN_STMTs | |
1376 | in STATEMENT_LIST. Remove unneeded assert. | |
1377 | ||
f08ee65f | 1378 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> |
1379 | Alan Hayward <alan.hayward@arm.com> | |
1380 | David Sherwood <david.sherwood@arm.com> | |
1381 | ||
1382 | * constexpr.c (cxx_eval_array_reference): Handle polynomial | |
1383 | VECTOR_CST_NELTS. | |
1384 | (cxx_fold_indirect_ref): Handle polynomial TYPE_VECTOR_SUBPARTS. | |
1385 | * call.c (build_conditional_expr_1): Likewise. | |
1386 | * decl.c (cp_finish_decomp): Likewise. | |
1387 | * mangle.c (write_type): Likewise. | |
1388 | * typeck.c (structural_comptypes): Likewise. | |
1389 | (cp_build_binary_op): Likewise. | |
1390 | * typeck2.c (process_init_constructor_array): Likewise. | |
1391 | ||
13da18cc | 1392 | 2018-01-03 Jakub Jelinek <jakub@redhat.com> |
1393 | ||
1394 | PR c++/83555 | |
1395 | * typeck.c (build_static_cast_1): For static casts to reference types, | |
1396 | call build_base_path with flag_delete_null_pointer_checks as nonnull | |
1397 | instead of always false. When -fsanitize=null, call | |
1398 | ubsan_maybe_instrument_reference on the NULL reference INTEGER_CST. | |
1399 | * cp-gimplify.c (cp_genericize_r): Don't walk subtrees of UBSAN_NULL | |
1400 | call if the first argument is INTEGER_CST with REFERENCE_TYPE. | |
1401 | ||
4f6a5f07 | 1402 | 2018-01-03 Nathan Sidwell <nathan@acm.org> |
1403 | ||
1404 | PR c++/83667 | |
1405 | * method.c (make_alias_for): Copy DECL_CONTEXT. | |
1406 | ||
ce4afc5b | 1407 | 2018-01-03 Marek Polacek <polacek@redhat.com> |
1408 | ||
1409 | PR c++/83592 | |
1410 | * decl.c (grokdeclarator): Don't warn about MVP in typename context. | |
1411 | ||
8e8f6434 | 1412 | 2018-01-03 Jakub Jelinek <jakub@redhat.com> |
1413 | ||
1f04fdff | 1414 | PR preprocessor/83602 |
1415 | * name-lookup.c (lookup_name_fuzzy): Don't use macro_use_before_def | |
1416 | for builtin macros. | |
1417 | ||
ca29c574 | 1418 | PR c++/83634 |
1419 | * cp-gimplify.c (cp_fold) <case NOP_EXPR>: If the operand folds to | |
1420 | error_mark_node, return error_mark_node. | |
1421 | ||
8e8f6434 | 1422 | Update copyright years. |
1423 | ||
6bc46c46 | 1424 | 2018-01-02 Jakub Jelinek <jakub@redhat.com> |
1425 | ||
1426 | PR c++/83556 | |
1427 | * tree.c (replace_placeholders_r): Pass NULL as last argument to | |
1428 | cp_walk_tree instead of d->pset. If non-TREE_CONSTANT and | |
1429 | non-PLACEHOLDER_EXPR tree has been seen already, set *walk_subtrees | |
1430 | to false and return. | |
1431 | (replace_placeholders): Pass NULL instead of &pset as last argument | |
1432 | to cp_walk_tree. | |
1433 | ||
2e1c71c2 | 1434 | 2018-01-02 Nathan Sidwell <nathan@acm.org> |
1435 | ||
1436 | * constexpr.c (cxx_bind_parameters_in_call): Remove unneeded local | |
1437 | lval var. | |
7dfbd804 | 1438 | \f |
8e8f6434 | 1439 | Copyright (C) 2018 Free Software Foundation, Inc. |
7dfbd804 | 1440 | |
1441 | Copying and distribution of this file, with or without modification, | |
1442 | are permitted in any medium without royalty provided the copyright | |
1443 | notice and this notice are preserved. |