]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/cp/ChangeLog
re PR c/77490 (bit-not (~) on boolean should be warned about)
[thirdparty/gcc.git] / gcc / cp / ChangeLog
CommitLineData
9a2300e9
MP
12016-09-24 Marek Polacek <polacek@redhat.com>
2
3 PR c/77490
4 * typeck.c (cp_build_unary_op): Warn about bit not on expressions that
5 have boolean value.
6
aaa1b10f
JJ
72016-09-23 Jakub Jelinek <jakub@redhat.com>
8
d664d76d
JJ
9 Implement P0138R2, C++17 construction rules for enum class values
10 * cp-tree.h (is_direct_enum_init): Declare.
11 * decl.c (is_direct_enum_init): New function.
12 (reshape_init): Use it.
13 * typeck.c (convert_for_assignment): Likewise.
14
24cae8cb
JJ
15 * Make-lang.in (check-c++1z): Pass RUNTESTFLAGS down to
16 make check-g++.
17
7de76362
JJ
18 * constexpr.c (call_stack): Remove unnecessary
19 = vNULL initialization of file scope vec.
20
199d1d48
JJ
21 * name-lookup.c (store_bindings, store_class_bindings): Don't
22 initialize static local bindings_need_stored to vNULL.
23
aaa1b10f
JJ
24 * typeck2.c (process_init_constructor_record): Use
25 CONSTRUCTOR_NELTS (...) instead of
26 vec_safe_length (CONSTRUCTOR_ELTS (...)).
27 * decl.c (reshape_init_r): Likewise.
28 (check_initializer): Likewise.
29
a608d15b
PC
302016-09-22 Paolo Carlini <paolo.carlini@oracle.com>
31
32 PR c++/71979
33 * class.c (build_base_path): Allow for lookup_base returning
34 NULL_TREE.
35
c67c64ef
JM
362016-09-21 Jason Merrill <jason@redhat.com>
37
38 Core 903
39 * call.c (null_ptr_cst_p): Check char_type_p.
40
2e1c20b1
JJ
412016-09-21 Jakub Jelinek <jakub@redhat.com>
42
43 PR c++/77651
44 * init.c (build_new_1): Don't suggest to use -faligned-new if
45 aligned_new_threshold is non-zero.
46 (type_has_new_extended_alignment): Change aligned_new_threshhold
47 to aligned_new_threshold.
48 * call.c (second_parm_is_size_t, aligned_allocation_fn_p,
49 aligned_deallocation_fn_p, build_op_delete_call): Likewise.
50 * decl.c (cxx_init_decl_processing): Likewise.
51
590b62e9
JJ
522016-09-20 Jakub Jelinek <jakub@redhat.com>
53
b912f962
JJ
54 PR c++/77626
55 * constexpr.c (cxx_fold_indirect_ref): Don't call byte_position on
56 FIELD_DECLs with error_mark_node type. Remove useless break; after
57 return.
58
eaf1ece1
JJ
59 PR c++/77638
60 * parser.c (cp_parser_template_declaration_after_parameter): For 2
61 argument operator"" template set ok to false for
62 parm == error_mark_node.
63
590b62e9
JJ
64 PR c++/77637
65 * parser.c (cp_parser_std_attribute_list): Reject ... without
66 preceding attribute.
67
144a96e4
BE
682016-09-19 Bernd Edlinger <bernd.edlinger@hotmail.de>
69
70 PR c++/77434
71 * cvt.c (cp_convert_and_check): Suppress Wint-in-bool-context here.
72
6101a7ab
PP
732016-09-16 Patrick Palka <ppalka@gcc.gnu.org>
74
75 PR c++/77639
76 * parser.c (cp_parser_class_head): When
77 processing_template_parmlist, don't assume that the
78 class-head may start an explicit specialization.
79
e7d61178
JJ
802016-09-16 Jakub Jelinek <jakub@redhat.com>
81
8f03e02f
JJ
82 PR c++/77482
83 * error.c (dump_simple_decl): Only check DECL_DECLARED_CONCEPT_P
84 if DECL_LANG_SPECIFIC is non-NULL. Fix up formatting.
85
1c2f613f
JJ
86 PR c++/77338
87 * constexpr.c (cxx_eval_constant_expression) <case PARM_DECL>: Only
88 call is_really_empty_class on complete types.
89
e7d61178
JJ
90 PR c++/77375
91 * class.c (check_bases): Set CLASSTYPE_HAS_MUTABLE if any
92 TYPE_HAS_MUTABLE_P for any bases.
93
146ec50f
JM
942016-09-16 Jason Merrill <jason@redhat.com>
95
96 * class.c (check_bases, set_one_vmethod_tm_attributes): Use
97 least_bit_hwi.
98 * decl.c (cxx_init_decl_processing): Use pow2p_hwi.
99 * parser.c (cp_parser_cilk_simd_vectorlength): Use pow2p_hwi.
100
28ca05f0
JJ
1012016-09-14 Jakub Jelinek <jakub@redhat.com>
102
103 PR c++/77549
104 * name-lookup.c (consider_binding_level): Look through TREE_LIST
105 and OVERLOAD.
106
20a1e5b8
MP
1072016-09-14 Marek Polacek <polacek@redhat.com>
108
109 * typeck.c (cp_build_unary_op): Diagnose incrementing boolean
110 expressions. Tweak an error message.
111
e51fbec3
MP
1122016-09-14 Marek Polacek <polacek@redhat.com>
113
114 * cp-tree.h (cp_build_unary_op): Change nonconvert parameter type to
115 bool.
116 * decl2.c (one_static_initialization_or_destruction): Use true instead
117 of 1.
118 * init.c (build_vec_init): Use false instead of 0.
119 * pt.c (tsubst_copy_and_build): Likewise.
120 * semantics.c (simplify_loop_decl_cond): Likewise.
121 * typeck.c (rationalize_conditional_expr): Likewise.
122 (cp_build_binary_op): Use true instead of 1.
123 (cp_build_unary_op): Change nonconvert parameter type to bool. Use true
124 instead of 1.
125 (build_unary_op): Change nonconvert parameter type to bool.
126 (unary_complex_lvalue): Use false instead of 0.
127
ea8661cd
JJ
1282016-09-13 Jakub Jelinek <jakub@redhat.com>
129
9952908a
JJ
130 Implement P0028R4, C++17 using attribute namespaces without repetition
131 * parser.c (cp_parser_std_attribute): Add ATTR_NS argument. Diagnose
132 non-NULL ATTR_NS with scoped attribute token. Handle non-NULL
133 ATTR_NS with non-scoped attribute tokens. Allow named ops in
134 identifier after ::.
135 (cp_parser_std_attribute_list): Add ATTR_NS argument, pass it down
136 to cp_parser_std_attribute calls.
137 (cp_parser_std_attribute_spec): Parse optional C++17
138 attribute-using-prefix, adjust grammar in function comment.
139
ea8661cd
JJ
140 PR c++/77553
141 * constexpr.c (cxx_fold_pointer_plus_expression): New function.
142 (cxx_eval_binary_expression): Use it for POINTER_PLUS_EXPR.
143 (cxx_eval_pointer_plus_expression): Remove.
144 (cxx_eval_constant_expression) <case POINTER_PLUS_EXPR>: Don't
145 call cxx_eval_pointer_plus_expression.
146
254830ba
DM
1472016-09-13 David Malcolm <dmalcolm@redhat.com>
148
149 * parser.c (cp_parser_class_specifier_1): Update for renaming of
150 add_fixit_insert to add_fixit_insert_before.
151 (cp_parser_class_head): Likewise.
152
54dcdb88
BE
1532016-09-12 Bernd Edlinger <bernd.edlinger@hotmail.de>
154
155 PR c++/77496
156 * call.c (build_conditional_expr_1): Call warn_for_omitted_condop.
157 * class.c (instantiate_type): Look through the SAVE_EXPR.
158
af63ba4b
JM
1592016-09-09 Jason Merrill <jason@redhat.com>
160
161 Implement P0035R4, C++17 new of over-aligned types.
162 * cp-tree.h (enum cp_tree_index): Add CPTI_ALIGN_TYPE.
163 (align_type_node): New macro.
164 * call.c (build_operator_new_call): Handle C++17 aligned new.
165 (second_parm_is_size_t, build_op_delete_call): Likewise.
166 (non_placement_deallocation_fn_p): Likewise. Rename to
167 usual_deallocation_fn_p.
168 (aligned_allocation_fn_p, aligned_deallocation_fn_p): New.
169 * decl.c (cxx_init_decl_processing): Add aligned new support.
170 * init.c (type_has_new_extended_alignment): New.
171 (build_new_1): Handle aligned new.
172 * tree.c (vec_copy_and_insert): New.
173
94087e88
JJ
1742016-09-02 Jakub Jelinek <jakub@redhat.com>
175
176 PR sanitizer/77396
177 * decl2.c (do_static_initialization_or_destruction): Only
178 call asan_dynamic_init_call if INITP is true.
179
1802016-09-01 Martin Sebor <msebor@redhat.com>
3d7b83b6
MS
181
182 * mangle.c: Increase buffer size to guarantee it fits the output
183 of the formatted function regardless of its arguments.
184
295844f6
MP
1852016-09-01 Marek Polacek <polacek@redhat.com>
186
187 PR c/7652
188 * error.c (dump_type): Fix falls through comment.
189 (dump_decl): Likewise.
190 (dump_expr): Likewise.
191
71b30891
DM
1922016-08-30 David Malcolm <dmalcolm@redhat.com>
193
194 * parser.c (cp_parser_enclosed_template_argument_list): Add fix-it
195 hint to ">>" within nested template argument list error.
196
f9087798
DM
1972016-08-30 David Malcolm <dmalcolm@redhat.com>
198
199 * name-lookup.c (suggest_alternatives_for): Use add_fixit_replace
200 rather than add_fixit_misspelled_id.
201 * parser.c (cp_parser_diagnose_invalid_type_name): Likewise.
202
328eae1c
JM
2032016-08-29 Jason Merrill <jason@redhat.com>
204
205 PR c++/77379
206 * mangle.c (maybe_check_abi_tags): Add version parm, handle thunks.
207 (mangle_thunk): Add thunk parameter.
208 * method.c (finish_thunk): Pass it.
209 * cp-tree.h: Declare it.
210
9729a5d5
JM
2112016-08-15 Jason Merrill <jason@redhat.com>
212
d0b0fbd9
JM
213 Avoid calling a trivial default constructor.
214 * class.c (default_ctor_p): New.
215 (in_class_defaulted_default_constructor): Use it.
216 (type_has_non_user_provided_default_constructor): Use it.
217 * call.c (build_over_call): Handle trivial default constructor.
218 * cp-tree.h: Declare default_ctor_p.
219
9729a5d5
JM
220 PR c++/57728
221 * pt.c (do_type_instantiation): Don't mess with non-user-provided
222 member functions.
223
ebef225f
MP
2242016-08-25 Marek Polacek <polacek@redhat.com>
225
226 * parser.c (cp_parser_binary_expression): Pass LHS to
227 warn_logical_not_parentheses.
228
9c62c873
MP
2292016-08-18 Marek Polacek <polacek@redhat.com>
230
231 PR c/7652
232 * call.c (add_builtin_candidate): Add gcc_fallthrough.
233 * cxx-pretty-print.c (pp_cxx_unqualified_id): Likewise.
234 * parser.c (cp_parser_skip_to_end_of_statement): Likewise.
235 (cp_parser_cache_defarg): Likewise.
236
191816a3
MP
2372016-08-12 Marek Polacek <polacek@redhat.com>
238
239 PR c/7652
240 * call.c (add_builtin_candidate): Add FALLTHRU.
241 (build_integral_nontype_arg_conv): Adjust fall through comment.
242 (build_new_op_1): Add FALLTHRU.
243 (convert_like_real): Adjust fall through comment.
244 * class.c (fixed_type_or_null): Likewise.
245 * constexpr.c (cxx_eval_constant_expression): Likewise.
246 (potential_constant_expression_1): Likewise. Add FALLTHRU.
247 * cp-gimplify.c (cp_gimplify_expr): Adjust fall through comment.
248 (cp_fold): Add FALLTHRU.
249 * cvt.c (build_expr_type_conversion): Adjust fall through comment.
250 * cxx-pretty-print.c (pp_cxx_unqualified_id): Add FALLTHRU.
251 (pp_cxx_qualified_id): Likewise.
252 (cxx_pretty_printer::constant): Adjust fall through comment.
253 (cxx_pretty_printer::primary_expression): Add FALLTHRU.
254 (pp_cxx_pm_expression): Adjust fall through comment.
255 (cxx_pretty_printer::expression): Add FALLTHRU.
256 (cxx_pretty_printer::declaration_specifiers): Reformat code.
257 (pp_cxx_type_specifier_seq): Adjust fall through comment.
258 (pp_cxx_ptr_operator): Likewise. Add FALLTHRU.
259 * error.c (dump_type): Adjust fall through comment.
260 (dump_decl): Likewise.
261 * mangle.c (write_type): Likewise.
262 * method.c (synthesized_method_walk): Add FALLTHRU.
263 * name-lookup.c (arg_assoc_type): Likewise.
264 * parser.c (cp_lexer_print_token): Adjust fall through comment.
265 (cp_parser_primary_expression): Add FALLTHRU.
266 (cp_parser_operator): Likewise.
267 * pt.c (find_parameter_packs_r): Likewise.
268 (tsubst_aggr_type): Adjust fall through comment.
269 * semantics.c (finish_omp_clauses): Add FALLTHRU.
270 * tree.c (lvalue_kind): Likewise.
271
3f8257db 2722016-08-12 Alexandre Oliva <aoliva@redhat.com>
e366d7d8
AO
273
274 PR debug/63240
275 * cp-objcp-common.c (cp_function_decl_defaulted): New.
276 (cp_function_decl_explicit_p): Const_tree-ify.
277 (cp_function_decl_deleted_p): Likewise.
278 * cp-objcp-common.h (cp_function_decl_defaulted): Declare.
279 (cp_function_decl_explicit_p): Const_tree-ify.
280 (cp_function_decl_deleted_p): Likewise.
281 (LANG_HOOKS_FUNCTION_DECL_DEFAULTED): Redefine.
282
385ed708
JJ
2832016-08-11 Jakub Jelinek <jakub@redhat.com>
284
285 PR c++/72868
286 * constexpr.c (label_matches): Handle case range expressions.
287
4200a723
JM
2882016-08-11 Jason Merrill <jason@redhat.com>
289
290 PR c++/73456
291 * logic.cc (non_atomic_constraint_p): Handle EXPR_PACK_EXPANSION.
292
99f9d4b1
JM
2932016-08-10 Jason Merrill <jason@redhat.com>
294
295 Implement C++17 constexpr if.
296 * cp-tree.h (IF_STMT_CONSTEXPR_P): New.
297 * name-lookup.c (push_to_top_level, pop_from_top_level_1): Handle it.
298 * parser.h (struct cp_parser): Add in_discarded_stmt field.
299 * parser.c (cp_parser_selection_statement): Handle 'if constexpr'.
300 (cp_parser_jump_statement): Avoid deducing from a discarded return.
301 * pt.c (tsubst_expr): Only instantiate taken branch of constexpr if.
302 * semantics.c (begin_if_stmt): Set the binding level this_entity.
303 (finish_if_stmt_cond): Require the condition of a
304 constexpr if to be constant.
305 * decl.c (level_for_constexpr_if): New.
306 (named_label_entry): Add in_constexpr_if field.
307 (poplevel_named_label_1): Set it.
308 (check_goto): Check it.
309 (check_previous_goto_1): Check level_for_constexpr_if.
310
23f4e590
JM
3112016-08-09 Jason Merrill <jason@redhat.com>
312
f3365c12
JM
313 PR c++/68703
314 * decl2.c (any_dependent_type_attributes_p): New.
315 * pt.c (dependent_type_p_r, type_dependent_expression_p): Check it.
316 * semantics.c (finish_id_expression): Check it.
317 * typeck.c (finish_class_member_access_expr): Check it.
318
d676d623
JM
319 PR c++/71712
320 * class.c (check_abi_tags): Don't duplicate tags for conversion ops.
321
7ab8c647
JM
322 Adjust mangling of ABI tags on class template member functions.
323 * class.c (missing_abi_tags): New.
324 (check_abi_tags): Don't check template. Add just_checking mode.
325 * mangle.c (abi_flag_at_least, any_abi_below, equal_abi_tags): New.
326 (sorted_abi_tags): Split out from write_abi_tags.
327 (struct releasing_vec): New.
328 (write_unqualified_name): Only look for the primary
329 template for types. Implement backward compatibility.
330
f4fce183
JM
331 PR c++/72849
332 * constexpr.c (cxx_eval_constant_expression): Check
333 COMPLETE_TYPE_P before calling is_really_empty_class.
334 * class.c (is_really_empty_class): Don't call complete_type.
335
23f4e590
JM
336 PR c++/56701
337 * typeck.c (cp_build_addr_expr_1): Remove special *this handling.
338
cadec7ca
JJ
3392016-08-09 Jakub Jelinek <jakub@redhat.com>
340
341 PR c++/72809
342 * rtti.c (get_pseudo_ti_index): Return TK_CLASS_TYPE for
343 builtin aggregate types without TYPE_BINFO.
344
98e5a19a
JM
3452016-08-08 Jason Merrill <jason@redhat.com>
346
347 Implement C++17 constexpr lambda.
348 * class.c (finalize_literal_type_property): Handle lambdas.
349 * constexpr.c (is_valid_constexpr_fn): Likewise. No longer static.
350 (explain_invalid_constexpr_fn, cxx_eval_call_expression): Handle
351 lambdas.
352 (cxx_eval_constant_expression): Handle capture proxy.
353 (var_in_constexpr_fn): Don't check for C++14.
354 (var_in_maybe_constexpr_fn): New.
355 (potential_constant_expression_1): Use it. Check DECL_EXPR for
356 declarations not allowed in constexpr function. Handle
357 STATIC_ASSERT, RANGE_FOR_STMT.
358 * decl.c (make_rtl_for_nonlocal_decl): Use var_in_maybe_constexpr_fn.
359 (finish_function): Set DECL_DECLARED_CONSTEXPR_P on lambda members.
360 * lambda.c (begin_lambda_type): Set CLASSTYPE_LITERAL_P.
361 (maybe_add_lambda_conv_op): Clear thunk CALL_EXPR location.
362 (lambda_static_thunk_p): New.
363 * parser.c (cp_keyword_starts_decl_specifier_p): Add RID_CONSTEXPR.
364 (CP_PARSER_FLAGS_ONLY_MUTABLE_OR_CONSTEXPR): New enumerator.
365 (cp_parser_decl_specifier_seq): Handle it.
366 (cp_parser_lambda_declarator_opt): Use cp_parser_decl_specifier_seq.
367 * pt.c (instantiate_class_template_1): Set CLASSTYPE_LITERAL_P.
368 (tsubst_copy_and_build) [CALL_EXPR]: Propagate CALL_FROM_THUNK_P.
369 * error.c (dump_function_decl): Check TFF_NO_TEMPLATE_BINDINGS.
370 (dump_expr) [FUNCTION_DECL]: Pass it.
371
7dc2b4a2
JM
3722016-08-08 Jason Merrill <jason@redhat.com>
373
374 PR c++/67131
375 * class.c (is_really_empty_class): Call complete_type.
376 * constexpr.c (cxx_eval_constant_expression): Check
377 is_really_empty_class.
378 (potential_constant_expression_1): Likewise. Check for error type.
379
5c934396
JJ
3802016-08-08 Jakub Jelinek <jakub@redhat.com>
381
382 PR c++/58706
383 * parser.c: Include tree-iterator.h.
384 (cp_parser_omp_for_loop_init): Move lambda DECL_EXPRs from init
385 to FOR_BLOCK.
386 (cp_parser_omp_for_loop): Handle non-STATEMENT_LIST FOR_BLOCK
387 entries.
388
fa76f2c6
JW
3892016-08-06 Jonathan Wakely <jwakely@redhat.com>
390
391 * call.c (convert_like_real): Harmonize diagnostics for invalid
392 reference binding.
393
5c934396 3942016-08-05 Martin Sebor <msebor@redhat.com>
64d6d399
MS
395
396 * constexpr.c (cxx_eval_store_expression): Remove hyphen from
397 the spelling of "constant-expression" in diagnostic messages
398 for consistency.
399 (cxx_eval_constant_expression): Same.
400 (cxx_eval_outermost_constant_expr): Same.
401 (potential_constant_expression_1): Same.
402
4228ca19
NS
4032016-08-05 Nathan Sidwell <nathan@acm.org>
404
405 PR c++/68724
406 * pt.c (unify): TRAIT_EXPR is an expr.
407
4473482d
PC
4082016-08-04 Paolo Carlini <paolo.carlini@oracle.com>
409
410 PR c++/72800
411 * lambda.c (add_capture): Check lambda_capture_field_type return
412 value for error_mark_node.
413
08156df5
PP
4142016-08-04 Patrick Palka <ppalka@gcc.gnu.org>
415
416 PR c++/72759
417 * pt.c (tsubst_qualified_id): Return error_mark_node if
418 template_args is error_mark_node.
419
99676625
JM
4202016-08-04 Jason Merrill <jason@redhat.com>
421
b9dc9ef6
JM
422 PR c++/72415
423 * pt.c (tsubst_pack_expansion): Pull a single pack expansion out
424 of the TREE_VEC.
425
6a7b9203
JM
426 * cp-tree.h (TYPE_UNNAMED_P): Rename from TYPE_ANONYMOUS_P.
427 (TYPE_WAS_UNNAMED): Rename from TYPE_WAS_ANONYMOUS.
428 * class.c, decl.c, decl2.c, error.c, lambda.c, mangle.c,
429 name-lookup.c, parser.c, pt.c, semantics.c, tree.c: Adjust.
430
99676625
JM
431 PR c++/72796
432 * typeck.c (finish_class_member_access_expr): Avoid stripping
433 SCOPE_REF to dependent base.
434
0b212d8c
TS
4352016-08-04 Thomas Schwinge <thomas@codesourcery.com>
436
ae9281fc
TS
437 * parser.c (cp_ensure_no_oacc_routine): Improve diagnostics.
438 (cp_parser_late_parsing_cilk_simd_fn_info): Fix diagnostics.
439 (cp_parser_late_parsing_oacc_routine, cp_finalize_oacc_routine):
440 Simplify code, and improve diagnostics.
441 (cp_parser_oacc_routine): Likewise. Move pragma context
442 checking...
443 (cp_parser_pragma): ... here.
444
0b212d8c
TS
445 * parser.h (struct cp_omp_declare_simd_data): New.
446 (struct cp_parser): Use it for oacc_routine member.
447 * parser.c (cp_ensure_no_oacc_routine, cp_parser_oacc_routine)
448 (cp_parser_late_parsing_oacc_routine, cp_finalize_oacc_routine):
449 Use it. Simplify code.
450 (cp_parser_new): Initialize all members pointing to special
451 parsing data structures.
452 (cp_parser_cilk_simd_fn_vector_attrs): Initialize
453 parser->cilk_simd_fn_info->clauses.
454 (cp_parser_omp_declare_simd): Initialize
455 parser->omp_declare_simd->clauses.
456 (cp_parser_late_parsing_omp_declare_simd): Simplify code.
457
a0008434
MP
4582016-08-04 Marek Polacek <polacek@redhat.com>
459
460 PR c++/70229
461 * constexpr.c (check_constexpr_ctor_body_1): Allow typedef
462 declarations.
463
1108a485
JM
4642016-08-01 Jason Merrill <jason@redhat.com>
465
72a30e45
JM
466 * mangle.c (mangle_decl): Warn about mangled name change even if
467 DECL_REALLY_EXTERN.
468
884929e2
JM
469 * mangle.c (get_abi_tags): New.
470 (find_substitution, write_unqualified_name, write_abi_tags)
471 (maybe_check_abi_tags): Use it.
472
352b8bab
JM
473 * mangle.c (mangle_decl): Fix mangled name change warning.
474
1108a485
JM
475 PR c++/72766
476 * constexpr.c (cxx_eval_pointer_plus_expression): Check constancy
477 of nelts.
478 * cp-gimplify.c (cp_fully_fold): Only maybe_constant_value in
479 C++11 and up.
480
94087e88 4812016-07-30 Martin Sebor <msebor@redhat.com>
8bada5cd
MS
482
483 PR c++/60760
484 PR c++/71091
485 * constexpr.c (cxx_eval_binary_expression): Reject invalid expressions
486 involving null pointers.
487 (cxx_eval_component_reference): Reject null pointer dereferences.
488 (cxx_eval_indirect_ref): Reject indirecting through null pointers.
489 (cxx_eval_constant_expression): Reject invalid expressions involving
490 null pointers.
491
638fc14f
MP
4922016-07-29 Marek Polacek <polacek@redhat.com>
493
494 PR c/71926
495 * semantics.c (maybe_convert_cond): Use the location of COND for the
496 parentheses warning.
497
49b5925f
JM
4982016-07-29 Jason Merrill <jason@redhat.com>
499
201e6861
JM
500 * decl.c (build_enumerator): Tweak diagnostic.
501
49b5925f
JM
502 PR c++/72457
503 * init.c (expand_aggr_init_1): Only handle value-init of bases.
504 * constexpr.c (build_data_member_initialization): Handle multiple
505 initializers for the same field.
506
f064da6a
PC
5072016-07-28 Paolo Carlini <paolo.carlini@oracle.com>
508
509 PR c++/71665
510 * decl.c (build_enumerator): Check the type of the enumerator before
511 calling cxx_constant_value.
512
270430ff
JM
5132016-07-27 Jason Merrill <jason@redhat.com>
514
515 PR c++/71747
516 * pt.c (get_partial_spec_bindings): Replace tparms and spec_args
517 parameters with spec_tmpl. Call push_tinst_level.
518 (most_specialized_partial_spec): Adjust.
519 (more_specialized_partial_spec): Adjust.
520
fd2bfee5
JM
5212016-07-25 Jason Merrill <jason@redhat.com>
522
1509db23
JM
523 PR c++/65970
524 * cp-gimplify.c (genericize_cp_loop): Revert location change.
525
47265942
JM
526 PR c++/71837
527 * lambda.c (add_capture): Leave a pack expansion in a TREE_LIST.
528 (build_lambda_object): Call build_x_compound_expr_from_list.
529 * pt.c (tsubst) [DECLTYPE_TYPE]: Likewise.
530
fd8b207a
JM
531 PR c++/71833
532 PR c++/54440
533 * pt.c (coerce_template_parameter_pack): Fix logic for
534 pack index.
535
5ec2cd9f
JM
536 PR c++/65970
537 * constexpr.c (cxx_eval_loop_expr): Count iterations.
538 * cp-gimplify.c (genericize_cp_loop): Use start_locus even for
539 infinite loops.
540
fd2bfee5
JM
541 PR c++/71972
542 * constexpr.c (cxx_eval_array_reference): Handle looking for the
543 value of an element we're currently modifying.
544
8a61db89
JM
5452016-07-24 Jason Merrill <jason@redhat.com>
546
547 PR c++/71515
548 * pt.c (resolve_typename_type): Try to avoid calling
549 currently_open_class.
550
a6c690f4
JM
5512016-07-23 Jason Merrill <jason@redhat.com>
552
bd84e560
JM
553 PR c++/66617
554 * call.c (add_list_candidates): Handle VTT parm.
555 (build_new_method_call_1): Likewise.
556
f388b7be
JM
557 PR c++/55922
558 PR c++/63151
559 * init.c (expand_aggr_init_1): Handle list-initialization from {}.
560
2dac37c0
JM
561 PR c++/70709
562 * class.c (walk_subobject_offsets): Handle 0-length array.
563
71b3723a
JM
564 PR c++/70778
565 * pt.c (tsubst): Also substitute into the template of a
566 BOUND_TEMPLATE_TEMPLATE_PARM.
567
6970223f
JM
568 PR c++/71738
569 * pt.c (lookup_template_class_1): Handle getting template from tsubst.
570
a6c690f4
JM
571 PR c++/71350
572 * decl.c (reshape_init_r): Check complain for missing braces warning.
573
76178f67
JM
5742016-07-22 Jason Merrill <jason@redhat.com>
575
478ed1fa
JM
576 PR c++/71576
577 * call.c (convert_like_real): Use lvalue_kind.
578
76178f67
JM
579 PR c++/71748
580 PR c++/52746
581 * pt.c (tsubst_baselink): Call
582 adjust_result_of_qualified_name_lookup for unqualified
583 destructors.
584
d5ec842c
JM
5852016-07-21 Jason Merrill <jason@redhat.com>
586
6781e2af
JM
587 PR c++/69223
588 * semantics.c (apply_deduced_return_type): Call
589 complete_type_or_else before building the new RESULT_DECL.
590
94ced5b4
JM
591 PR c++/71274
592 * decl2.c (maybe_instantiate_decl): Split out from mark_used.
593 (decl_constant_var_p): Use it instead.
594
44ed4754
JM
595 PR c++/71630
596 * pt.c (instantiate_decl): Fix pattern_defined for namespace scope
597 variable templates.
598
a93f3513
JM
599 PR c++/71913
600 * call.c (unsafe_copy_elision_p): It's OK to elide when
601 initializing an unknown object.
602
d5ec842c
JM
603 * call.c (build_over_call): Check unsafe_copy_elision_p even for
604 trivial constructors.
605 * method.c (do_build_copy_constructor): Don't copy tail padding
606 even in a trivial constructor.
607
ab3af181
JJ
6082016-07-21 Jakub Jelinek <jakub@redhat.com>
609
610 PR c++/71728
611 * constexpr.c (potential_constant_expression_1) <case GOTO_EXPR>:
612 Replace assert with test, return false if the goto isn't break
613 or continue. Formatting fix.
614
01771d43
RB
6152016-07-21 Richard Biener <rguenther@suse.de>
616
617 * vtable-class-hierarchy.c (vtv_generate_init_routine): Set
618 DECL_IGNORED_P.
619
ee78cbaa
JJ
6202016-07-21 Jakub Jelinek <jakub@redhat.com>
621
622 PR c++/71941
623 * cp-gimplify.c (cp_genericize): For nested cp_genericize calls
624 save/restore bc_label array.
625
e96fe88c
JM
6262016-07-21 Jason Merrill <jason@redhat.com>
627
172f0e13
JM
628 PR c++/70781
629 * parser.c (cp_parser_lambda_expression): Unset OK if there was an
630 error parsing the lambda-declarator.
631
dd5dda56
JM
632 PR c++/71896
633 * constexpr.c (cxx_eval_binary_expression): Handle comparison
634 between lowered and unlowered PTRMEM_CST.
635
451dcc66
JM
636 PR c++/65168
637 * typeck.c (cp_truthvalue_conversion): Compare pointers to nullptr.
638 Don't set c_inhibit_evaluation_warnings.
639
e96fe88c
JM
640 PR c++/71121
641 * cp-gimplify.c (cp_fully_fold): First call maybe_constant_value.
642
f078dc7d
AS
6432016-07-21 Andrew Sutton <andrew.n.sutton@gmail.com>
644 Jason Merrill <jason@redhat.com>
645
646 Improving concepts performance and diagnostics.
647 PR c++/67565
648 PR c++/67579
649 PR c++/71843
650 * cp-tree.def (CHECK_CONSTR): New.
651 * cp-tree.h (CHECK_CONSTR_CONCEPT): New.
652 (CHECK_CONSTR_ARGS): New.
653 * constraint.cc (make_predicate_constraint): Remove in favor of
654 normalize_expression.
655 (resolve_constraint_check): Actually return error_mark_node when
656 resolution fails.
657 (resolve_variable_concept_check): Perform coercion as if processing
658 a template. Also return errors on resolution failure.
659 (lift_*): Remove all of these functions. Don't unnecessarily inline
660 concepts.
661 (learn_*): Add facilities to memoize implications for subsumption
662 during normalization.
663 (expanding_concept): New.
664 (expand_concept): New. Return the inlined and normalized definition
665 of a concept when needed.
666 (transform_*, xform_*): Rename to normalize_* to better reflect the
667 responsibility of those functions.
668 (normalize_template_id_expression): Check for non-boolean operands
669 when possible. Generate check constraints instead of normal variable
670 references.
671 (normalize_call_expression): Report errors when resolution fails.
672 (check_for_logical_overloads): Rewrite this check to more accurately
673 report the error.
674 (normalize_atom): Check for overloaded calls and invalid types before
675 determining if the expression refers to a concept.
676 (build_constraints): Don't cache normalized constraints or decomposed
677 assumptions.
678 (finish_shorthand_constraint): Return a normalized expression instead
679 of a predicate constraint.
680 (finish_template_introduction): Same.
681 (placeholder_extract_concept_and_args): Rewrite this since we only
682 ever get check constraints here.
683 (equivalent_placeholder_constraints): Rewrite in terms of check
684 constraints, and handle error_mark_nodes correctly.
685 (tsubst_check_constraint, tsubst_expr_constr, tsubst_type_constr)
686 (tsubst_implicit_conversion_constr)
687 (tsubst_argument_deduction_constr, tsubst_exception_constr)
688 (tsubst_parameterized_constraint, tsubst_constraint): New.
689 (tsbust_conjunection): Replace with tsubst_logical_operator and
690 actually generate the right kind of constraint.
691 (tsubst_requirement_body): Reverse the order of substituted arguments
692 so that they appear in the order written (helps diagnostics).
693 (satisfy_check_constraint): New.
694 (satisfy_conjunction): Simplify.
695 (satisfy_disjunction): Same.
696 (satisfy_constraint_1): Handle check constraints.
697 (eval_constr): New (private) global state.
698 (evaluating_constraints_sentinel): New. Manages eval_constr.
699 (satisfy_constraint): Add timing variables.
700 (satisfy_associated_constraints): Add hooks for memoization.
701 (evaluate_function_concept): Build a check constraint instead of
702 normalizing its definition.
703 (evaluate_variable_concept): Same.
704 (evaluate_constraint_expression): Normalize, but in the current
705 declaration processing context.
706 (evaluating_constraints_p): New.
707 (elide_constraint_failure_p): Actually emit constraint_thresh errors.
708 (diagnose_*): Remove artificial indentation. Add a new parameter to
709 each that tracks the current (complete) constraint prior to any
710 substitutions.
711 (diagnose_expression): Removed.
712 (diagnose_call_expression): Same.
713 (diagnose_template_id): Same.
714 (diagnose_template_id): New.
715 (diagnose_logical_constraint): New.
716 (diagnose_expression_constraint): Show the original expression.
717 (diagnose_type_constraint): Show the original type.
718 (diagnose_implicit_conversion_constraint): Be specific about
719 failures, don't re-diagnose a known-to-be-failed substitutions,
720 and manage elisions properly.
721 (diagnose_argument_deduction_constraint): Same.
722 (diagnose_exception_constraint): Same.
723 (diagnose_parameterized_constraint): Same.
724 (constraint_p): Allow EXPR_PACK_EXPANSION.
725 * logic.cc (next_by_distance): Removed. No longer used.
726 (any_p): Renamed from any_of.
727 (term_entry, term_hasher): New.
728 (term_list): Rewrite to include a hash table for quick lookup.
729 Also, make less stateful.
730 (proof_state): Extend to allow goals to be discharged once
731 satisfied.
732 (non_atomic_constraint_p): New.
733 (any_non_atomic_constraints_p): New.
734 (...rest...): Previous implementation completely replaced with an
735 iterative algorithm that opportunistically prunes the search space
736 before committing to using more memory.
737 * parser.c: (cp_parser_type_parameter): Normalize constraints.
738 (cp_parser_explicit_template_declaration): Same.
739 * pt.c: (finish_template_variable): Be less redundant with this error
740 message.
741 (template_args_equal): No longer static.
742 (tsubst_decl): Don't try to find specializations of variables that
743 have already been instantiated.
744 (build_non_dependent_expr): Avoid infinite recursion during concept
745 expansion.
746 (make_constrained_auto): Normalize constraints.
747 (do_auto_deduction): When doing auto deduction from a
748 partial-concept-id, be sure to include the explicit args checking
749 the constraints.
750 (constraint_sat_*): New. Memoize satisfied constraints.
751 (concept_spec_*): New. Memoize expressions associated with a concept
752 specialization.
753 (constraint_memos, concept_memos): New.
754 (lookup_constraint_satisfaction, memoize_constraint_satisfaction): New.
755 (lookup_concept_satisfaction, memoize_concept_satisfaction): New.
756 (get_concept_expansion, save_concept_expansion): New.
757 (hash_subsumption_args): New.
758 (comp_subsumption_args): New.
759 (subsumption_*): New. Memoize parts of the subsumption relation.
760 (lookup_subsumption_result, save_subsumption_result): New.
761 (init_constraint_processing): Initialize memo tables.
762 (get_constraints): Shortcut if !flag_concepts.
763 * decl.c (grokfndecl): Normalize constraints.
764 * error.c (dump_simple_decl): Print "concept" when appropriate.
765 (dump_function_decl): Same.
766 (dump_template_decl): Don't write requirements when we're not
767 printing the header.
768 (dump_expr): Handle fold expressions.
769 * cxx-pretty-print.c (cxx_pretty_printer::expression): Handle
770 fold expressions.
771 (get_fold_operator): New.
772 (pp_cxx_unary_left_fold_expression): New.
773 (pp_cxx_unary_right_fold_expression): New.
774 (pp_cxx_binary_fold_expression): New.
775 (pp_cxx_check_constraint): New.
776 (pp_cxx_*_constraint): Rewrite the grammar of internal constraints
777 to make them easier to read when debugging.
778 * search.c (accessible_p): Don't shortcut when evaluating constraints.
779 * tree.c (cp_tree_equal): Handle CHECK_CONSTR.
780
52ed68f7
DM
7812016-07-20 David Malcolm <dmalcolm@redhat.com>
782
783 PR c/70339
784 PR c/71858
785 * name-lookup.c: Include gcc-rich-location.h, spellcheck-tree.h,
786 and parser.h.
787 (suggest_alternatives_for): If no candidates are found, try
788 lookup_name_fuzzy and report if if finds a suggestion.
789 (consider_binding_level): New function.
790 (lookup_name_fuzzy) New function.
791 * parser.c: Include gcc-rich-location.h.
792 (cp_lexer_next_token_is_decl_specifier_keyword): Move most of
793 logic into...
794 (cp_keyword_starts_decl_specifier_p): ...this new function.
795 (cp_parser_diagnose_invalid_type_name): When issuing
796 "does not name a type" errors, attempt to make a suggestion using
797 lookup_name_fuzzy.
798 * parser.h (cp_keyword_starts_decl_specifier_p): New prototype.
799 * search.c (lookup_field_fuzzy_info::fuzzy_lookup_field): Reject
800 types that are not CLASS_TYPE_P, rather than rejecting individual
801 tree codes.
802
109d2197
JJ
8032016-07-20 Jakub Jelinek <jakub@redhat.com>
804
7419f441
JJ
805 PR c++/71909
806 * parser.c (cp_parser_save_member_function_body): Consume
807 __transaction_relaxed or __transaction_atomic with optional
808 attribute. Only skip catch with block if try keyword is seen.
809
109d2197
JJ
810 PR c++/50060
811 * constexpr.c (cxx_eval_builtin_function_call): Pass false as lval
812 when evaluating call arguments. Use fold_builtin_call_array instead
813 of fold_build_call_array_loc, return t if it returns NULL. Otherwise
814 check the result with potential_constant_expression and call
815 cxx_eval_constant_expression on it.
816
43694e8b
JM
8172016-07-19 Jason Merrill <jason@redhat.com>
818
819 PR c++/67164
820 * pt.c (iterative_hash_template_arg, template_args_equal): Don't
821 handle ARGUMENT_PACK_SELECT.
822
f2111a36
JJ
8232016-07-18 Jakub Jelinek <jakub@redhat.com>
824
e43ebb12
JJ
825 PR c++/70869
826 PR c++/71054
827 * cp-gimplify.c (cp_genericize_r): Revert the 2016-07-07 change.
828 * tree.c (cp_walk_subtrees): For DECL_EXPR on DECL_ARTIFICIAL
829 non-static VAR_DECL, walk the decl's DECL_INITIAL, DECL_SIZE and
830 DECL_SIZE_UNIT.
831
99516432
JJ
832 PR c++/71835
833 * call.c (build_op_call_1): Use convert_like_with_context only
834 if cand->fn is a decl.
835
87713c6a
JJ
836 PR c++/71828
837 * constexpr.c (cxx_eval_constant_expression) <case REALPART_EXPR>:
838 For lval don't use cxx_eval_unary_expression and instead recurse
839 and if needed rebuild the reference.
840
7a7f16ca
JJ
841 PR c++/71826
842 * pt.c (tsubst_baselink): Only set BASELINK_OPTYPE for BASELINK_P.
843
f4d90295
JJ
844 PR c++/71822
845 * cp-gimplify.c (cp_gimplify_expr) <case VEC_INIT_EXPR>: Recursively
846 fold *expr_p before genericizing it.
847
f2111a36
JJ
848 PR c++/71871
849 * typeck.c (build_x_conditional_expr): Revert the 2012-10-25 change.
850
d1dfa20d
JM
8512016-07-15 Jason Merrill <jason@redhat.com>
852
37a80bf9
JM
853 PR c++/71495
854 * call.c (convert_like_real): Mask complain.
855 * semantics.c (perform_koenig_lookup): Likewise.
856
de54de93
JM
857 PR c++/71092
858 * constexpr.c (cxx_eval_call_expression): Fail quietly when cgraph
859 threw away DECL_SAVED_TREE.
860
4d031550
JM
861 PR c++/71117
862 Core 2189
863 * call.c (add_template_conv_candidate): Disable if there are
864 viable candidates.
865
2a54351b
JM
866 PR c++/71511
867 * typeck2.c (cxx_incomplete_type_diagnostic): Handle DECLTYPE_TYPE.
868
1019d191
JM
869 PR c++/71513
870 * pt.c (tsubst_attributes): Fix loop logic.
871
37a92c0c
JM
872 PR c++/71604
873 PR c++/54430
874 * parser.c (cp_parser_range_for): Modify IDENTIFIER_BINDING directly.
875 (cp_parser_simple_declaration): Diagnose type definition in
876 for-range-declaration.
877
aa30dfad
JM
878 PR c++/71711
879 * operators.def: Add *_FOLD_EXPR.
880 * cp-tree.h (FOLD_EXPR_P): Parenthesize.
881 * mangle.c (write_expression): Handle fold-expressions.
882 * pt.c (tsubst_unary_left_fold, tsubst_binary_left_fold)
883 (tsubst_unary_right_fold, tsubst_binary_right_fold): Handle
884 partial instantiation.
885
34bbc4c5
JM
886 PR c++/71814
887 * mangle.c (write_expression): Handle sizeof... an argument pack.
888
9ee2cecc
JM
889 PR c++/71718
890 * pt.c (push_tinst_level_loc): Set at_eof before fatal_error.
891
d1dfa20d
JM
892 PR c++/70824
893 * init.c (constant_value_1): Don't instantiated DECL_INITIAL of
894 artificial variables.
895
b1c9c068
CP
8962016-07-15 Cesar Philippidis <cesar@codesourcery.com>
897
898 * parser.c (cp_parser_oacc_declare): Don't scan for
899 GOMP_MAP_POINTER.
900 * semantics.c (handle_omp_array_sections): Mark data clauses with
901 GOMP_MAP_FORCE_{PRESENT,TO,FROM,TOFROM} as potentially having
902 zero-length subarrays.
903
9a54f10d
JM
9042016-07-11 Jason Merrill <jason@redhat.com>
905
906 * decl.c (store_parm_decls): Remove check for void parm.
907
d0cf395a
JM
9082016-07-08 Jason Merrill <jason@redhat.com>
909
72b3e203
JM
910 * cp-tree.h: Unpoison lvalue_p.
911 * call.c, class.c, constexpr.c, cvt.c, init.c, lambda.c, pt.c,
912 tree.c, typeck.c, typeck2.c: Use lvalue_p instead of
913 real_lvalue_p.
914
bb19d4af
JM
915 * tree.c (obvalue_p): Rename from lvalue_p.
916 (lvalue_p): Define for c-common.
917 * call.c, cp-tree.h, cvt.c, init.c: Adjust.
918 * typeck.c: Adjust.
919 (cp_build_addr_expr_1): Remove obsolete code.
920
c3edc633
JM
921 * tree.c (glvalue_p): Rename from lvalue_or_rvalue_with_address_p.
922 * call.c, cp-tree.h, typeck.c: Adjust.
923
0596c448
JM
924 * lambda.c (maybe_add_lambda_conv_op): Fix null object argument.
925
d0cf395a 926 P0145R2: Refining Expression Order for C++.
65a550b4
JM
927 * cp-gimplify.c (lvalue_has_side_effects): New.
928 (cp_gimplify_expr): Implement assignment ordering.
d0cf395a
JM
929 * call.c (op_is_ordered, build_over_call): Adjust for
930 -fargs-in-order renaming to -fstrong-eval-order.
931 * cp-gimplify.c (cp_gimplify_expr): Likewise.
932
842dc2e6
JJ
9332016-07-07 Jakub Jelinek <jakub@redhat.com>
934 Kai Tietz <ktietz70@googlemail.com>
935
936 PR c++/70869
937 PR c++/71054
938 * cp-gimplify.c (cp_genericize_r): For DECL_EXPR for non-static
939 artificial vars, genericize their initializers.
940
84ca3893
DM
9412016-07-05 David Malcolm <dmalcolm@redhat.com>
942
943 PR c++/62314
944 * parser.c (cp_parser_class_specifier_1): When reporting
945 missing semicolons, use a fixit-hint to suggest insertion
946 of a semicolon immediately after the closing brace,
947 offsetting the reported column accordingly.
948
79335075
JB
9492016-07-04 Jan Beulich <jbeulich@suse.com>
950
951 * lang-specs.h ("@c++-header"): Conditionalize "-o".
952
54d19c3b
TS
9532016-06-29 Thomas Schwinge <thomas@codesourcery.com>
954
955 * parser.c (cp_parser_pragma) <PRAGMA_OMP_CANCELLATION_POINT>:
956 Move pragma context checking into...
957 (cp_parser_omp_cancellation_point): ... here, and improve
958 diagnostic messages.
959 * semantics.c (finish_omp_cancel, finish_omp_cancellation_point):
960 Improve diagnostic messages.
961
e9ac1f86
JJ
9622016-06-28 Jakub Jelinek <jakub@redhat.com>
963
964 * Make-lang.in: Don't cat ../stage_current if it does not exist.
965
6e085858
JM
9662016-06-24 Jason Merrill <jason@redhat.com>
967
a25bd9e6
JM
968 P0145R2: Refining Expression Order for C++.
969 * typeck.c (cp_build_modify_expr): Leave COMPOUND_EXPR on LHS.
970
6e085858
JM
971 * tree.c (get_target_expr_sfinae): Handle bit-fields.
972 (build_target_expr): Call mark_rvalue_use.
973
00085092
JJ
9742016-06-24 Jakub Jelinek <jakub@redhat.com>
975
976 * call.c (magic_varargs_p): Return 3 for __builtin_*_overflow_p.
977 (build_over_call): For magic == 3, do no conversion only on 3rd
978 argument.
979
277d7ee0
AK
9802016-06-23 Andi Kleen <ak@linux.intel.com>
981
982 * Make-lang.in: Add support for autofdo.
983
e547455b
JM
9842016-06-21 Jason Merrill <jason@redhat.com>
985
2befd3f7
JM
986 * constraint.cc (constraints_satisfied_p): Keep as many levels of
987 args as our template has levels of parms.
988
e547455b
JM
989 * pt.c (template_parm_outer_level, uses_outer_template_parms): New.
990 (type_dependent_expression_p): Use uses_outer_template_parms.
991
842107e4
DM
9922016-06-20 David Malcolm <dmalcolm@redhat.com>
993
994 * parser.c (cp_parser_string_literal): Convert non-standard
995 concatenation error to directly use a rich_location, and
996 use that to add the location of the first literal to the
997 diagnostic.
998
c561b091
PC
9992016-06-17 Paolo Carlini <paolo.carlini@oracle.com>
1000
1001 * decl.c (validate_constexpr_redeclaration): Change pair of errors
1002 to error + inform.
1003 * error.c (dump_function_decl): Save the constexpr specifier too.
1004
ce209777
JJ
10052016-06-17 Jakub Jelinek <jakub@redhat.com>
1006
1007 * tree.c (builtin_valid_in_constant_expr_p): Test for
1008 DECL_BUILT_IN_CLASS equal to BUILT_IN_NORMAL instead of just
1009 DECL_BUILT_IN.
1010 (bot_manip): Likewise.
1011 * call.c (magic_varargs_p): Likewise.
1012
bf54f123
PC
10132016-06-17 Paolo Carlini <paolo.carlini@oracle.com>
1014
1015 * decl.c (grokfndecl): Change pair of errors to error + inform.
1016
92354dc7
JM
10172016-06-17 Jason Merrill <jason@redhat.com>
1018
1019 PR c++/71209
1020 * typeck.c (finish_class_member_access_expr): Avoid "not a base"
1021 warning when there are dependent bases.
1022
9b6a8d0f
JJ
10232016-06-17 Jakub Jelinek <jakub@redhat.com>
1024
1025 * semantics.c (handle_omp_array_sections_1): Don't ICE when
1026 processing_template_decl when checking for bitfields and unions.
1027 Look through REFERENCE_REF_P as base of COMPONENT_REF.
1028 (finish_omp_clauses): Look through REFERENCE_REF_P even for
1029 array sections with COMPONENT_REF bases.
1030
283635f9
JJ
10312016-06-16 Jakub Jelinek <jakub@redhat.com>
1032
1033 * parser.c (cp_parser_omp_var_list_no_open): Call
1034 convert_from_reference before cp_parser_postfix_dot_deref_expression.
1035 * semantics.c (finish_omp_clauses): Don't ICE when
1036 processing_template_decl when checking for bitfields and unions.
1037 Look through REFERENCE_REF_P as base of COMPONENT_REF.
1038
c5f914a3
PC
10392016-06-15 Paolo Carlini <paolo.carlini@oracle.com>
1040
1041 * decl.c (wrapup_globals_for_namespace): Use DECL_SOURCE_LOCATION and
1042 "%qF" in warning_at instead of "%q+F" in warning.
1043 (check_redeclaration_exception_specification): Likewise in pedwarn
1044 (and error, inform, for consistency).
1045 * call.c (joust): Likewise.
1046
b8911cb8
PC
10472016-06-15 Paolo Carlini <paolo.carlini@oracle.com>
1048
1049 PR c++/70202
1050 * decl.c (xref_basetypes): Revert r117839 changes; add fix-up
1051 code at the end of the for loop; also revert r159637 changes,
1052 add back the gcc_assert.
1053 * cp-tree.h (xref_basetypes): Adjust declaration.
1054 * parser.c (cp_parser_class_head): Adjust xref_basetypes call.
1055
6a3f203c
DM
10562016-06-14 David Malcolm <dmalcolm@redhat.com>
1057
1058 * search.c: Include spellcheck-tree.h rather than spellcheck.h.
1059
264757fb
DM
10602016-06-14 David Malcolm <dmalcolm@redhat.com>
1061
1062 * typeck.c: Include "gcc-rich-location.h".
1063 (finish_class_member_access_expr): Simplify fixit code by
1064 using gcc_rich_location::add_fixit_misspelled_id.
1065
4eb24e01
JM
10662016-06-14 Jason Merrill <jason@redhat.com>
1067
1068 P0145R2: Refining Expression Order for C++.
1069 * cp-tree.h (CALL_EXPR_OPERATOR_SYNTAX, CALL_EXPR_ORDERED_ARGS)
1070 (CALL_EXPR_REVERSE_ARGS): New.
1071 * call.c (build_new_op_1): Set them.
1072 (extract_call_expr, op_is_ordered): New.
1073 (build_over_call): Set CALL_EXPR_ORDERED_ARGS.
1074 * cp-gimplify.c (cp_gimplify_expr) [CALL_EXPR]: Handle new flags.
1075 * pt.c (tsubst_copy_and_build): Copy new flags.
1076 * semantics.c (simplify_aggr_init_expr): Likewise.
1077 * tree.c (build_aggr_init_expr): Likewise.
1078 (build_min_non_dep_op_overload): Likewise.
1079
abe7f828
JJ
10802016-06-14 Jakub Jelinek <jakub@redhat.com>
1081
a09c81b4
JJ
1082 PR c++/71528
1083 * decl.c (duplicate_decls): For DECL_INITIALIZED_P non-external
1084 olddecl vars, preserve their TREE_READONLY bit.
1085
abe7f828
JJ
1086 PR c++/71516
1087 * decl.c (complete_vars): Handle gracefully type == error_mark_node.
1088
acfadf06
PC
10892016-06-14 Paolo Carlini <paolo.carlini@oracle.com>
1090
1091 * typeck2.c (digest_init_r): Use EXPR_LOC_OR_LOC on init.
1092
f423253b
PC
10932016-06-13 Paolo Carlini <paolo.carlini@oracle.com>
1094
1095 * decl.c (grokdeclarator): Fix typo in pedwarn text.
1096
4b1ffdb1
TS
10972016-06-10 Thomas Schwinge <thomas@codesourcery.com>
1098
1099 PR c/71381
1100 * parser.c (cp_parser_omp_var_list_no_open) <OMP_CLAUSE__CACHE_>:
1101 Loosen checking.
1102
392a81b9
PC
11032016-06-09 Paolo Carlini <paolo.carlini@oracle.com>
1104
1105 PR c++/71465
1106 Revert:
1107 2016-06-04 Paolo Carlini <paolo.carlini@oracle.com>
1108
1109 PR c++/70202
1110 * parser.c (cp_parser_class_head): When xref_basetypes fails and
1111 emits an error do not zero the type.
1112
c8a71589
PC
11132016-06-08 Paolo Carlini <paolo.carlini@oracle.com>
1114
1115 * decl.c (maybe_deduce_size_from_array_init): Use
1116 DECL_SOURCE_LOCATION in error_at.
1117 (layout_var_decl): Likewise.
1118 (check_array_initializer): Likewise.
1119 (check_initializer): Likewise.
1120 (duplicate_decls, check_elaborated_type_specifier): Tidy.
1121
44a845ca
MS
11222016-06-08 Martin Sebor <msebor@redhat.com>
1123 Jakub Jelinek <jakub@redhat.com>
1124
1125 PR c++/70507
1126 PR c/68120
1127 * constexpr.c: Include gimple-fold.h.
1128 (cxx_eval_internal_function): New function.
1129 (cxx_eval_call_expression): Call it.
1130 (potential_constant_expression_1): Handle integer arithmetic
1131 overflow built-ins.
1132 * tree.c (builtin_valid_in_constant_expr_p): Handle
1133 BUILT_IN_{ADD,SUB,MUL}_OVERFLOW_P.
1134
f07063cc
PC
11352016-06-08 Paolo Carlini <paolo.carlini@oracle.com>
1136
1137 * pt.c (tsubst, case TYPENAME_TYPE): Don't delay checking the
1138 return value of tsubst_aggr_type for error_mark_node.
1139
2ef16b6e
JJ
11402016-06-08 Jakub Jelinek <jakub@redhat.com>
1141
1142 PR c++/71442
1143 * pt.c (tsubst_copy): Only set TREE_USED on DECLs.
1144
6f5bcd24
JJ
11452016-06-06 Jakub Jelinek <jakub@redhat.com>
1146 Patrick Palka <ppalka@gcc.gnu.org>
1147
1148 PR c++/70847
1149 PR c++/71330
1150 PR c++/71393
1151 * cp-gimplify.c (cp_fold_r): Set *walk_subtrees = 0 and return NULL
1152 right after cp_fold call if cp_fold has returned the same stmt
1153 already in some earlier cp_fold_r call.
1154 (cp_fold_function): Add pset automatic variable, pass its address
1155 to cp_walk_tree.
1156
909a11ad
PC
11572016-06-04 Paolo Carlini <paolo.carlini@oracle.com>
1158
1159 PR c++/70202
1160 * parser.c (cp_parser_class_head): When xref_basetypes fails and
1161 emits an error do not zero the type.
1162
c8572dd6
PP
11632016-06-03 Patrick Palka <ppalka@gcc.gnu.org>
1164
1165 PR c++/27100
1166 * decl.c (duplicate_decls): Properly copy the
1167 DECL_PENDING_INLINE_P, DECL_PENDING_INLINE_INFO and
1168 DECL_SAVED_FUNCTION_DATA fields from OLDDECL to NEWDECL.
1169
b605f663
CLT
11702016-06-03 Chung-Lin Tang <cltang@codesourcery.com>
1171
1172 * semantics.c (finish_omp_clauses): Mark OpenACC reduction
1173 arguments as addressable when async clause exists.
1174
bfeee8ac
JH
11752016-06-02 Jan Hubicka <jh@suse.cz>
1176
1177 * cp-gimplify.c (genericize_continue_stmt): Force addition of
1178 predict stmt.
1179
b872d729
PC
11802016-06-02 Paolo Carlini <paolo.carlini@oracle.com>
1181
1182 * decl.c (xref_tag_1): Change pairs of errors to error + inform.
1183 (start_enum): Likewise.
1184 * parser.c (cp_parser_class_head): Likewise.
1185
0633ee10
JJ
11862016-06-02 Jakub Jelinek <jakub@redhat.com>
1187
1188 PR c++/71372
1189 * cp-gimplify.c (cp_fold): For INDIRECT_REF, if the folded expression
1190 is INDIRECT_REF or MEM_REF, copy over TREE_READONLY, TREE_SIDE_EFFECTS
1191 and TREE_THIS_VOLATILE flags. For ARRAY_REF and ARRAY_RANGE_REF, copy
1192 over TREE_READONLY, TREE_SIDE_EFFECTS and TREE_THIS_VOLATILE flags
1193 to the newly built tree.
1194
f795360d
JM
11952016-05-31 Jason Merrill <jason@redhat.com>
1196
8d857afc
JM
1197 * pt.c (instantiate_decl): Avoid recalculation.
1198
1f032c53
JM
1199 PR c++/60095
1200 PR c++/69515
1201 PR c++/69009
1202 * pt.c (instantiate_template_1): Don't put the partial
1203 specialization in DECL_TI_TEMPLATE.
1204 (partial_specialization_p, impartial_args): Remove.
1205 (regenerate_decl_from_template): Add args parm.
1206 (instantiate_decl): Look up the partial specialization again.
1207
f795360d
JM
1208 PR c++/71227
1209 * pt.c (check_explicit_specialization): Give better diagnostic about
1210 specializing a hidden friend.
1211
c642d919
PC
12122016-05-31 Paolo Carlini <paolo.carlini@oracle.com>
1213
1214 PR c++/71248
1215 * decl.c (check_static_variable_definition): Use DECL_SOURCE_LOCATION
1216 to obtain correct locations; avoid redundant diagnostics on
1217 out-of-class definitions.
1218
12192016-05-30 Martin Sebor <msebor@redhat.com>
265149a6
MS
1220
1221 PR c++/71306
1222 * init.c (warn_placement_new_too_small): Handle placement new arguments
1223 that are elements of arrays more carefully. Remove a pointless loop.
1224
00631022
JJ
12252016-05-30 Jakub Jelinek <jakub@redhat.com>
1226
1227 PR c++/71349
1228 * parser.c (cp_parser_omp_for): Don't disallow nowait clause
1229 when combined with target construct.
1230 (cp_parser_omp_parallel): Pass cclauses == NULL as last argument
1231 to cp_parser_omp_all_clauses.
1232
b2f6675b
PC
12332016-05-30 Paolo Carlini <paolo.carlini@oracle.com>
1234
1235 PR c++/71238
1236 * lex.c (unqualified_name_lookup_error): Take a location too.
1237 (unqualified_fn_lookup_error): Take a cp_expr.
1238 * cp-tree.h (unqualified_name_lookup_error,
1239 unqualified_fn_lookup_error): Adjust declarations.
1240 * semantics.c (perform_koenig_lookup): Adjust
1241 unqualified_fn_lookup_error call, pass the location of
1242 the identifier too as part of a cp_expr.
1243
a59775a1
PC
12442016-05-30 Paolo Carlini <paolo.carlini@oracle.com>
1245
1246 PR c++/71099
1247 * parser.c (cp_parser_function_specifier_opt): Use current_class_type
1248 to improve the diagnostic about wrong uses of 'virtual'.
1249
036dc0a0
PC
12502016-05-29 Paolo Carlini <paolo.carlini@oracle.com>
1251
1252 PR c++/71105
1253 * lambda.c (maybe_add_lambda_conv_op): Early return also when
1254 LAMBDA_EXPR_DEFAULT_CAPTURE_MODE != CPLD_NONE.
1255
c8419aca
VV
12562016-05-28 Ville Voutilainen <ville.voutilainen@gmail.com>
1257
1258 Revert:
1259 PR c++/69855
1260 * name-lookup.c (pushdecl_maybe_friend_1): Push local function
1261 decls into the global scope after stripping template bits
1262 and setting DECL_ANTICIPATED.
1263
8008c4d2
PC
12642016-05-27 Paolo Carlini <paolo.carlini@oracle.com>
1265
1266 PR c++/60385
1267 * name-lookup.c (push_namespace): Return bool, false when pushdecl
1268 fails.
1269 * name-lookup.h (push_namespace): Adjust declaration.
1270 * parser.c (cp_parser_namespace_definition): Check push_namespace
1271 return value.
1272
7d67159b
VV
12732016-05-27 Ville Voutilainen <ville.voutilainen@gmail.com>
1274
1275 PR c++/69855
1276 * name-lookup.c (pushdecl_maybe_friend_1): Push local function
1277 decls into the global scope after stripping template bits
1278 and setting DECL_ANTICIPATED.
1279
7211a097
JJ
12802016-05-26 Jakub Jelinek <jakub@redhat.com>
1281
1282 * semantics.c (finish_omp_clauses) <case OMP_CLAUSE_SCHEDULE>: Warn
1283 if OMP_CLAUSE_SCHEDULE_CHUNK_EXPR is known not to be positive.
1284
cac177cf
PP
12852016-05-26 Patrick Palka <ppalka@gcc.gnu.org>
1286
1287 PR c++/70822
1288 PR c++/70106
1289 * cp-tree.h (REF_PARENTHESIZED_P): Make this flag apply to
1290 SCOPE_REFs too.
1291 * pt.c (tsubst_qualified_id): If REF_PARENTHESIZED_P is set
1292 on the qualified_id then propagate it to the resulting
1293 expression.
1294 (do_auto_deduction): Check REF_PARENTHESIZED_P on SCOPE_REFs
1295 too.
1296 * semantics.c (force_paren_expr): If given a SCOPE_REF, just set
1297 its REF_PARENTHESIZED_P flag.
1298
1b22fc54
JM
12992016-05-25 Jason Merrill <jason@redhat.com>
1300
1301 PR c++/71173
1302 PR c++/70522
1303 * cp-tree.h (enum tag_types): Add scope_type.
1304 * parser.c (cp_parser_class_name): Use scope_type.
1305 (prefer_type_arg): Handle scope_type.
1306 (cp_parser_lookup_name): Use prefer_type_arg.
1307 * name-lookup.c (lookup_qualified_name): Change bool is_type_p to
1308 int prefer_type, use lookup_flags.
1309 * name-lookup.h: Adjust.
1310
e46c7770
CP
13112016-05-24 Cesar Philippidis <cesar@codesourcery.com>
1312
1313 * parser.c (cp_parser_oacc_declare): Add support for
1314 GOMP_MAP_FIRSTPRIVATE_POINTER.
1315 * semantics.c (handle_omp_array_sections_1): Replace bool is_omp
1316 argument with enum c_omp_region_type ort. Don't privatize OpenACC
1317 non-static members.
1318 (handle_omp_array_sections): Replace bool is_omp argument with enum
1319 c_omp_region_type ort. Update call to handle_omp_array_sections_1.
1320 (finish_omp_clauses): Add specific errors and warning messages for
1321 OpenACC. Use firsrtprivate pointers for OpenACC subarrays. Update
1322 call to handle_omp_array_sections.
1323
66f90a17
JM
13242016-05-24 Jason Merrill <jason@redhat.com>
1325
1326 PR c++/70584
1327 * cp-gimplify.c (cp_fold_maybe_rvalue): Loop in case cp_fold
1328 returns a decl.
1329 (cp_fold) [INDIRECT_REF]: Don't fold to an rvalue.
1330
f65e97fd
MS
13312016-05-24 Martin Sebor <msebor@redhat.com>
1332
1333 PR c++/71147
1334 * decl.c (layout_var_decl, grokdeclarator): Use complete_or_array_type_p.
1335 * pt.c (instantiate_class_template_1): Try to complete the element
1336 type of a flexible array member.
1337 (can_complete_type_without_circularity): Handle arrays of unknown bound.
1338 * typeck.c (complete_type): Also complete the type of the elements of
1339 arrays with an unspecified bound.
1340
72f382fb
PC
13412016-05-24 Paolo Carlini <paolo.carlini@oracle.com>
1342
1343 PR c++/69872
1344 * typeck2.c (check_narrowing): Check pedwarn return value.
1345
7adb26f2
JJ
13462016-05-24 Jakub Jelinek <jakub@redhat.com>
1347
1348 PR c++/71257
1349 * semantics.c (finish_omp_clauses) <case OMP_CLAUSE_LINEAR>:
1350 For OMP_CLAUSE_LINEAR_REF don't require type to be
1351 integral or pointer.
1352
f17a223d
RB
13532016-05-24 Richard Biener <rguenther@suse.de>
1354
1355 PR middle-end/70434
1356 PR c/69504
1357 * expr.c (mark_exp_read): Handle VIEW_CONVERT_EXPR.
1358 * constexpr.c (cxx_eval_array_reference): Handle indexed
1359 vectors.
1360 * typeck.c (cp_build_array_ref): Adjust.
1361
9c62c1f3
JM
13622016-05-23 Jason Merrill <jason@redhat.com>
1363
4ddcdbf9
JM
1364 PR c++/70344
1365 * constexpr.c (cxx_eval_call_expression): Check for
1366 fun == current_function_decl again.
1367
290279c4
JM
1368 PR c++/70584
1369 * cp-gimplify.c (cp_fold) [INDIRECT_REF]: Call
1370 maybe_undo_parenthesized_ref.
1371
9c62c1f3
JM
1372 PR c++/70735
1373 * pt.c (tsubst_copy): Just return a local variable from
1374 non-template context. Don't call rest_of_decl_compilation for
1375 duplicated static locals.
1376 (tsubst_decl): Set DECL_CONTEXT of local static from another
1377 function.
1378
26d6ae55
PC
13792016-05-23 Paolo Carlini <paolo.carlini@oracle.com>
1380
1381 PR c++/70972
1382 * method.c (forward_parm): Use cp_build_reference_type.
1383
d6c9a06f
PC
13842016-05-23 Paolo Carlini <paolo.carlini@oracle.com>
1385
1386 PR c++/69095
1387 * parser.c (cp_parser_initializer): Use check_for_bare_parameter_packs.
1388
396a1d10
PC
13892016-05-23 Paolo Carlini <paolo.carlini@oracle.com>
1390
1391 * pt.c (check_for_bare_parameter_packs): Improve error message
1392 location for expressions.
1393
4727d4c6
NS
13942016-05-20 Nathan Sidwell <nathan@acm.org>
1395
1396 * constexpr.c (cxx_bind_parameters_in_call): Avoid gratuitous if
1397 ... goto.
1398 (cxx_eval_call_expression): Fix comment grammar.
1399
ef98d365
PC
14002016-05-20 Paolo Carlini <paolo.carlini@oracle.com>
1401
1402 PR c++/70572
1403 * decl.c (cp_finish_decl): Check do_auto_deduction return value
1404 and return immediately in case of erroneous code.
1405
2a5569fa
MP
14062016-05-19 Marek Polacek <polacek@redhat.com>
1407
1408 PR c++/71075
1409 * pt.c (unify_template_argument_mismatch): Use %qE instead of %qD.
1410
a7dd5069
JM
14112016-05-19 Jason Merrill <jason@redhat.com>
1412
1413 PR c++/10200
1414 * pt.c (fn_type_unification): Add outer template args if needed.
1415 (type_unification_real): Handle getting full args.
1416
5e9a5385
DM
14172016-05-19 David Malcolm <dmalcolm@redhat.com>
1418
1419 PR c++/71184
1420 * parser.c (cp_parser_operator): For array new/delete, check that
1421 cp_parser_require returned a non-NULL token before dereferencing
1422 it.
1423
4bf8dbe1
BE
14242016-05-19 Bernd Edlinger <bernd.edlinger@hotmail.de>
1425
1426 * decl.c (finish_enum_value_list): Use the specified mode.
1427
8f74423d
JM
14282016-05-18 Jason Merrill <jason@redhat.com>
1429
1430 * pt.c (value_dependent_expression_p): Tweak new cases to better
1431 match the wording in the standard.
1432
c584aca6
PC
14332016-05-18 Paolo Carlini <paolo.carlini@oracle.com>
1434
1435 PR c++/69793
1436 * parser.c (cp_parser_template_id): Don't call cp_lexer_peek_nth_token
1437 when the previous cp_lexer_peek_token returns CPP_EOF.
1438
20309c6e
PC
14392016-05-18 Paolo Carlini <paolo.carlini@oracle.com>
1440
1441 PR c++/70466
1442 * call.c (convert_like_real): Check that we are actually converting
1443 from an init list.
1444
8fad45f5
MW
14452016-05-16 Matthew Wahab <matthew.wahab@arm.com>
1446
1447 * decl.c (grokdeclarator): Remove errmsg and use of
1448 targetm.invalid_return_type.
1449 (grokparms): Remove errmsg and use of
1450 targetm.invalid_parameter_type.
1451
827e5d3f
JM
14522016-05-13 Jason Merrill <jason@redhat.com>
1453
23cb7266
JM
1454 PR c++/10200
1455 PR c++/69753
1456 * pt.c (tsubst_decl): Use uses_template_parms.
1457 (instantiate_template_1): Handle non-dependent calls in templates.
1458 (value_dependent_expression_p): Handle BASELINK, FUNCTION_DECL.
1459 (type_dependent_expression_p): Only consider innermost template args.
1460 (dependent_template_arg_p): Check enclosing class of a template here.
1461 (dependent_template_p): Not here.
1462 (type_dependent_object_expression_p): New.
1463 * typeck.c (finish_class_member_access_expr): Use it.
1464 * parser.c (cp_parser_postfix_expression): Use it.
1465 (cp_parser_postfix_dot_deref_expression): Use it. Use comptypes
1466 to detect the current instantiation.
1467 (cp_parser_lookup_name): Really implement DR 141.
1468 * search.c (lookup_field_r): Prefer a dependent using-declaration.
1469 (any_dependent_bases_p): Split out from...
1470 * name-lookup.c (do_class_using_decl): ...here.
1471 * call.c (build_new_method_call_1): Use it.
1472 * semantics.c (finish_call_expr): 'this' doesn't make a call dependent.
1473 * tree.c (non_static_member_function_p): Remove.
1474 * typeck2.c (build_x_arrow): Use dependent_scope_p.
1475
827e5d3f
JM
1476 * parser.c (cp_parser_postfix_dot_deref_expression): Use
1477 complete_type_or_else for unknown_type_node, too.
1478
4f2e1536
MP
14792016-05-12 Marek Polacek <polacek@redhat.com>
1480
1481 PR c/70756
1482 * call.c (build_new_op_1): Pass LOC to cp_build_modify_expr.
1483 * cp-tree.h (cp_build_modify_expr): Update declaration.
1484 (cxx_incomplete_type_error, cxx_incomplete_type_diagnostic): New inline
1485 overloads.
1486 * cp-ubsan.c (cp_ubsan_dfs_initialize_vtbl_ptrs): Pass INPUT_LOCATION to
1487 cp_build_modify_expr.
1488 * decl2.c (set_guard): Likewise.
1489 (handle_tls_init): Likewise.
1490 * init.c (perform_member_init): Likewise.
1491 (expand_virtual_init): Likewise.
1492 (build_new_1): Likewise.
1493 (build_vec_delete_1): Likewise.
1494 (get_temp_regvar): Likewise.
1495 (build_vec_init): Likewise.
1496 * method.c (do_build_copy_assign): Likewise.
1497 (assignable_expr): Likewise.
1498 * semantics.c (finish_omp_for): Likewise.
1499 * typeck.c (cp_build_binary_op): Pass LOCATION to pointer_diff and
1500 cp_pointer_int_sum.
1501 (cp_pointer_int_sum): Add location parameter. Pass it down to
1502 pointer_int_sum.
1503 (pointer_diff): Add location parameter. Use it.
1504 (build_modify_expr): Pass location down to cp_build_modify_expr.
1505 (cp_build_modify_expr): Add location parameter. Use it.
1506 (build_x_modify_expr): Pass location down to cp_build_modify_expr.
1507 * typeck2.c (cxx_incomplete_type_diagnostic,
1508 cxx_incomplete_type_error): Add location parameter.
1509
5c3a10fb
MP
15102016-05-11 Marek Polacek <polacek@redhat.com>
1511
1512 PR c++/71024
1513 * decl.c (duplicate_decls): Call diagnose_mismatched_decls.
1514
351f85c5
JJ
15152016-05-05 Jakub Jelinek <jakub@redhat.com>
1516
1517 * parser.c (cp_parser_selection_statement): For RID_SWITCH,
1518 pass if_p instead of NULL to cp_parser_implicitly_scoped_statement.
1519
deef7113
MP
15202016-05-04 Marek Polacek <polacek@redhat.com>
1521
1522 * parser.c (cp_parser_selection_statement): Replace OPT_Wparentheses
1523 with OPT_Wdangling_else.
1524
b25aad5f
MS
15252016-05-03 Martin Sebor <msebor@redhat.com>
1526
1527 PR c++/66561
1528 * tree.c (builtin_valid_in_constant_expr_p): Treat BUILT_IN_FILE,
1529 BUILT_IN_FUNCTION, and BUILT_IN_LINE as constant expressions.
1530
79ce98bc
MP
15312016-05-03 Marek Polacek <polacek@redhat.com>
1532
1533 PR c/70859
1534 * call.c (build_cxx_call): Pass location and vNULL down to
1535 check_builtin_function_arguments.
1536
fb2647aa
RB
15372016-05-03 Richard Biener <rguenther@suse.de>
1538
1539 * Make-lang.in (cc1plus-checksum.c): For stage-final re-use
1540 the checksum from the previous stage.
1541
bc1aee87
DM
15422016-05-02 David Malcolm <dmalcolm@redhat.com>
1543
1544 PR c++/62314
1545 * typeck.c (finish_class_member_access_expr): When
1546 giving a hint about a possibly-misspelled member name,
1547 add a fix-it replacement hint.
1548
77886428
CP
15492016-05-02 Cesar Philippidis <cesar@codesourcery.com>
1550
1551 * cp-tree.h (finish_omp_clauses): Update prototype.
1552 * parser.c (cp_parser_oacc_all_clauses): Update call to
1553 finish_omp_clauses.
1554 (cp_parser_omp_all_clauses): Likewise.
1555 (cp_parser_omp_for_loop): Likewise.
1556 (cp_omp_split_clauses): Likewise.
1557 (cp_parser_oacc_cache): Likewise.
1558 (cp_parser_oacc_loop): Likewise.
1559 (cp_parser_omp_declare_target):
1560 (cp_parser_cilk_simd_all_clauses): Likewise.
1561 (cp_parser_cilk_for): Likewise.
1562 * pt.c (tsubst_omp_clauses): Replace allow_fields and declare_simd
1563 arguments with enum c_omp_region_type ort.
1564 (tsubst_omp_clauses): Update calls to finish_omp_clauses.
1565 (tsubst_omp_attribute): Update calls to tsubst_omp_clauses.
1566 (tsubst_omp_for_iterator): Update calls to finish_omp_clauses.
1567 (tsubst_expr): Update calls to tsubst_omp_clauses.
1568 * semantics.c (finish_omp_clauses): Replace bool arguments
1569 allow_fields, declare_simd, and is_cilk with bitmask ort.
1570 (finish_omp_for): Update call to finish_omp_clauses.
1571
474e0129
DM
15722016-05-02 David Malcolm <dmalcolm@redhat.com>
1573
1574 PR c++/62314
1575 * parser.c (cp_parser_class_head): Capture the start location;
1576 use it to emit a fix-it insertion hint when complaining
1577 about missing "template <> " in explicit specializations.
1578
8de73453
RS
15792016-05-02 Richard Sandiford <richard.sandiford@arm.com>
1580
1581 * init.c (build_new_1): Use shift operators instead of wi:: shifts.
1582
02673c66
RB
15832016-05-02 Richard Biener <rguenther@suse.de>
1584
1585 * decl.c (grokdeclarator): Properly insert a DECL_EXPR for
1586 anonymous VLAs.
1587
411e5c67
PC
15882016-04-29 Paolo Carlini <paolo.carlini@oracle.com>
1589
1590 PR c++/66644
1591 * class.c (check_field_decl): Remove final int* parameter, change
1592 the return type to bool; fix logic in order not to reject multiple
1593 initialized fields in anonymous struct.
1594 (check_field_decls): Adjust call.
1595
e7ff0319
CP
15962016-04-29 Cesar Philippidis <cesar@codesourcery.com>
1597
1598 PR middle-end/70626
1599 * parser.c (cp_parser_oacc_loop): Don't augment mask with
1600 OACC_LOOP_CLAUSE_MASK.
1601 (cp_parser_oacc_kernels_parallel): Update call to
1602 c_oacc_split_loop_clauses.
1603
babaa9df
JM
16042016-04-28 Jason Merrill <jason@redhat.com>
1605
b632761d
JM
1606 Implement C++17 [[nodiscard]] attribute.
1607 PR c++/38172
1608 PR c++/54379
1609 * parser.c (cp_parser_std_attribute): Handle [[nodiscard]].
1610 * tree.c (handle_nodiscard_attribute): New.
1611 (cxx_attribute_table): Add [[nodiscard]].
1612 * cvt.c (cp_get_fndecl_from_callee, cp_get_callee_fndecl): New.
1613 (maybe_warn_nodiscard): New.
1614 (convert_to_void): Call it.
1615
babaa9df
JM
1616 * cvt.c (cp_get_callee): New.
1617 * constexpr.c (get_function_named_in_call): Use it.
1618 * cxx-pretty-print.c (postfix_expression): Use it.
1619 * except.c (check_noexcept_r): Use it.
1620 * method.c (check_nontriv): Use it.
1621 * tree.c (build_aggr_init_expr): Use it.
1622 * cp-tree.h: Declare it.
1623
6bc2bb18
RB
16242015-04-27 Ryan Burn <contact@rnburn.com>
1625 Jeff Law <law@redhat.com>
1626
1627 PR c++/69024
1628 PR c++/68997
1629 * cp-gimplify.c (cp_gimplify_expr): Call cilk_cp_detect_spawn_and_unwrap
1630 instead of cilk_detect_spawn_and_unwrap.
1631 * cp-cilkplus.c (is_conversion_operator_function_decl_p): New.
1632 (find_spawn): New.
1633 (cilk_cp_detect_spawn_and_unwrap): New.
1634 * lambda.c: Include cp-cilkplus.h.
1635 * parser.c: Include cp-cilkplus.h.
1636 * cp-tree.h (cpp_validate_cilk_plus_loop): Move prototype into...
1637 * cp-cilkpus.h: New file.
1638
3c98ff9b
NS
16392016-04-27 Nathan Sidwell <nathan@acm.org>
1640
1641 * constexpr.c (get_fundef_copy): Use the original function for
1642 non-recursive evaluations.
1643 (save_fundef_copy): Always expect a slot to be available.
1644
c1e1f433
BS
16452016-04-27 Bernd Schmidt <bschmidt@redhat.com>
1646
1647 * parser.c (cp_parser_postfix_expression): Call
1648 warn_for_memset instead of warning directly here.
1649
843ce8ab
PP
16502016-04-26 Patrick Palka <ppalka@gcc.gnu.org>
1651
1652 PR c++/70241
1653 * decl.c (build_enumerator): Set current_access_specifier when
1654 declaring an enumerator belonging to an in-class enumeration.
1655 * parser.c (cp_parser_check_access_in_redecleration): Also
1656 consider in-class enumerations.
1657
5a0802ea
MP
16582016-04-26 Marek Polacek <polacek@redhat.com>
1659
1660 PR c++/70744
1661 * call.c (build_conditional_expr_1): Call cp_stabilize_reference
1662 instead of stabilize_reference.
1663 (build_over_call): Likewise.
1664 * cp-tree.h (cp_stabilize_reference): Declare.
1665 * tree.c (cp_stabilize_reference): New function.
1666 * typeck.c (cp_build_unary_op): Call cp_stabilize_reference instead of
1667 stabilize_reference.
1668 (unary_complex_lvalue): Likewise.
1669 (cp_build_modify_expr): Likewise.
1670
7db11a5a
JJ
16712016-04-26 Jakub Jelinek <jakub@redhat.com>
1672
1673 PR bootstrap/70704
1674 * pt.c (build_non_dependent_expr): Use flag_checking > 1 instead of
1675 just flag_checking.
1676
d067e05f
JM
16772016-04-25 Jason Merrill <jason@redhat.com>
1678
1679 * tree.c (std_attribute_table): New.
1680 (init_tree): Register it.
1681
76f9244e
JM
16822016-04-22 Jason Merrill <jason@redhat.com>
1683
1684 * parser.c (cp_parser_perform_range_for_lookup): Decay the array.
1685
5c712250
PP
16862016-04-21 Patrick Palka <ppalka@gcc.gnu.org>
1687
1688 * name-lookup.c (free_saved_scope): New free list of saved_scope
1689 structures.
1690 (push_to_top_level): Attempt to reuse a saved_scope struct
1691 from free_saved_scope instead of allocating a new one each time.
1692 (pop_from_top_level_1): Chain the now-unused saved_scope structure
1693 onto free_saved_scope.
1694
20700098
PC
16952016-04-21 Paolo Carlini <paolo.carlini@oracle.com>
1696
1697 PR c++/70540
1698 * semantics.c (process_outer_var_ref): Unconditionally return
1699 error_mark_node when mark_used returns false.
1700
aedf4e12
MP
17012016-04-21 Marek Polacek <polacek@redhat.com>
1702
1703 PR c++/70513
1704 * parser.c (cp_parser_enum_specifier): Check and possibly error for
1705 extra qualification.
1706
ee392fc2
NS
17072016-04-20 Nathan Sidwell <nathan@acm.org>
1708
1709 PR c++/55635
1710 * init.c (build_vec_delete_1): Protect operator delete call in try
1711 finally.
1712 (build_delete): Likewise.
1713 * optimize.c (build_delete_destructor_body): Likewise.
1714
477d4906
IV
17152016-04-20 Ilya Verbin <ilya.verbin@intel.com>
1716
1717 PR c++/69363
1718 * cp-tree.h (finish_omp_clauses): Add new default argument.
1719 * parser.c (cp_parser_cilk_simd_all_clauses): Use finish_omp_clauses
1720 instead of c_finish_cilk_clauses.
1721 * semantics.c (finish_omp_clauses): Add new argument. Allow
1722 floating-point variables in the linear clause for Cilk Plus.
1723
323af7cf
NS
17242016-04-20 Nathan Sidwell <nathan@acm.org>
1725
1726 * semantics.c (finish_compound_lteral): Don't wrap VECTOR_TYPEs in a
1727 TARGET_EXPR.
1728
3ba065e8
JM
17292016-04-19 Jason Merrill <jason@redhat.com>
1730
76f39440
JM
1731 PR c++/66543
1732 * expr.c (mark_exp_read): Handle NON_DEPENDENT_EXPR.
1733 * pt.c (make_pack_expansion): Call mark_exp_read.
1734 * semantics.c (finish_id_expression): Call mark_type_use in
1735 unevaluated context.
1736
218e9dde
JM
1737 DR 2137
1738 * call.c (implicit_conversion): If we choose a copy constructor
1739 for list-initialization from the same type, the conversion is an
1740 exact match.
1741
06ec22b7
JM
1742 * constexpr.c (breaks): Handle EXIT_EXPR.
1743 (cxx_eval_loop_expr): Handle COMPOUND_EXPR body.
1744 (cxx_eval_constant_expression): Handle EXIT_EXPR, improve handling
1745 of COMPOUND_EXPR.
1746
f937929e
JM
1747 PR c++/68206
1748 PR c++/68530
1749 * constexpr.c (potential_constant_expression_1): Handle LOOP_EXPR
1750 and GOTO_EXPR.
1751
b1e47084
JM
1752 * pt.c (tsubst_expr): Remove shadowing declaration.
1753 (tsubst_pack_expansion): Add assert.
1754
1755 * semantics.c (add_decl_expr): Use DECL_SOURCE_LOCATION.
1756
3ba065e8
JM
1757 PR c++/70522
1758 * name-lookup.c (qualified_lookup_using_namespace): Look through
1759 hidden names.
1760
fe37c7af
MM
17612016-04-18 Michael Matz <matz@suse.de>
1762
1763 * class.c (build_vtable): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
1764 (layout_class_type): Ditto.
1765 (build_base_field): Use SET_DECL_ALIGN.
1766 (fixup_attribute_variants): Use SET_TYPE_ALIGN.
1767 * decl.c (duplicate_decls): Use SET_DECL_ALIGN.
1768 (record_unknown_type): Use SET_TYPE_ALIGN.
1769 (cxx_init_decl_processing): Ditto.
1770 (copy_type_enum): Ditto.
1771 (grokfndecl): Use SET_DECL_ALIGN.
1772 (copy_type_enum): Use SET_TYPE_ALIGN.
1773 * pt.c (instantiate_class_template_1): Use SET_TYPE_ALIGN.
1774 (tsubst): Ditto.
1775 * tree.c (cp_build_qualified_type_real): Use SET_TYPE_ALIGN.
1776 * lambda.c (maybe_add_lambda_conv_op): Use SET_DECL_ALIGN.
1777 * method.c (implicitly_declare_fn): Use SET_DECL_ALIGN.
1778 * rtti.c (emit_tinfo_decl): Ditto.
1779
81c160c6
JM
17802016-04-18 Jason Merrill <jason@redhat.com>
1781
1782 PR c++/70690
1783 PR c++/70528
1784 * class.c (type_maybe_constexpr_default_constructor): New.
1785 (type_has_constexpr_default_constructor): Revert.
1786
a4186552
SL
17872016-04-16 Sandra Loosemore <sandra@codesourcery.com>
1788
1789 PR target/1078
1790
1791 * tree.c (cxx_attribute_table): Remove "com_interface" entry.
1792 (handle_com_interface_attribute): Delete.
1793
a7b12f1f
JM
17942016-04-15 Jason Merrill <jason@redhat.com>
1795
3d8dfcb4
JM
1796 PR c++/70685
1797 * constexpr.c (get_fundef_copy): Handle null *slot.
1798
a7b12f1f
JM
1799 PR c++/70505
1800 * pt.c (tsubst_baselink): Give the new TEMPLATE_ID_EXPR
1801 unknown_type_node, too.
1802
70f4fdeb
JJ
18032016-04-15 Jason Merrill <jason@redhat.com>
1804 Nathan Sidwell <nathan@acm.org>
1805
1806 PR c++/70594
1807 * constexpr.c (constexpr_call_table): Preserve in GC.
1808 (struct fundef_copy, struct fundef_copies_table_t): Delete.
1809 (fundef_copies_table): Preserve in GC. Change to pointer to
1810 tree->tree hash.
1811 (maybe_initialize_fundef_copies_table): Adjust.
1812 (get_fundef_copy): Return a TREE_LIST. Use non-inserting search.
1813 (save_fundef_copy): Adjust for a TREE_LIST.
1814 (cxx_eval_call_expression): Adjust for a fundef_copy TREE_LIST.
1815 (fini_constexpr): New.
1816 * cp-tree.h (fini_constexpr): Declare.
1817 * decl2.c (c_parse_final_cleanups): Call fini_constexpr.
1818
dda1bf61
JJ
18192016-04-15 Jakub Jelinek <jakub@redhat.com>
1820
1821 PR c/70436
1822 * parser.c (cp_parser_pragma): Add IF_P argument, pass it down
1823 where needed.
1824 (cp_parser_declaration_seq_opt, cp_parser_member_specification_opt,
1825 cp_parser_objc_interstitial_code, cp_parser_omp_declare_simd,
1826 cp_parser_oacc_routine): Adjust cp_parser_pragma callers.
1827 (cp_parser_statement): Likewise. Adjust cp_parser_cilk_for caller.
1828 (cp_parser_omp_structured_block): Add IF_P argument, pass it down to
1829 cp_parser_statement.
1830 (cp_parser_oacc_data, cp_parser_oacc_host_data, cp_parser_oacc_loop,
1831 cp_parser_oacc_kernels_parallel, cp_parser_omp_critical,
1832 cp_parser_omp_simd, cp_parser_omp_for, cp_parser_omp_master,
1833 cp_parser_omp_ordered, cp_parser_omp_parallel, cp_parser_omp_single,
1834 cp_parser_omp_task, cp_parser_omp_taskgroup, cp_parser_omp_distribute,
1835 cp_parser_omp_teams, cp_parser_omp_target_data, cp_parser_omp_target,
1836 cp_parser_omp_taskloop, cp_parser_omp_construct,
1837 cp_parser_cilk_grainsize, cp_parser_cilk_simd, cp_parser_cilk_for):
1838 Add IF_P argument, pass it down where needed.
1839 (cp_parser_omp_for_loop): Likewise. Clear IF_P if nbraces.
1840 (cp_parser_omp_sections_scope): Adjust cp_parser_omp_structured_block
1841 calls.
1842
3ae9a8b7
JM
18432016-04-14 Jason Merrill <jason@redhat.com>
1844
8e718ecb
JM
1845 PR c++/70494
1846 * decl.c (cxx_maybe_build_cleanup): Handle non-decls.
1847 * typeck2.c (split_nonconstant_init_1): Use it.
1848
26144dde
JM
1849 PR c++/70528
1850 * class.c (type_has_constexpr_default_constructor): Return true
1851 for an implicitly declared constructor.
1852
65bddf28
JM
1853 PR c++/70622
1854 * parser.c (cp_parser_init_declarator): Add auto_result parm.
1855 (cp_parser_simple_declaration): Pass it.
1856 (strip_declarator_types): New.
1857
d25a101f
JM
1858 PR c++/70543
1859 * pt.c (value_dependent_expression_p) [VAR_DECL]: A type-dependent
1860 initializer also makes the variable value-dependent.
1861
3ae9a8b7
JM
1862 PR c++/70648
1863 * constexpr.c (cxx_eval_store_expression): Also copy
1864 CONSTRUCTOR_NO_IMPLICIT_ZERO.
1865
d8747845
MS
18662016-04-14 Martin Sebor <msebor@redhat.com>
1867
1868 PR c++/69517
1869 PR c++/70019
1870 PR c++/70588
1871 * cp-tree.h, decl.c, init.c, typeck2.c: Revert.
1872
9f285ccb
JM
18732016-04-14 Jason Merrill <jason@redhat.com>
1874
1875 * call.c, decl.c, error.c, cp-tree.h, decl.c: Revert empty
1876 parameter ABI change.
1877
342fac95
MS
18782016-04-13 Martin Sebor <msebor@redhat.com>
1879
1880 PR c++/69517
1881 PR c++/70019
1882 PR c++/70588
1883 * cp-tree.h (throw_bad_array_length, build_vla_check): Declare new
1884 functions.
1885 * decl.c (check_initializer, cp_finish_decl): Call them.
1886 (reshape_init_r): Reject incompletely braced intializer-lists
1887 for VLAs.
1888 * init.c (throw_bad_array_length, build_vla_check)
1889 (build_vla_size_check, build_vla_init_check): Define new functions.
1890 * typeck2.c (split_nonconstant_init_1): Use variably_modified_type_p()
1891 to detect a VLA.
1892 (store_init_value): Same.
1893
5655267c
JM
18942016-04-13 Jason Merrill <jason@redhat.com>
1895
2ee35bea
JM
1896 Warn about empty parameter ABI with -Wabi=9.
1897 * call.c (empty_class_msg, mark_for_abi_warning)
1898 (warn_empty_class_abi): New.
1899 (build_call_a): Use them.
1900 * decl.c (store_parm_decls): Use mark_for_abi_warning.
1901 * error.c (pp_format_to_string): New.
1902
5655267c
JM
1903 Pass empty class parameters like C.
1904 * call.c (pass_as_empty_struct, empty_class_arg): New.
1905 (type_passed_as, build_x_va_arg): Use pass_as_empty_struct.
1906 (build_call_a): Use empty_class_arg.
1907 * cp-tree.h (CPTI_EMPTY_STRUCT, empty_struct_type): New.
1908 * decl.c (cxx_init_decl_processing): Create empty_struct_type.
1909
0d9cdbdd
JM
19102016-04-13 Jason Merrill <jason@redhat.com>
1911
1912 PR c++/70627
1913 * decl.c (start_enum): Don't change an existing ENUM_UNDERLYING_TYPE.
1914
545a4139
PC
19152016-04-13 Paolo Carlini <paolo.carlini@oracle.com>
1916
1917 PR c++/70635
1918 * pt.c (resolve_typename_type): Fix typos in infinite recursion
1919 avoidance mechanism.
1920
eb07f187
JM
19212016-04-13 Jason Merrill <jason@redhat.com>
1922
463d91c6
JM
1923 PR c++/70634
1924 * pt.c (instantiation_dependent_uneval_expression_p): Split out
1925 from instantiation_dependent_expression_p.
1926 (value_dependent_expression_p): Use it for unevaluated operands.
1927 (instantiation_dependent_r): Don't check value-dependence.
1928 (instantiation_dependent_expression_p): Check
1929 value-dependence of the expression as a whole.
1930 * cp-tree.h: Declare instantiation_dependent_uneval_expression_p.
1931 * semantics.c (finish_decltype_type): Use it.
1932
eb07f187
JM
1933 * constexpr.c (potential_nondependent_constant_expression): New.
1934 (potential_nondependent_static_init_expression): New.
1935 (maybe_constant_value_1, fold_non_dependent_expr)
1936 (maybe_constant_init): Use them.
1937 * pt.c (instantiate_non_dependent_expr_sfinae)
1938 (instantiate_non_dependent_or_null, convert_nontype_argument): Use
1939 them.
1940 * cp-tree.h: Declare them.
1941
3eddc1c9
JJ
19422016-04-13 Jakub Jelinek <jakub@redhat.com>
1943
1944 PR c++/70594
1945 * decl.c (pop_labels_1): Removed.
1946 (note_label, sort_labels): New functions.
1947 (pop_labels): During named_labels traversal, just push the slot
1948 pointers into a vector, then qsort it by DECL_UID and only then
1949 call pop_label and chain it into BLOCK_VARS.
1950
9d409934
JM
19512016-04-13 Jason Merrill <jason@redhat.com>
1952
1953 PR c++/70615
1954 * cp-gimplify.c (cp_genericize_r): Expand PTRMEM_CST here.
1955 (cp_gimplify_expr): Not here.
1956
92886d3e
PP
19572016-04-12 Patrick Palka <ppalka@gcc.gnu.org>
1958
1959 PR c++/70610
1960 * tree.c (lvalue_kind) [NON_DEPENDENT_EXPR]: Unconditionally
1961 recurse into it.
1962 * typeck.c (build_x_conditional_expr): Unconditionally remember
1963 that the result is an lvalue or xvalue.
1964
08d6d8bb
JM
19652016-04-12 Jason Merrill <jason@redhat.com>
1966
1967 * class.c (is_really_empty_class): A zero-length array is empty.
1968 An unnamed bit-field doesn't make a class non-empty.
1969
2b2f52bc
PC
19702016-04-12 Paolo Carlini <paolo.carlini@oracle.com>
1971
1972 PR c++/68722
1973 * parser.c (cp_parser_cache_defarg): When file ends in default
1974 argument simply return error_mark_node.
1975
d4619dc1
NS
19762016-04-12 Nathan Sidwell <nathan@acm.org>
1977
1978 PR c++/70501
1979 * constexpr.c (cxx_eval_bare_aggregate): Handle VECTOR_TYPE
1980 similarly to PMF.
1981
a9c2f3d9
JM
19822016-04-11 Jason Merrill <jason@redhat.com>
1983
1984 * mangle.c (decl_is_template_id): The template itself counts as a
1985 template-id.
1986
56cfb596
PP
19872016-04-08 Patrick Palka <ppalka@gcc.gnu.org>
1988
1989 PR c++/70590
1990 PR c++/70452
1991 * constexpr.c (cxx_eval_outermost_expression): Call unshare_expr
1992 on the result if it's not a CONSTRUCTOR.
1993
0146e25f
PP
19942016-04-07 Patrick Palka <ppalka@gcc.gnu.org>
1995
1996 PR c++/70452
1997 * constexpr.c (find_constructor): New function.
1998 (unshare_constructor): New function.
1999 (cxx_eval_call_expression): Use unshare_constructor instead of
2000 unshare_expr.
2001 (find_array_ctor_elt): Likewise.
2002 (cxx_eval_vec_init_1): Likewise.
2003 (cxx_eval_store_expression): Likewise.
2004 (cxx_eval_constant_expression): Likewise.
2005
6b37bdaf
PP
20062016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
2007
2008 PR c/70436
2009 * cp-tree.h (FOR_EACH_CLONE): Restructure macro to avoid
2010 potentially generating a future -Wparentheses warning in its
2011 callers.
2012
469abfd2
JM
20132016-04-06 Jason Merrill <jason@redhat.com>
2014
2015 * class.c (check_abi_tags): Fix function template handling.
2016
c08d28ac
NS
20172016-04-05 Nathan Sidwell <nathan@acm.org>
2018
2019 PR c++/70512
2020 * class.c (fixup_may_alias): New.
2021 (fixup_attribute_variants): Call it.
2022
c0daf32d
PP
20232016-04-05 Patrick Palka <ppalka@gcc.gnu.org>
2024
2025 PR c++/70452
2026 * constexpr.c (struct fundef_copy): New struct.
2027 (struct fundef_copies_table_t): New struct.
2028 (fundef_copies_table): New static variable.
2029 (maybe_initialize_fundef_copies_table): New static function.
2030 (get_fundef_copy): New static function.
2031 (save_fundef_copy): New static function.
2032 (cxx_eval_call_expression): Use get_fundef_copy, and
2033 save_fundef_copy.
2034 (constexpr_call_table): Add "deletable" GTY marker.
2035
7a7ac32a
PP
20362016-04-05 Patrick Palka <ppalka@gcc.gnu.org>
2037
2038 PR c++/70452
2039 * cp-tree.h (class cache_map): Remove.
2040 * constexpr.c (cv_cache): Change type to
2041 GTY((deletable)) hash_map<tree, tree> *.
2042 (maybe_constant_value): Adjust following the change to cv_cache.
2043 (clear_cv_cache): New static function.
2044 (clear_cv_and_fold_caches): Use it.
2045 * cp-gimplify.c (fold_cache): Change type to
2046 GTY((deletable)) hash_map<tree, tree> *.
2047 (clear_fold_cache): Adjust following the change to fold_cache.
2048 (cp_fold): Likewise.
2049
abdc16c8
MS
20502016-04-02 Martin Sebor <msebor@redhat.com>
2051
2052 PR c++/67376
2053 PR c++/70170
2054 PR c++/70172
2055 PR c++/70228
2056 * constexpr.c (diag_array_subscript): New function.
2057 (cxx_eval_array_reference): Detect out of bounds array indices.
2058
ddd6d421
JM
20592016-04-01 Jason Merrill <jason@redhat.com>
2060
2061 PR c++/70449
2062 PR c++/70344
2063 * pt.c (instantiate_decl): A function isn't fully defined if
2064 DECL_INITIAL is error_mark_node.
2065 * constexpr.c (cxx_eval_call_expression): Likewise.
2066
0f875435
JJ
20672016-04-01 Jakub Jelinek <jakub@redhat.com>
2068 Marek Polacek <polacek@redhat.com>
2069
2070 PR c++/70488
2071 * init.c (warn_placement_new_too_small): Test whether
2072 DECL_SIZE_UNIT or TYPE_SIZE_UNIT are integers that fit into uhwi.
2073
f9bf89bb
NS
20742016-04-01 Nathan Sidwell <nathan@acm.org>
2075
2076 PR c++/68475
2077 * decl.c (check_redeclaration_exception_specification): Check
2078 regardless of -fno-exceptions.
2079 * typeck2.c (merge_exception_specifiers): Relax assert by checking
2080 flag_exceptions too.
2081
8f80cbdb
NS
20822016-03-31 Nathan Sidwell <nathan@acm.org>
2083
2084 * decl.c (start_preparsed_function): Remove unnecessary bracing.
2085 (finish_destructor_body): Don't emit operator delete here.
2086
88504f34
NS
20872016-03-31 Nathan Sidwell <nathan@acm.org>
2088
2089 PR c++/70393
2090 * constexpr.c (cxx_eval_store_expression): Keep CONSTRUCTOR
2091 elements in field order.
2092
5fde6a45
MP
20932016-03-31 Marek Polacek <polacek@redhat.com>
2094
2095 PR c/70297
2096 * decl.c (duplicate_decls): Also set TYPE_ALIGN and TYPE_USER_ALIGN.
2097
efc3536f
RB
20982016-03-31 Richard Biener <rguenther@suse.de>
2099
2100 PR c++/70430
2101 * typeck.c (cp_build_binary_op): Fix operand order of vector
2102 conditional in truth op handling.
2103
e0bffbbb
JM
21042016-03-29 Jason Merrill <jason@redhat.com>
2105
2106 PR c++/70353
2107 * decl.c (make_rtl_for_nonlocal_decl): Don't defer local statics
2108 in constexpr functions.
2109
bfec0b4d
JM
21102016-03-28 Jason Merrill <jason@redhat.com>
2111
2112 PR c++/70422
2113 PR c++/64266
2114 PR c++/70353
2115 * decl.c, pt.c, constexpr.c: Revert last patch.
2116
d7796e23
JM
21172016-03-25 Jason Merrill <jason@redhat.com>
2118 Martin Liška <mliska@suse.cz>
2119
2120 PR c++/64266
2121 PR c++/70353
2122 Core issue 1962
2123 * decl.c (cp_fname_init): Decay the initializer to pointer.
2124 (cp_make_fname_decl): Set DECL_DECLARED_CONSTEXPR_P,
2125 DECL_VALUE_EXPR, DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P.
2126 Don't call cp_finish_decl.
2127 * pt.c (tsubst_expr) [DECL_EXPR]: Set DECL_VALUE_EXPR,
2128 DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P. Don't call cp_finish_decl.
2129 * constexpr.c (cxx_eval_constant_expression) [VAR_DECL]:
2130 Handle DECL_VALUE_EXPR.
2131
52228180
JM
21322016-03-24 Jason Merrill <jason@redhat.com>
2133
8a29084d
JM
2134 PR c++/70386
2135 * constexpr.c (cxx_eval_bare_aggregate): Handle PMFs.
2136
52228180
JM
2137 PR c++/70323
2138 * constexpr.c (cxx_eval_call_expression): Don't cache result if
2139 *overflow_p.
2140
887ab4e5
PP
21412016-03-24 Patrick Palka <ppalka@gcc.gnu.org>
2142
2143 PR c++/62212
2144 * tree.c (build_cplus_array_type): Determine type-dependentess
2145 with uses_template_parms instead of with dependent_type_p.
2146
426b9428
PP
21472016-03-23 Patrick Palka <ppalka@gcc.gnu.org>
2148
2149 PR c++/70347
2150 * typeck.c (process_init_constructor_union): If the initializer
2151 is empty, use the union's NSDMI if it has one.
2152
cd1588c4
PP
21532016-03-23 Patrick Palka <ppalka@gcc.gnu.org>
2154
2155 PR c++/70332
2156 * pt.c (tsubst_copy) [PARM_DECL]: Handle the use of 'this' in an
2157 NSDMI that's part of an aggregrate initialization.
2158
04833609
JJ
21592016-03-23 Jakub Jelinek <jakub@redhat.com>
2160
928af3bf
JJ
2161 PR c++/70001
2162 * constexpr.c (cxx_eval_vec_init_1): Reuse CONSTRUCTOR initializers
2163 for 1..max even for multi-dimensional arrays. Call unshare_expr
2164 on it.
2165
61637db3
JJ
2166 PR c++/70323
2167 * constexpr.c (cxx_eval_constant_expression): Diagnose overflow
2168 on TREE_OVERFLOW constants.
2169
04833609
JJ
2170 PR c++/70376
2171 * cp-gimplify.c (genericize_omp_for_stmt): Don't walk OMP_FOR_CLAUSES
2172 for OMP_TASKLOOP here.
2173 (cp_genericize_r): Handle OMP_TASKLOOP like OMP_TASK, except do call
2174 genericize_omp_for_stmt instead of cp_walk_tree on OMP_BODY.
2175
05aca4e7
AO
21762016-03-23 Alexandre Oliva <aoliva@redhat.com>
2177 Jason Merrill <jason@redhat.com>
2178 Jakub Jelinek <jakub@redhat.com>
2179
2180 PR c++/69315
2181 * cp-tree.h (defer_mark_used_calls, deferred_mark_used_calls): Remove.
2182 * decl.c (defer_mark_used_calls, deferred_mark_used_calls): Remove.
2183 (finish_function): Don't set or test them.
2184 * decl2.c (mark_used): Don't handle defer_mark_used_calls.
2185
96a4ef9d
JM
21862016-03-23 Jason Merrill <jason@redhat.com>
2187
2188 PR c++/70344
2189 * constexpr.c (cxx_eval_call_expression): Catch invalid recursion.
2190
fbdb6baf
MP
21912016-03-23 Marek Polacek <polacek@redhat.com>
2192
2193 PR c++/69884
2194 * pt.c (canonicalize_type_argument): Use OPT_Wignored_attributes.
2195
6cedf922
IE
21962016-03-22 Ilya Enkovich <enkovich.gnu@gmail.com>
2197
2198 * call.c (build_conditional_expr_1): Always use original
2199 condition type for vector type checks and build.
2200
16f6d7dc
PP
22012016-03-22 Patrick Palka <ppalka@gcc.gnu.org>
2202
2203 PR c++/70096
2204 * pt.c (tsubst_decl): Clear the DECL_MODE of the new decl.
2205
a3e2b438
PP
22062016-03-22 Patrick Palka <ppalka@gcc.gnu.org>
2207
2208 PR c++/70204
2209 * constexpr.c (non_const_var_error): Check
2210 DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P.
2211
ad779205
RH
22122016-03-21 Richard Henderson <rth@redhat.com>
2213
2214 PR c++/70273
2215 * decl.c (notice_forced_label_r): New.
2216 (cp_finish_decl): Use it.
2217
683b8101
JM
22182016-03-21 Jason Merrill <jason@redhat.com>
2219
2220 PR c++/70285
2221 * cp-gimplify.c (cp_fold) [COND_EXPR]: Handle bit-fields.
2222
eb0dbdc7
JM
22232016-03-18 Jason Merrill <jason@redhat.com>
2224
86461cad
JM
2225 PR c++/70139
2226 * constexpr.c (cxx_eval_call_expression): Fix trivial copy.
2227
b5a28d80
JM
2228 PR c++/70147
2229 * class.c (vptr_via_virtual_p): New.
2230 (most_primary_binfo): Factor out of build_rtti_vtbl_entries.
2231 * cp-ubsan.c (cp_ubsan_dfs_initialize_vtbl_ptrs): Don't clear
2232 a vptr from any virtual base in a not-in-charge 'structor.
2233
bf08acda
JM
2234 * decl.c (build_clobber_this): Factor out of
2235 start_preparsed_function and begin_destructor_body. Handle
2236 virtual bases better.
2237
eb0dbdc7
JM
2238 * class.c (build_if_in_charge): Split out from build_base_path.
2239 * init.c (expand_virtual_init, expand_default_init): Use it.
2240 * call.c (build_special_member_call): Use it.
2241
dd125026
JJ
22422016-03-18 Jakub Jelinek <jakub@redhat.com>
2243
2244 PR c++/70267
2245 * init.c (build_new_1): Complain and return error_mark_node
2246 if alloc_fn is not _Jv_AllocObject function returning pointer.
2247
91914f0a
PP
22482016-03-18 Patrick Palka <ppalka@gcc.gnu.org>
2249
2250 PR c++/70205
2251 * search.c (adjust_result_of_qualified_name_lookup): Don't
2252 update the BASELINK_BINFO of DECL if the second call
2253 to lookup_base fails.
2254
753a8910
PP
22552016-03-18 Patrick Palka <ppalka@gcc.gnu.org>
2256
2257 PR c++/70218
2258 * parser.c (cp_parser_lambda_expression): Move call to
2259 pop_deferring_access_checks ahead of the call to
2260 cp_parser_end_tentative_firewall.
2261
a3aad0e6
JJ
22622016-03-17 Jakub Jelinek <jakub@redhat.com>
2263
17366700
JJ
2264 PR c++/70144
2265 * cp-tree.h (magic_varargs_p): Return int instead of bool.
2266 * call.c (magic_varargs_p): Return int instead of bool, return 2 for
2267 Cilk+ reductions, otherwise 1 for magic varargs and 0 for normal
2268 varargs.
2269 (build_over_call): If magic_varargs_p == 2, call reject_gcc_builtin,
2270 if magic_varargs_p == 1, call decay_conversion
2271 instead of mark_type_use. Don't store error_mark_node arguments to
2272 argarray, instead return error_mark_node.
2273
a3aad0e6
JJ
2274 PR c++/70272
2275 * decl.c (begin_destructor_body): Don't insert clobber if
2276 is_empty_class (current_class_type).
2277
b1970801
MP
22782016-03-17 Marek Polacek <polacek@redhat.com>
2279
2280 PR c++/70194
2281 * typeck.c (warn_for_null_address): New function.
2282 (cp_build_binary_op): Call it.
2283
c5e003cf
JM
22842016-03-16 Jason Merrill <jason@redhat.com>
2285
2286 PR c++/70259
2287 * decl.c (start_preparsed_function): Don't clobber an empty base.
2288
1935f250
JJ
22892016-03-16 Jakub Jelinek <jakub@redhat.com>
2290
6651c93e
JJ
2291 PR c++/70147
2292 * cp-ubsan.c (cp_ubsan_dfs_initialize_vtbl_ptrs): Conditionalize
2293 BINFO_VIRTUAL_P vtable clearing on current_in_charge_parm.
2294
1935f250
JJ
2295 PR c++/70147
2296 * cp-ubsan.c (cp_ubsan_maybe_initialize_vtbl_ptrs): Temporarily
2297 set in_base_initializer.
2298
42c729c5
MP
22992016-03-15 Marek Polacek <polacek@redhat.com>
2300
2301 PR c++/70209
2302 * tree.c (strip_typedefs): Call strip_typedefs again on the
2303 DECL_ORIGINAL_TYPE result.
2304
3f91db69
JM
23052016-03-15 Jason Merrill <jason@redhat.com>
2306
d1ccf407
JM
2307 PR c++/70095
2308 * pt.c (instantiate_decl): Fix call to variable_template_p.
2309
3f91db69
JM
2310 PR c++/70141
2311 * pt.c (for_each_template_parm_r): Always walk into TYPENAME_TYPE.
2312
598a208c
CC
23132016-03-14 Casey Carter <casey@carter.net>
2314 Jason Merrill <jason@redhat.com>
2315
08a1cadc 2316 P0184R0: Generalizing the Range-Based For Loop
598a208c
CC
2317 * parser.c (cp_convert_range_for): Set the type of __end separately.
2318 (cp_parser_perform_range_for_lookup): Allow different begin/end
2319 types if they are comparable.
2320
3f1e5d3a
PP
23212016-03-12 Patrick Palka <ppalka@gcc.gnu.org>
2322
2323 PR c++/70106
2324 * semantics.c (force_paren_expr): Just build a PAREN_EXPR when
2325 processing_template_decl and EXPR is a SCOPE_REF.
2326
b87a8d7d
PP
23272016-03-10 Patrick Palka <ppalka@gcc.gnu.org>
2328 Jakub Jelinek <jakub@redhat.com>
2329
2330 PR c++/70001
2331 * constexpr.c (cxx_eval_vec_init_1): For pre_init case, reuse
2332 return value from cxx_eval_constant_expression from earlier
2333 elements if it is valid constant initializer requiring no
2334 relocations.
2335
d49b0aa0
MP
23362016-03-10 Marek Polacek <polacek@redhat.com>
2337
2338 PR c++/70153
2339 * cp-gimplify.c (cp_fold): Handle UNARY_PLUS_EXPR.
2340
96b3c82d
CP
23412016-03-09 Cesar Philippidis <cesar@codesourcery.com>
2342
2343 * parser.c (cp_parser_oacc_loop): Update cclauses and clauses
2344 when calling c_finish_omp_clauses.
2345
1e546b68
JM
23462016-03-08 Jason Merrill <jason@redhat.com>
2347
80aac5c8
JM
2348 * parser.c (cp_parser_diagnose_invalid_type_name): Give helpful
2349 diagnostic for use of "concept".
2350 (cp_parser_requires_clause_opt): And "requires".
2351 (cp_parser_type_parameter, cp_parser_late_return_type_opt)
2352 (cp_parser_explicit_template_declaration): Adjust.
2353 * Make-lang.in (check-c++-all): Add "concepts" to std list.
2354
1e546b68
JM
2355 P0036R0: Unary Folds and Empty Parameter Packs
2356 * pt.c (expand_empty_fold): Remove special cases for *,+,&,|.
2357
56aae4b7
JJ
23582016-03-08 Jakub Jelinek <jakub@redhat.com>
2359
d259b234
JJ
2360 PR c++/70135
2361 * constexpr.c (cxx_eval_loop_expr): Forget saved values of SAVE_EXPRs
2362 even after the last iteration of the loop.
2363
56aae4b7
JJ
2364 * decl.c (duplicate_decls): Fix spelling - becuase -> because.
2365
dbb23418
PP
23662016-03-07 Patrick Palka <ppalka@gcc.gnu.org>
2367
2368 PR c++/66786
2369 * pt.c (get_template_info): Handle PARM_DECL.
2370 (template_class_depth): Check DECL_P instead of
2371 VAR_OR_FUNCTION_DECL_P.
2372
d96e8407
JM
23732016-03-05 Jason Merrill <jason@redhat.com>
2374
2375 PR c++/67364
2376 * constexpr.c (cxx_eval_store_expression): Replace
2377 CONSTRUCTOR_ELTS in nested CONSTRUCTORs, too.
2378
7a3a3fad
PP
23792016-03-05 Patrick Palka <ppalka@gcc.gnu.org>
2380
2381 PR c++/66786
2382 * pt.c (template_class_depth): Given a lambda type, iterate
2383 into its LAMBDA_TYPE_EXTRA_SCOPE field instead of its
2384 TYPE_CONTEXT. Given a VAR_DECL, iterate into its
2385 CP_DECL_CONTEXT.
2386
d5bcd6d4
JM
23872016-03-04 Jason Merrill <jason@redhat.com>
2388
2389 PR c++/69203
2390 * cp-tree.h (COND_EXPR_IS_VEC_DELETE): New.
2391 * init.c (build_vec_delete_1): Set it.
2392 * constexpr.c (potential_constant_expression_1) [COND_EXPR]: Check it.
2393
0c8825de
JJ
23942016-03-04 Jakub Jelinek <jakub@redhat.com>
2395
411d61c4
JJ
2396 * decl.c (start_preparsed_function): Don't emit start clobber at the
2397 start of constructor clones.
2398
0c8825de
JJ
2399 PR c++/70035
2400 * cp-tree.h (cp_ubsan_maybe_initialize_vtbl_ptrs): New prototype.
2401 * decl.c (start_preparsed_function): Call
2402 cp_ubsan_maybe_initialize_vtbl_ptrs if needed.
2403 * cp-ubsan.c (cp_ubsan_dfs_initialize_vtbl_ptrs,
2404 cp_ubsan_maybe_initialize_vtbl_ptrs): New functions.
2405
b54eff8b
JM
24062016-03-04 Jason Merrill <jason@redhat.com>
2407
188e53bd
JM
2408 PR c++/67364
2409 * constexpr.c (cxx_eval_component_reference): Further tweak.
2410
39dce2b7
JM
2411 * constexpr.c (struct constexpr_ctx): Add save_exprs field.
2412 (cxx_eval_loop_expr): Discard SAVE_EXPR values before looping.
2413 (cxx_eval_constant_expression) [SAVE_EXPR]: Add it to the set.
2414 (cxx_eval_outermost_constant_expr, is_sub_constant_expr): Initialize.
2415
b54eff8b
JM
2416 PR c++/70067
2417 * tree.c (strip_typedefs): Handle TYPENAME_TYPE lookup finding the
2418 same type.
2419
639475f0
JM
24202016-03-03 Jason Merrill <jason@redhat.com>
2421
b47d1d90
JM
2422 * method.c (synthesized_method_walk): operator= can also be constexpr.
2423
a0a6a8c9
JM
2424 * pt.c (tsubst_copy_and_build) [LAMBDA_EXPR]: Get
2425 LAMBDA_EXPR_RETURN_TYPE from the instantiated closure.
2426
264fd142
JM
2427 PR c++/67164
2428 * pt.c (copy_template_args): New.
2429 (tsubst_pack_expansion): Use it.
2430
45c3e69b
JM
2431 * call.c (build_aggr_conv): Use get_nsdmi.
2432
16dc6b17
JM
2433 PR c++/51406
2434 * typeck.c (build_static_cast_1): Avoid folding back to lvalue.
2435
639475f0
JM
2436 PR c++/67364
2437 * constexpr.c (cxx_eval_component_reference): Just return an empty
2438 CONSTRUCTOR for an empty class.
2439
7f0e23e9
JM
24402016-03-01 Jason Merrill <jason@redhat.com>
2441
5c969cb8
JM
2442 PR c++/70036
2443 * parser.c (cp_parser_requires_clause): Call
2444 check_for_bare_parameter_packs.
2445
c8a66fc9
JM
2446 PR c++/51489
2447 * constexpr.c (cxx_eval_binary_expression): Don't VERIFY_CONSTANT
2448 the operands.
2449
7f0e23e9
JM
2450 PR c++/69995
2451 * constexpr.c (cxx_eval_call_expression): Unshare arg.
2452 (cxx_eval_constant_expression) [DECL_EXPR]: Unshare init.
2453 [TARGET_EXPR]: Unshare init.
2454
76d881bf
PP
24552016-03-01 Patrick Palka <ppalka@gcc.gnu.org>
2456
2457 PR c++/68948
2458 PR c++/69961
2459 * pt.c (tsubst_baselink): Reinstate the check for an invalid
2460 constructor call.
2461
7574c916
JM
24622016-02-28 Jason Merrill <jason@redhat.com>
2463
2464 PR c++/69995
2465 * constexpr.c (cxx_eval_store_expression): Unshare init.
2466
56cde077
JM
24672016-02-26 Jason Merrill <jason@redhat.com>
2468
2469 PR c++/69958
2470 * pt.c (make_argument_pack): New.
2471 (tsubst_copy) [SIZEOF_EXPR]: Handle partial expansion.
2472 (tsubst_copy_and_build): Likewise.
2473
6284a979
JM
24742016-02-25 Jason Merrill <jason@redhat.com>
2475
8ba8c375
JM
2476 PR c++/69889
2477 * cp-tree.h (AGGR_INIT_FROM_THUNK_P): New.
2478 * tree.c (build_aggr_init_expr): Set it.
2479 * semantics.c (simplify_aggr_init_expr): Check it.
2480 * cp-gimplify.c (cp_genericize_r): Don't walk into
2481 a call/aggr_init from a thunk.
2482
bd28a34f
JM
2483 PR c++/69842
2484 * method.c (forward_parm): Handle parameter packs.
2485 * lambda.c (maybe_add_lambda_conv_op): Use it for them.
2486
6a0cc1cd
JM
2487 PR c++/67364
2488 * constexpr.c (cxx_eval_component_reference): Don't complain about
2489 unevaluated empty classes.
2490
6284a979
JM
2491 PR c++/68049
2492 * tree.c (strip_typedefs): Use DECL_ORIGINAL_TYPE.
2493
1137001c
PP
24942016-02-25 Patrick Palka <ppalka@gcc.gnu.org>
2495
2496 PR c++/69736
2497 * cp-tree.h (REF_PARENTHESIZED_P): Adjust documentation.
2498 (maybe_undo_parenthesized_ref): Declare.
2499 * semantics.c (maybe_undo_parenthesized_ref): Split out from
2500 check_return_expr.
2501 (finish_call_expr): Use it.
2502 * typeck.c (check_return_expr): Use it.
2503 * pt.c (tsubst_copy_and_build) [INDIRECT_REF]: Retain the
2504 REF_PARENTHESIZED_P flag.
2505
03ca8fb3
JJ
25062016-02-24 Jakub Jelinek <jakub@redhat.com>
2507
2508 PR c++/69922
2509 * class.c (build_base_path): Set TREE_NO_WARNING on the null_test.
2510 Avoid folding it.
2511 * init.c (build_vec_delete_1, build_delete): Don't fold the non-NULL
2512 tests.
2513 * cp-gimplify.c (cp_fold): For TREE_NO_WARNING comparisons with NULL,
2514 unless they are folded into INTEGER_CST, error_mark_node or some
2515 comparison with NULL, avoid folding them and use either the original
2516 comparison or non-folded comparison of folded arguments.
2517 * cp-ubsan.c (cp_ubsan_instrument_vptr): Set TREE_NO_WARNING on the
2518 comparison, don't fold the comparison right away.
2519
944e9f5f
JM
25202016-02-24 Jason Merrill <jason@redhat.com>
2521
2522 PR c++/69323
2523 * friend.c (make_friend_class): Likewise.
2524 * decl.c (lookup_and_check_tag): Diagnose invalid dependent friend.
2525
b8599b68
JM
25262016-02-24 Jason Merrill <jason@redhat.com>
2527
2528 PR c++/69323
2529 * pt.c (instantiate_class_template_1): Set
2530 processing_template_decl before substituting friend_type.
2531
3b96b93a
MS
2532016-02-24 Martin Sebor <msebor@redhat.com>
2533
2534 PR c++/69912
2535 * tree.c (build_ctor_subob_ref): Compare types' main variants
2536 instead of the types as they are.
2537
28577b86
JM
25382016-02-24 Jason Merrill <jason@redhat.com>
2539
a021961c
JM
2540 * decl.c (start_preparsed_function): Condition ctor clobber on
2541 flag_lifetime_dse > 1.
2542
28577b86
JM
2543 * cp-gimplify.c (cp_fold): Don't fold constexpr calls if -fno-inline.
2544
2207c599
JM
25452016-02-19 Jason Merrill <jason@redhat.com>
2546
2547 PR c++/69743
2548 * call.c (remaining_arguments): No longer static.
2549 * cp-tree.h: Declare it.
2550 * pt.c (more_specialized_fn): Use it.
2551
3a27b4db
JJ
25522016-02-19 Jakub Jelinek <jakub@redhat.com>
2553 Bernd Edlinger <bernd.edlinger@hotmail.de>
2554
2555 * Make-lang.in: Invoke gperf with -L C++.
2556 * cfns.gperf: Remove prototypes for hash and libc_name_p
2557 inlines.
2558 * cfns.h: Regenerated.
2559 * except.c (nothrow_libfn_p): Adjust.
2560
7a965d51
JJ
25612016-02-19 Jakub Jelinek <jakub@redhat.com>
2562
2563 PR c++/69850
2564 * rtti.c (ifnonnull): Set TREE_NO_WARNING on the condition, use
2565 NE_EXPR instead of EQ_EXPR and swap last two arguments on COND_EXPR.
2566
200e869c
PP
25672016-02-19 Patrick Palka <ppalka@gcc.gnu.org>
2568
2569 PR c++/68948
2570 * pt.c (tsubst_baselink): Don't diagnose an invalid constructor
2571 call here.
2572 * semantics.c (finish_call_expr): Don't assume a constructor
2573 call is dependent if only the "this" pointer is dependent. When
2574 building a constructor call, always use a dummy object.
2575
19e21586
JJ
25762016-02-19 Jakub Jelinek <jakub@redhat.com>
2577
03a616ac
JJ
2578 PR c++/69850
2579 * init.c (build_vec_delete_1): Set TREE_NO_WARNING on the NE_EXPR
2580 condition.
2581 * cp-gimplify.c (cp_fold): Propagate TREE_NO_WARNING from binary
2582 operators if folding preserved the binop, just with different
2583 arguments.
2584
19e21586
JJ
2585 PR c++/67767
2586 * parser.c (cp_parser_std_attribute_spec_seq): Don't assume
2587 attr_spec is always single element chain, chain all the attributes
2588 properly together in the right order.
2589
747b61fc
JM
25902016-02-18 Jason Merrill <jason@redhat.com>
2591
2592 * mangle.c (maybe_check_abi_tags): Add for_decl parm. Call
2593 mangle_decl.
2594 (mangle_decl): Call maybe_check_abi_tags for function scope.
2595 (mangle_guard_variable): Call maybe_check_abi_tags here.
2596 (write_guarded_var_name): Not here.
2597
50ccdf5b
JM
25982016-02-17 Jason Merrill <jason@redhat.com>
2599
fa837fb6
JM
2600 PR c++/65985
2601 * constexpr.c (build_constexpr_constructor_member_initializers):
2602 Handle an additional STATEMENT_LIST.
2603
bcb5f3c9
JM
2604 PR c++/68585
2605 * constexpr.c (cxx_eval_bare_aggregate): Fix 'changed' detection.
2606
50ccdf5b
JM
2607 PR c++/68679
2608 * decl2.c (reset_type_linkage_2): Look through member templates.
2609
932c0da4
JJ
26102016-02-17 Jakub Jelinek <jakub@redhat.com>
2611
2612 PR c++/69850
2613 * init.c (build_delete): Set TREE_NO_WARNING on ifexp.
2614
0f02dd56
JM
26152016-02-17 Jason Merrill <jason@redhat.com>
2616
2617 PR c++/69842
2618 * method.c (forward_parm): Split out from...
2619 (add_one_base_init): ...here.
2620 * lambda.c (maybe_add_lambda_conv_op): Use it.
2621
6bab4c63
JM
26222016-02-16 Jason Merrill <jason@redhat.com>
2623
2624 PR c++/10200
2625 PR c++/69753
2626 * call.c, cp-tree.h, name-lookup.c, pt.c, search.c, semantics.c,
2627 tree.c, typeck2.c: Revert earlier changes.
2628 * parser.c (cp_parser_lookup_name): Ignore namespace-scope
2629 non-type templates after -> or .
2630
bf14eba2
JJ
26312016-02-16 Jakub Jelinek <jakub@redhat.com>
2632
2633 PR c/69835
2634 * typeck.c (cp_build_binary_op): Revert 2015-09-09 change.
2635
7128d6ab
JM
26362016-02-16 Jason Merrill <jason@redhat.com>
2637
2638 PR c++/69657
2639 * name-lookup.c (lookup_qualified_name): Add find_hidden parm.
2640 (set_decl_namespace): Pass it. Complain about finding a hidden friend.
2641 * name-lookup.h: Adjust.
2642
ba539195
JN
26432016-02-16 James Norris <jnorris@codesourcery.com>
2644
2645 * parser.c (cp_parser_oacc_data_clause_deviceptr): Remove checking.
2646 * semantics.c (finish_omp_clauses): Add deviceptr checking.
2647
f0516ca4
JJ
26482016-02-15 Jakub Jelinek <jakub@redhat.com>
2649
2650 PR c++/69658
2651 * init.c (expand_default_init): Only call reshape_init
2652 in the direct-initialization from an initializer list case.
2653
fe69277d
JM
26542016-02-15 Jason Merrill <jason@redhat.com>
2655
2bd0a2d6
JM
2656 PR c++/69753
2657 * semantics.c (finish_call_expr): Implicit 'this' does not make
2658 the call dependent.
2659 * search.c (any_dependent_bases_p): Split out...
2660 * name-lookup.c (do_class_using_decl): ...from here.
2661 * call.c (build_new_method_call_1): Don't complain about missing object
2662 if there are dependent bases. Tweak error.
2663 * tree.c (non_static_member_function_p): Remove.
2664 * pt.c (type_dependent_expression_p): A member template of a
2665 dependent type is dependent.
2666 * cp-tree.h: Adjust.
2667
fe69277d
JM
2668 PR c++/68890
2669 * constexpr.c (verify_ctor_sanity): Remove CONSTRUCTOR_NELTS check.
2670
38d795d2
PP
26712016-02-12 Patrick Palka <ppalka@gcc.gnu.org>
2672
2673 PR c++/69098
2674 * pt.c (lookup_and_finish_template_variable): New function,
2675 extracted from ...
2676 (tsubst_copy_and_build) [TEMPLATE_ID_EXPR]: ... here. Use it.
2677 (tsubst_qualified_id): Consider that EXPR might be a variable
2678 template.
2679 * typeck.c (check_template_keyword): Don't emit an error
2680 if DECL is a variable template.
2681
9c582551
JJ
26822016-02-12 Jakub Jelinek <jakub@redhat.com>
2683
2684 * error.c: Spelling fixes - behaviour -> behavior and
2685 neighbour -> neighbor.
2686 * decl.c: Likewise.
2687 * typeck.c (cp_build_binary_op): Fix up behavior spelling in
2688 diagnostics.
2689 * init.c (build_delete): Likewise.
2690
66756373
JJ
26912016-02-11 Jakub Jelinek <jakub@redhat.com>
2692
2693 PR c/69768
2694 * typeck.c (cp_build_binary_op): cp_fully_fold integer_zerop
2695 arguments for -Waddress warning. Fix up formatting.
2696
0d7d9458
PC
26972016-02-11 Paolo Carlini <paolo.carlini@oracle.com>
2698
2699 PR c++/68726
2700 * pt.c (lookup_template_class_1): Check tsubst return value for
2701 error_mark_node.
2702
3a4219ca
JM
27032016-02-10 Jason Merrill <jason@redhat.com>
2704
46f0d909
JM
2705 PR c++/68926
2706 * pt.c (resolve_nondeduced_context): Add complain parm.
2707 (do_auto_deduction): Pass it.
2708 * cvt.c (convert_to_void): Likewise.
2709 * decl.c (cp_finish_decl): Likewise.
2710 * init.c (build_new): Likewise.
2711 * rtti.c (get_tinfo_decl_dynamic): Likewise.
2712 * semantics.c (finish_decltype_type): Likewise.
2713 * typeck.c (decay_conversion): Likewise.
2714 * cp-tree.h: Adjust declaration.
2715 * call.c (standard_conversion): Add complain parm, pass it along.
2716 (implicit_conversion): Pass it.
2717
89908c8f
JM
2718 PR c++/69657
2719 * name-lookup.c (ambiguous_decl): Call remove_hidden_names.
2720 (lookup_name_real_1): Likewise.
2721 (remove_hidden_names): Handle non-functions too.
2722
ff2faafc
JM
2723 PR c++/10200
2724 * parser.c (cp_parser_lookup_name): When looking for a template
2725 after . or ->, only consider class templates.
2726 (cp_parser_postfix_dot_deref_expression): Handle the current
2727 instantiation. Remember a dependent object expression.
2728 * typeck2.c (build_x_arrow): Handle the current instantiation.
2729
3a4219ca
JM
2730 * ptree.c (debug_tree): Implement for cp_expr.
2731
efb45a9f
PP
27322016-02-08 Patrick Palka <ppalka@gcc.gnu.org>
2733
2734 PR c++/69139
2735 * parser.c (cp_parser_simple_type_specifier): Make the check
2736 for disambiguating between an 'auto' placeholder and an implicit
2737 template parameter more robust.
2738
20a0c6f9
PP
27392016-02-08 Patrick Palka <ppalka@gcc.gnu.org>
2740
2741 PR c++/69283
2742 PR c++/67835
2743 * decl2.c (mark_used): When given a TEMPLATE_DECL, return after
2744 setting its TREE_USED flag.
2745
1374a761
JM
27462016-02-08 Jason Merrill <jason@redhat.com>
2747
2748 PR c++/69657
2749 * name-lookup.c (do_nonmember_using_decl): Leave anticipated
2750 built-ins alone.
2751
f68bc23f
JJ
27522016-02-08 Jakub Jelinek <jakub@redhat.com>
2753
2754 PR c++/59627
2755 * parser.c (cp_parser_omp_declare_reduction): Set assembler name
2756 of the DECL_OMP_DECLARE_REDUCTION_P decls.
2757
eba9e839
MP
27582016-02-08 Marek Polacek <polacek@redhat.com>
2759
2760 PR c++/69688
2761 * constexpr.c (clear_cv_and_fold_caches): Renamed from clear_cv_cache.
2762 Call clear_fold_cache.
2763 * cp-tree.h: Adjust declaration.
2764 * decl.c (finish_enum_value_list): Call clear_cv_and_fold_caches
2765 rather than clear_cv_cache and clear_fold_cache.
2766 * typeck2.c (store_init_value): Call clear_cv_and_fold_caches.
2767
415594bb
JM
27682016-02-08 Jason Merrill <jason@redhat.com>
2769
2770 * cp-tree.h (CONV_FOLD, CONV_BACKEND_CONVERT): New.
2771 * cvt.c (convert): Pass CONV_BACKEND_CONVERT.
2772 (ocp_convert): Use *_maybe_fold.
2773 (cp_convert_to_pointer): Add dofold parameter.
2774 * cp-gimplify.c (cp_fold) [CONVERT_EXPR]: Call convert.
2775
46cb9332
MS
27762016-02-05 Martin Sebor <msebor@redhat.com>
2777
2778 PR c++/69662
2779 * init.c (find_field_init): New function.
2780 (warn_placement_new_too_small): Call it. Handle one-element arrays
2781 at ends of structures special.
2782
0fd9d492
JM
27832016-02-05 Jason Merrill <jason@redhat.com>
2784
2785 PR c++/68948
2786 * semantics.c (finish_expr_stmt): If expr is error_mark_node,
2787 make sure we've seen_error().
2788
76c85fbb
PP
27892016-02-05 Patrick Palka <ppalka@gcc.gnu.org>
2790
2791 PR c++/68948
2792 * pt.c (tsubst_baselink): Diagnose an invalid constructor call
2793 if lookup_fnfields returns NULL_TREE and the name being looked
2794 up has the form A::A.
2795
618d6c1c
PP
27962016-02-04 Patrick Palka <ppalka@gcc.gnu.org>
2797
2798 * constexpr.c (cxx_eval_binary_expression): Fold equality
2799 comparisons involving PTRMEM_CSTs.
2800
d1243d27
JJ
28012016-02-04 Jakub Jelinek <jakub@redhat.com>
2802
2803 * class.c (find_flexarrays): Don't declare dom variable.
2804 (diagnose_flexarray): Likewise.
2805
05dd97db
MS
28062016-02-02 Martain Sebor <msebor@redhat.com>
2807
2808 PR c++/69251
2809 PR c++/69253
2810 PR c++/69290
2811 PR c++/69277
2812 PR c++/69349
2813 * class.c (walk_subobject_offsets): Avoid testing the upper bound
2814 of a flexible array member for equality to null.
2815 (find_flexarrays): Remove spurious whitespace introduced in r231665.
2816 (diagnose_flexarrays): Avoid checking the upper bound of arrays.
2817 (check_flexarrays): Same.
2818 * decl.c (compute_array_index_type): Avoid special case for flexible
2819 array members.
2820 (grokdeclarator): Avoid calling compute_array_index_type for flexible
2821 array members.
2822 * error.c (dump_type_suffix): Revert changes introduced in r231665
2823 and rendered unnecessary by the changes above.
2824 * pt.c (tsubst): Same.
2825 * tree.c (build_ctor_subob_ref): Handle flexible array members.
2826 * typeck2.c (digest_init_r): Revert changes introduced in r231665.
2827 (process_init_constructor_array): Same.
2828 (process_init_constructor_record): Same.
2829
ab4bae0c
PP
28302016-02-03 Patrick Palka <ppalka@gcc.gnu.org>
2831
2832 PR c++/69056
2833 * pt.c (try_one_overload): Handle comparing argument packs so
2834 that there is no conflict if we deduced more arguments of an
2835 argument pack than were explicitly specified.
2836
75a27d35
JJ
28372016-01-31 Jakub Jelinek <jakub@redhat.com>
2838 Jason Merrill <jason@redhat.com>
2839
2840 PR c++/68763
2841 * tree.c (strip_typedefs) [FUNCTION_TYPE]: Avoid building a new
2842 function type if nothing is changing.
2843
b676a079
JM
28442016-01-31 Jason Merrill <jason@redhat.com>
2845
6978c505
JM
2846 PR c++/69009
2847 * pt.c (partial_specialization_p, impartial_args): New.
2848 (instantiate_decl): Call impartial_args.
2849
b1568582
JM
2850 * mangle.c (maybe_check_abi_tags): New.
2851 (write_guarded_var_name): Call it.
2852 (mangle_ref_init_variable): Call check_abi_tags.
2853
b676a079
JM
2854 * pt.c (lookup_template_class_1): Don't share TYPE_ATTRIBUTES
2855 between template and instantiation.
2856
16b77b32
JJ
28572016-01-29 Jakub Jelinek <jakub@redhat.com>
2858
2859 PR debug/66869
2860 * decl.c (wrapup_globals_for_namespace): Warn about unused static
2861 function declarations.
2862
5453bfed
MP
28632016-01-29 Marek Polacek <polacek@redhat.com>
2864
2865 PR c++/69509
2866 PR c++/69516
2867 * constexpr.c (cxx_eval_array_reference): Give the "array subscript
2868 out of bound" error earlier.
2869 * init.c (build_vec_init): Change NE_EXPR into GT_EXPR. Update the
2870 commentary.
2871
e9f69069
PP
28722016-01-29 Patrick Palka <ppalka@gcc.gnu.org>
2873
2874 * name-lookup.c (begin_scope): After reusing a cp_binding_level
2875 structure, update free_binding_level before the structure's
2876 level_chain field gets cleared, not after.
2877
e448880c
JM
28782016-01-28 Jason Merrill <jason@redhat.com>
2879
2880 PR c++/67407
2881 * search.c (dfs_walk_once, dfs_walk_once_r)
2882 (dfs_walk_once_accessible_r, dfs_walk_once_accessible): Use
2883 hash_set instead of BINFO_MARKED.
2884 (dfs_unmark_r): Remove.
2885
2b4f7b94
PP
28862016-01-28 Patrick Palka <ppalka@gcc.gnu.org>
2887
2888 PR c++/24208
2889 * parser.c (LEXER_DEBUGGING_ENABLED_P): New macro.
2890 (cp_lexer_debugging_p): Use it.
2891 (cp_lexer_start_debugging): Likewise.
2892 (cp_lexer_stop_debugging): Likewise.
2893
fa74a4bc
MP
28942016-01-27 Marek Polacek <polacek@redhat.com>
2895
2896 PR c/68062
2897 * typeck.c (cp_build_binary_op): Promote operand to unsigned, if
2898 needed. Add -Wsign-compare warning.
2899
5d70666e
RB
29002016-01-27 Ryan Burn <contact@rnburn.com>
2901
2902 PR cilkplus/69267
2903 * cp-gimplify.c (cilk_cp_gimplify_call_params_in_spawned_fn): Removed
2904 superfluous post_p argument in call to
2905 cilk_gimplify_call_params_in_spawned_fn.
2906
05bf54c3
MP
29072016-01-27 Marek Polacek <polacek@redhat.com>
2908
2909 PR c++/69379
2910 * constexpr.c (cxx_eval_constant_expression): Handle PTRMEM_CSTs
2911 wrapped in NOP_EXPRs.
2912
60214d0d
MS
29132016-01-27 Martin Sebor <msebor@redhat.com>
2914
2915 PR c++/69317
2916 * mangle.c (mangle_decl): Reference the correct (saved) version
2917 of the ABI in -Wabi diagnostics.
2918
95e3030c
MP
29192016-01-27 Marek Polacek <polacek@redhat.com>
2920
2921 PR c++/69496
2922 * constexpr.c (cxx_eval_array_reference): Evaluate the number of
2923 elements of the array.
2924
ca30abcd
JM
29252016-01-26 Jason Merrill <jason@redhat.com>
2926
2927 PR c++/68949
2928 * constexpr.c (register_constexpr_fundef): Keep the un-massaged body.
2929 (cxx_eval_call_expression): Don't look through clones.
2930 * optimize.c (maybe_clone_body): Clear DECL_SAVED_TREE of the alias.
2931 * semantics.c (expand_or_defer_fn_1): Keep DECL_SAVED_TREE of
2932 maybe-in-charge *tor.
2933
2d63bc39
JM
29342016-01-26 Jason Merrill <jason@redhat.com>
2935
2936 PR c++/68782
2937 * constexpr.c (cxx_eval_bare_aggregate): Update TREE_CONSTANT
2938 and TREE_SIDE_EFFECTS.
2939 (cxx_eval_constant_expression) [CONSTRUCTOR]: Call
2940 verify_constructor_flags.
2941
476805ae
JJ
29422016-01-26 Jakub Jelinek <jakub@redhat.com>
2943
2944 PR c++/68357
2945 * cp-gimplify.c (cp_fold): If some operand folds to error_mark_node,
2946 return error_mark_node instead of building trees with error_mark_node
2947 operands.
2948
01e1dea3
DM
29492016-01-26 David Malcolm <dmalcolm@redhat.com>
2950
2951 PR other/69006
2952 * error.c (print_instantiation_partial_context_line): Add missing
2953 newlines from output for the t == NULL case.
2954 (print_instantiation_partial_context): Remove call to pp_newline.
2955
a59b92b0
PP
29562016-01-24 Patrick Palka <ppalka@gcc.gnu.org>
2957
2958 Revert:
2959 2016-01-18 Patrick Palka <ppalka@gcc.gnu.org>
2960
2961 PR c++/11858
2962 PR c++/24663
2963 PR c++/24664
2964 * decl.c (grokdeclarator): Don't decay array parameter type to
2965 a pointer type if it's dependent.
2966 (grokparms): Invoke strip_top_quals instead of directly invoking
2967 cp_build_qualified_type.
2968 * pt.c (decay_dependent_array_parm_type): New static function.
2969 (type_unification_real): Call decay_dependent_array_parm_type
2970 to decay a dependent array parameter type to its corresponding
2971 pointer type before unification.
2972 (more_specialized_fn): Likewise.
2973 (get_bindings): Likewise.
2974 * tree.c (cp_build_qualified_type): Trivial typofix in
2975 documentation.
2976
69da7802
MS
29772016-01-23 Martin Sebor <msebor@redhat.com>
2978
2979 PR c++/58109
2980 PR c++/69022
2981 * decl2.c (is_late_template_attribute): Handle dependent argument
2982 to attribute align and attribute vector_size.
2983
97ca3d0d
JM
29842016-01-21 Jason Merrill <jason@redhat.com>
2985
130ee9a9
JM
2986 PR c++/69392
2987 * lambda.c (lambda_capture_field_type): Handle 'this' specially
2988 for init-capture, too.
2989
020491e6
JM
2990 PR c++/65687
2991 * decl.c (type_is_deprecated): Don't look into a typedef.
2992
2f3932b9
JM
2993 PR c++/40751
2994 PR c++/64987
2995 * decl.c (copy_type_enum): Respect TYPE_USER_ALIGN.
2996
97ca3d0d
JM
2997 PR c++/43407
2998 * decl.c (start_enum): Add attributes parameter.
2999 * parser.c (cp_parser_enum_specifier): Pass it.
3000 * pt.c (lookup_template_class_1): Pass it.
3001 * cp-tree.h: Adjust.
3002
33f48842
JM
30032016-01-19 Jason Merrill <jason@redhat.com>
3004
3005 PR c++/59759
3006 * pt.c (convert_template_argument): Handle VAR_DECL properly.
3007
1e297006
MP
30082016-01-19 Marek Polacek <polacek@redhat.com>
3009
3010 PR c++/68586
3011 * constexpr.c (clear_cv_cache): New.
3012 * cp-gimplify.c (clear_fold_cache): New.
3013 * cp-tree.h (clear_cv_cache, clear_fold_cache): Declare.
3014 * decl.c (finish_enum_value_list): Call them.
3015
38a979f2
MP
3016 PR c++/68965
3017 * pt.c (tsubst_copy): Mark elements in expanded vector as used.
3018
17c15cb9
PP
30192016-01-18 Patrick Palka <ppalka@gcc.gnu.org>
3020
3021 PR c++/11858
3022 PR c++/24663
3023 PR c++/24664
3024 * decl.c (grokdeclarator): Don't decay array parameter type to
3025 a pointer type if it's dependent.
3026 (grokparms): Invoke strip_top_quals instead of directly invoking
3027 cp_build_qualified_type.
3028 * pt.c (decay_dependent_array_parm_type): New static function.
3029 (type_unification_real): Call decay_dependent_array_parm_type
3030 to decay a dependent array parameter type to its corresponding
3031 pointer type before unification.
3032 (more_specialized_fn): Likewise.
3033 (get_bindings): Likewise.
3034 * tree.c (cp_build_qualified_type): Trivial typofix in
3035 documentation.
3036
7f26f7df
JM
30372016-01-18 Jason Merrill <jason@redhat.com>
3038
4b0b30ef
JM
3039 * cp-gimplify.c (cp_fold) [CONSTRUCTOR]: Don't clobber the input.
3040
8d8f3235
JM
3041 * cp-gimplify.c (cp_fold): Remove unnecessary special cases.
3042
7f26f7df
JM
3043 PR c++/68767
3044 * cp-gimplify.c (cp_fold) [COND_EXPR]: Simplify. Do fold COND_EXPR.
3045 (contains_label_1, contains_label_p): Remove.
3046
ec7886c1
PP
30472016-01-16 Patrick Palka <ppalka@gcc.gnu.org>
3048
3049 PR c++/69091
3050 * pt.c (type_dependent_expression_p): For a function template
3051 specialization, a type is dependent iff any of its template
3052 arguments are.
3053
203484bb
PP
30542016-01-16 Patrick Palka <ppalka@gcc.gnu.org>
3055
3056 * cp-array-notation.c (cp_expand_cond_array_notations): Return
3057 error_mark_node only if find_rank failed, not if it was
3058 successful.
3059
aa2500e9
PP
30602016-01-16 Patrick Palka <ppalka@gcc.gnu.org>
3061
3062 PR c++/68936
3063 * tree.c (build_min_non_dep_call_vec): Don't retain the
3064 KOENIG_LOOKUP_P flag of the non-dependent expression that's
3065 been built.
3066 (build_min_non_dep_op_overload): Instead, do it here.
3067
e0a575ff
JJ
30682016-01-15 Jakub Jelinek <jakub@redhat.com>
3069
3070 PR bootstrap/68271
3071 * parser.h (cp_token): Remove pragma_kind field. Add comment
3072 with number of unused bits.
3073 * parser.c (eof_token): Remove pragma_kind field initializer.
3074 (cp_lexer_get_preprocessor_token): Don't set pragma_kind
3075 field, don't clear CPP_PRAGMA u.value.
3076 (cp_parser_pragma_kind): New function.
3077 (cp_parser_omp_sections_scope, cp_parser_oacc_kernels_parallel,
3078 cp_parser_omp_construct, cp_parser_initial_pragma,
3079 cp_parser_pragma): Use cp_parser_pragma_kind instead of accessing
3080 pragma_kind field.
3081
56233bd6
JM
30822016-01-15 Jason Merrill <jason@redhat.com>
3083
c5e3b6fc
JM
3084 PR c++/68847
3085 * call.c (build_cxx_call): Use fold_non_dependent_expr.
3086
f3255019
JM
3087 * typeck2.c (cxx_incomplete_type_diagnostic): Use the location of
3088 value.
3089
56233bd6
JM
3090 PR c++/69257
3091 * typeck.c (decay_conversion): Don't call mark_rvalue_use for
3092 array/function-to-pointer conversion. Call
3093 complete_type_or_maybe_complain for lvalue-to-rvalue conversion.
3094 * call.c (convert_like_real): Print call context if
3095 decay_conversion errors.
3096
e6d6ec9e
TV
30972016-01-14 Tom de Vries <tom@codesourcery.com>
3098
3099 PR tree-optimization/68773
3100 * parser.c (cp_parser_oacc_declare, cp_parser_omp_declare_target): Don't
3101 set force_output.
3102
a7ccb9e7
JM
31032016-01-14 Jason Merrill <jason@redhat.com>
3104
3105 PR c++/69261
3106 * constexpr.c (find_array_ctor_elt): Handle splitting RANGE_EXPR.
3107
5342156c
MP
31082016-01-12 Marek Polacek <polacek@redhat.com>
3109
3110 PR c++/68979
3111 * constexpr.c (cxx_eval_check_shift_p): Use permerror rather than
3112 error_at and adjust the return value.
3113
723033a6
JJ
31142016-01-12 Jakub Jelinek <jakub@redhat.com>
3115
65364cc5
JJ
3116 PR objc++/68511
3117 PR c++/69213
3118 * cp-gimplify.c (cp_gimplify_expr) <case INIT_EXPR>: Don't return
3119 GS_ERROR whenever seen_error (), only if *expr_p contains
3120 cilk spawn stmt, but cilk_detect_spawn_and_unwrap failed.
3121
723033a6
JJ
3122 PR c++/66808
3123 PR c++/69000
3124 * pt.c (tsubst_decl): If not local_p, clear DECL_TEMPLATE_INFO.
3125
9fc21977
JM
31262016-01-11 Jason Merrill <jason@redhat.com>
3127
3128 PR c++/69131
3129 * method.c (walk_field_subobs): Add dtor_from_ctor parm.
3130 (process_subob_fn): Likewise. Don't consider triviality if true.
3131 (synthesize_method_walk): Pass it.
3132
655441d6
DM
31332016-01-11 David Malcolm <dmalcolm@redhat.com>
3134
3135 PR c++/68795
3136 * parser.c (cp_parser_postfix_expression): Initialize
3137 close_paren_loc to UNKNOWN_LOCATION; only use it if
3138 it has been written to by
3139 cp_parser_parenthesized_expression_list.
3140 (cp_parser_parenthesized_expression_list): Document the behavior
3141 with respect to the CLOSE_PAREN_LOC param.
3142
9cb6bd74
JJ
31432016-01-11 Jakub Jelinek <jakub@redhat.com>
3144
3145 PR c++/69211
3146 * cp-gimplify.c (cp_fold): If COMPOUND_EXPR or MODIFY_EXPR
3147 folded operands have side-effects, but folding changed any of them,
3148 build a new tree with the folded operands instead of returning the
3149 unfolded tree.
3150
73f0dae2
MP
31512016-01-09 Marek Polacek <polacek@redhat.com>
3152
3153 PR c++/69113
3154 * decl2.c (comdat_linkage): Only set DECL_COMDAT if TREE_PUBLIC is set.
3155
c50e614b
JJ
31562016-01-09 Jakub Jelinek <jakub@redhat.com>
3157
3158 PR c++/69164
3159 * class.c (layout_class_type): Use copy_node to copy FIELD_DECLs.
3160
fe71aa4e
JM
31612016-01-08 Jason Merrill <jason@redhat.com>
3162
3163 PR c++/69158
3164 * constexpr.c (cxx_fold_indirect_ref): Handle array type differing
3165 in completion.
3166
bd8f5bb2
MP
31672016-01-08 Marek Polacek <polacek@redhat.com>
3168
3169 PR c++/68449
3170 * constexpr.c (cxx_eval_constant_expression): Handle NULL initializer.
3171
0795b6f2
JM
31722016-01-08 Jason Merrill <jason@redhat.com>
3173
550c5f8a
JM
3174 * constexpr.c (cxx_eval_call_expression): Remove convert_to_void
3175 workaround.
3176
45177337
JM
3177 PR c++/68983
3178 PR c++/67557
3179 * cvt.c (convert_to_void): Don't strip a TARGET_EXPR of
3180 TREE_ADDRESSABLE type.
3181
0795b6f2
JM
3182 PR c++/68983
3183 PR c++/67557
3184 * call.c (unsafe_copy_elision_p): Look through COMPOUND_EXPR.
3185
ce3e43d7
NS
31862016-01-05 Nathan Sidwell <nathan@acm.org>
3187
3188 PR c++/58583
3189 * pt.c (build_non_dependent_expr): Don't try a checking fold when
3190 parsing an nsdmi.
3191
818ab71a 31922016-01-04 Jakub Jelinek <jakub@redhat.com>
5624e564
JJ
3193
3194 Update copyright years.
ad41bd84 3195\f
818ab71a 3196Copyright (C) 2016 Free Software Foundation, Inc.
ad41bd84
JM
3197
3198Copying and distribution of this file, with or without modification,
3199are permitted in any medium without royalty provided the copyright
3200notice and this notice are preserved.