Fix type-dependence and the current instantiation.
[gcc.git] / gcc / cp / ChangeLog
1 2016-05-13 Jason Merrill <jason@redhat.com>
2
3 PR c++/10200
4 PR c++/69753
5 * pt.c (tsubst_decl): Use uses_template_parms.
6 (instantiate_template_1): Handle non-dependent calls in templates.
7 (value_dependent_expression_p): Handle BASELINK, FUNCTION_DECL.
8 (type_dependent_expression_p): Only consider innermost template args.
9 (dependent_template_arg_p): Check enclosing class of a template here.
10 (dependent_template_p): Not here.
11 (type_dependent_object_expression_p): New.
12 * typeck.c (finish_class_member_access_expr): Use it.
13 * parser.c (cp_parser_postfix_expression): Use it.
14 (cp_parser_postfix_dot_deref_expression): Use it. Use comptypes
15 to detect the current instantiation.
16 (cp_parser_lookup_name): Really implement DR 141.
17 * search.c (lookup_field_r): Prefer a dependent using-declaration.
18 (any_dependent_bases_p): Split out from...
19 * name-lookup.c (do_class_using_decl): ...here.
20 * call.c (build_new_method_call_1): Use it.
21 * semantics.c (finish_call_expr): 'this' doesn't make a call dependent.
22 * tree.c (non_static_member_function_p): Remove.
23 * typeck2.c (build_x_arrow): Use dependent_scope_p.
24
25 * parser.c (cp_parser_postfix_dot_deref_expression): Use
26 complete_type_or_else for unknown_type_node, too.
27
28 2016-05-12 Marek Polacek <polacek@redhat.com>
29
30 PR c/70756
31 * call.c (build_new_op_1): Pass LOC to cp_build_modify_expr.
32 * cp-tree.h (cp_build_modify_expr): Update declaration.
33 (cxx_incomplete_type_error, cxx_incomplete_type_diagnostic): New inline
34 overloads.
35 * cp-ubsan.c (cp_ubsan_dfs_initialize_vtbl_ptrs): Pass INPUT_LOCATION to
36 cp_build_modify_expr.
37 * decl2.c (set_guard): Likewise.
38 (handle_tls_init): Likewise.
39 * init.c (perform_member_init): Likewise.
40 (expand_virtual_init): Likewise.
41 (build_new_1): Likewise.
42 (build_vec_delete_1): Likewise.
43 (get_temp_regvar): Likewise.
44 (build_vec_init): Likewise.
45 * method.c (do_build_copy_assign): Likewise.
46 (assignable_expr): Likewise.
47 * semantics.c (finish_omp_for): Likewise.
48 * typeck.c (cp_build_binary_op): Pass LOCATION to pointer_diff and
49 cp_pointer_int_sum.
50 (cp_pointer_int_sum): Add location parameter. Pass it down to
51 pointer_int_sum.
52 (pointer_diff): Add location parameter. Use it.
53 (build_modify_expr): Pass location down to cp_build_modify_expr.
54 (cp_build_modify_expr): Add location parameter. Use it.
55 (build_x_modify_expr): Pass location down to cp_build_modify_expr.
56 * typeck2.c (cxx_incomplete_type_diagnostic,
57 cxx_incomplete_type_error): Add location parameter.
58
59 2016-05-11 Marek Polacek <polacek@redhat.com>
60
61 PR c++/71024
62 * decl.c (duplicate_decls): Call diagnose_mismatched_decls.
63
64 2016-05-05 Jakub Jelinek <jakub@redhat.com>
65
66 * parser.c (cp_parser_selection_statement): For RID_SWITCH,
67 pass if_p instead of NULL to cp_parser_implicitly_scoped_statement.
68
69 2016-05-04 Marek Polacek <polacek@redhat.com>
70
71 * parser.c (cp_parser_selection_statement): Replace OPT_Wparentheses
72 with OPT_Wdangling_else.
73
74 2016-05-03 Martin Sebor <msebor@redhat.com>
75
76 PR c++/66561
77 * tree.c (builtin_valid_in_constant_expr_p): Treat BUILT_IN_FILE,
78 BUILT_IN_FUNCTION, and BUILT_IN_LINE as constant expressions.
79
80 2016-05-03 Marek Polacek <polacek@redhat.com>
81
82 PR c/70859
83 * call.c (build_cxx_call): Pass location and vNULL down to
84 check_builtin_function_arguments.
85
86 2016-05-03 Richard Biener <rguenther@suse.de>
87
88 * Make-lang.in (cc1plus-checksum.c): For stage-final re-use
89 the checksum from the previous stage.
90
91 2016-05-02 David Malcolm <dmalcolm@redhat.com>
92
93 PR c++/62314
94 * typeck.c (finish_class_member_access_expr): When
95 giving a hint about a possibly-misspelled member name,
96 add a fix-it replacement hint.
97
98 2016-05-02 Cesar Philippidis <cesar@codesourcery.com>
99
100 * cp-tree.h (finish_omp_clauses): Update prototype.
101 * parser.c (cp_parser_oacc_all_clauses): Update call to
102 finish_omp_clauses.
103 (cp_parser_omp_all_clauses): Likewise.
104 (cp_parser_omp_for_loop): Likewise.
105 (cp_omp_split_clauses): Likewise.
106 (cp_parser_oacc_cache): Likewise.
107 (cp_parser_oacc_loop): Likewise.
108 (cp_parser_omp_declare_target):
109 (cp_parser_cilk_simd_all_clauses): Likewise.
110 (cp_parser_cilk_for): Likewise.
111 * pt.c (tsubst_omp_clauses): Replace allow_fields and declare_simd
112 arguments with enum c_omp_region_type ort.
113 (tsubst_omp_clauses): Update calls to finish_omp_clauses.
114 (tsubst_omp_attribute): Update calls to tsubst_omp_clauses.
115 (tsubst_omp_for_iterator): Update calls to finish_omp_clauses.
116 (tsubst_expr): Update calls to tsubst_omp_clauses.
117 * semantics.c (finish_omp_clauses): Replace bool arguments
118 allow_fields, declare_simd, and is_cilk with bitmask ort.
119 (finish_omp_for): Update call to finish_omp_clauses.
120
121 2016-05-02 David Malcolm <dmalcolm@redhat.com>
122
123 PR c++/62314
124 * parser.c (cp_parser_class_head): Capture the start location;
125 use it to emit a fix-it insertion hint when complaining
126 about missing "template <> " in explicit specializations.
127
128 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
129
130 * init.c (build_new_1): Use shift operators instead of wi:: shifts.
131
132 2016-05-02 Richard Biener <rguenther@suse.de>
133
134 * decl.c (grokdeclarator): Properly insert a DECL_EXPR for
135 anonymous VLAs.
136
137 2016-04-29 Paolo Carlini <paolo.carlini@oracle.com>
138
139 PR c++/66644
140 * class.c (check_field_decl): Remove final int* parameter, change
141 the return type to bool; fix logic in order not to reject multiple
142 initialized fields in anonymous struct.
143 (check_field_decls): Adjust call.
144
145 2016-04-29 Cesar Philippidis <cesar@codesourcery.com>
146
147 PR middle-end/70626
148 * parser.c (cp_parser_oacc_loop): Don't augment mask with
149 OACC_LOOP_CLAUSE_MASK.
150 (cp_parser_oacc_kernels_parallel): Update call to
151 c_oacc_split_loop_clauses.
152
153 2016-04-28 Jason Merrill <jason@redhat.com>
154
155 Implement C++17 [[nodiscard]] attribute.
156 PR c++/38172
157 PR c++/54379
158 * parser.c (cp_parser_std_attribute): Handle [[nodiscard]].
159 * tree.c (handle_nodiscard_attribute): New.
160 (cxx_attribute_table): Add [[nodiscard]].
161 * cvt.c (cp_get_fndecl_from_callee, cp_get_callee_fndecl): New.
162 (maybe_warn_nodiscard): New.
163 (convert_to_void): Call it.
164
165 * cvt.c (cp_get_callee): New.
166 * constexpr.c (get_function_named_in_call): Use it.
167 * cxx-pretty-print.c (postfix_expression): Use it.
168 * except.c (check_noexcept_r): Use it.
169 * method.c (check_nontriv): Use it.
170 * tree.c (build_aggr_init_expr): Use it.
171 * cp-tree.h: Declare it.
172
173 2015-04-27 Ryan Burn <contact@rnburn.com>
174 Jeff Law <law@redhat.com>
175
176 PR c++/69024
177 PR c++/68997
178 * cp-gimplify.c (cp_gimplify_expr): Call cilk_cp_detect_spawn_and_unwrap
179 instead of cilk_detect_spawn_and_unwrap.
180 * cp-cilkplus.c (is_conversion_operator_function_decl_p): New.
181 (find_spawn): New.
182 (cilk_cp_detect_spawn_and_unwrap): New.
183 * lambda.c: Include cp-cilkplus.h.
184 * parser.c: Include cp-cilkplus.h.
185 * cp-tree.h (cpp_validate_cilk_plus_loop): Move prototype into...
186 * cp-cilkpus.h: New file.
187
188 2016-04-27 Nathan Sidwell <nathan@acm.org>
189
190 * constexpr.c (get_fundef_copy): Use the original function for
191 non-recursive evaluations.
192 (save_fundef_copy): Always expect a slot to be available.
193
194 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
195
196 * parser.c (cp_parser_postfix_expression): Call
197 warn_for_memset instead of warning directly here.
198
199 2016-04-26 Patrick Palka <ppalka@gcc.gnu.org>
200
201 PR c++/70241
202 * decl.c (build_enumerator): Set current_access_specifier when
203 declaring an enumerator belonging to an in-class enumeration.
204 * parser.c (cp_parser_check_access_in_redecleration): Also
205 consider in-class enumerations.
206
207 2016-04-26 Marek Polacek <polacek@redhat.com>
208
209 PR c++/70744
210 * call.c (build_conditional_expr_1): Call cp_stabilize_reference
211 instead of stabilize_reference.
212 (build_over_call): Likewise.
213 * cp-tree.h (cp_stabilize_reference): Declare.
214 * tree.c (cp_stabilize_reference): New function.
215 * typeck.c (cp_build_unary_op): Call cp_stabilize_reference instead of
216 stabilize_reference.
217 (unary_complex_lvalue): Likewise.
218 (cp_build_modify_expr): Likewise.
219
220 2016-04-26 Jakub Jelinek <jakub@redhat.com>
221
222 PR bootstrap/70704
223 * pt.c (build_non_dependent_expr): Use flag_checking > 1 instead of
224 just flag_checking.
225
226 2016-04-25 Jason Merrill <jason@redhat.com>
227
228 * tree.c (std_attribute_table): New.
229 (init_tree): Register it.
230
231 2016-04-22 Jason Merrill <jason@redhat.com>
232
233 * parser.c (cp_parser_perform_range_for_lookup): Decay the array.
234
235 2016-04-21 Patrick Palka <ppalka@gcc.gnu.org>
236
237 * name-lookup.c (free_saved_scope): New free list of saved_scope
238 structures.
239 (push_to_top_level): Attempt to reuse a saved_scope struct
240 from free_saved_scope instead of allocating a new one each time.
241 (pop_from_top_level_1): Chain the now-unused saved_scope structure
242 onto free_saved_scope.
243
244 2016-04-21 Paolo Carlini <paolo.carlini@oracle.com>
245
246 PR c++/70540
247 * semantics.c (process_outer_var_ref): Unconditionally return
248 error_mark_node when mark_used returns false.
249
250 2016-04-21 Marek Polacek <polacek@redhat.com>
251
252 PR c++/70513
253 * parser.c (cp_parser_enum_specifier): Check and possibly error for
254 extra qualification.
255
256 2016-04-20 Nathan Sidwell <nathan@acm.org>
257
258 PR c++/55635
259 * init.c (build_vec_delete_1): Protect operator delete call in try
260 finally.
261 (build_delete): Likewise.
262 * optimize.c (build_delete_destructor_body): Likewise.
263
264 2016-04-20 Ilya Verbin <ilya.verbin@intel.com>
265
266 PR c++/69363
267 * cp-tree.h (finish_omp_clauses): Add new default argument.
268 * parser.c (cp_parser_cilk_simd_all_clauses): Use finish_omp_clauses
269 instead of c_finish_cilk_clauses.
270 * semantics.c (finish_omp_clauses): Add new argument. Allow
271 floating-point variables in the linear clause for Cilk Plus.
272
273 2016-04-20 Nathan Sidwell <nathan@acm.org>
274
275 * semantics.c (finish_compound_lteral): Don't wrap VECTOR_TYPEs in a
276 TARGET_EXPR.
277
278 2016-04-19 Jason Merrill <jason@redhat.com>
279
280 PR c++/66543
281 * expr.c (mark_exp_read): Handle NON_DEPENDENT_EXPR.
282 * pt.c (make_pack_expansion): Call mark_exp_read.
283 * semantics.c (finish_id_expression): Call mark_type_use in
284 unevaluated context.
285
286 DR 2137
287 * call.c (implicit_conversion): If we choose a copy constructor
288 for list-initialization from the same type, the conversion is an
289 exact match.
290
291 * constexpr.c (breaks): Handle EXIT_EXPR.
292 (cxx_eval_loop_expr): Handle COMPOUND_EXPR body.
293 (cxx_eval_constant_expression): Handle EXIT_EXPR, improve handling
294 of COMPOUND_EXPR.
295
296 PR c++/68206
297 PR c++/68530
298 * constexpr.c (potential_constant_expression_1): Handle LOOP_EXPR
299 and GOTO_EXPR.
300
301 * pt.c (tsubst_expr): Remove shadowing declaration.
302 (tsubst_pack_expansion): Add assert.
303
304 * semantics.c (add_decl_expr): Use DECL_SOURCE_LOCATION.
305
306 PR c++/70522
307 * name-lookup.c (qualified_lookup_using_namespace): Look through
308 hidden names.
309
310 2016-04-18 Michael Matz <matz@suse.de>
311
312 * class.c (build_vtable): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
313 (layout_class_type): Ditto.
314 (build_base_field): Use SET_DECL_ALIGN.
315 (fixup_attribute_variants): Use SET_TYPE_ALIGN.
316 * decl.c (duplicate_decls): Use SET_DECL_ALIGN.
317 (record_unknown_type): Use SET_TYPE_ALIGN.
318 (cxx_init_decl_processing): Ditto.
319 (copy_type_enum): Ditto.
320 (grokfndecl): Use SET_DECL_ALIGN.
321 (copy_type_enum): Use SET_TYPE_ALIGN.
322 * pt.c (instantiate_class_template_1): Use SET_TYPE_ALIGN.
323 (tsubst): Ditto.
324 * tree.c (cp_build_qualified_type_real): Use SET_TYPE_ALIGN.
325 * lambda.c (maybe_add_lambda_conv_op): Use SET_DECL_ALIGN.
326 * method.c (implicitly_declare_fn): Use SET_DECL_ALIGN.
327 * rtti.c (emit_tinfo_decl): Ditto.
328
329 2016-04-18 Jason Merrill <jason@redhat.com>
330
331 PR c++/70690
332 PR c++/70528
333 * class.c (type_maybe_constexpr_default_constructor): New.
334 (type_has_constexpr_default_constructor): Revert.
335
336 2016-04-16 Sandra Loosemore <sandra@codesourcery.com>
337
338 PR target/1078
339
340 * tree.c (cxx_attribute_table): Remove "com_interface" entry.
341 (handle_com_interface_attribute): Delete.
342
343 2016-04-15 Jason Merrill <jason@redhat.com>
344
345 PR c++/70685
346 * constexpr.c (get_fundef_copy): Handle null *slot.
347
348 PR c++/70505
349 * pt.c (tsubst_baselink): Give the new TEMPLATE_ID_EXPR
350 unknown_type_node, too.
351
352 2016-04-15 Jason Merrill <jason@redhat.com>
353 Nathan Sidwell <nathan@acm.org>
354
355 PR c++/70594
356 * constexpr.c (constexpr_call_table): Preserve in GC.
357 (struct fundef_copy, struct fundef_copies_table_t): Delete.
358 (fundef_copies_table): Preserve in GC. Change to pointer to
359 tree->tree hash.
360 (maybe_initialize_fundef_copies_table): Adjust.
361 (get_fundef_copy): Return a TREE_LIST. Use non-inserting search.
362 (save_fundef_copy): Adjust for a TREE_LIST.
363 (cxx_eval_call_expression): Adjust for a fundef_copy TREE_LIST.
364 (fini_constexpr): New.
365 * cp-tree.h (fini_constexpr): Declare.
366 * decl2.c (c_parse_final_cleanups): Call fini_constexpr.
367
368 2016-04-15 Jakub Jelinek <jakub@redhat.com>
369
370 PR c/70436
371 * parser.c (cp_parser_pragma): Add IF_P argument, pass it down
372 where needed.
373 (cp_parser_declaration_seq_opt, cp_parser_member_specification_opt,
374 cp_parser_objc_interstitial_code, cp_parser_omp_declare_simd,
375 cp_parser_oacc_routine): Adjust cp_parser_pragma callers.
376 (cp_parser_statement): Likewise. Adjust cp_parser_cilk_for caller.
377 (cp_parser_omp_structured_block): Add IF_P argument, pass it down to
378 cp_parser_statement.
379 (cp_parser_oacc_data, cp_parser_oacc_host_data, cp_parser_oacc_loop,
380 cp_parser_oacc_kernels_parallel, cp_parser_omp_critical,
381 cp_parser_omp_simd, cp_parser_omp_for, cp_parser_omp_master,
382 cp_parser_omp_ordered, cp_parser_omp_parallel, cp_parser_omp_single,
383 cp_parser_omp_task, cp_parser_omp_taskgroup, cp_parser_omp_distribute,
384 cp_parser_omp_teams, cp_parser_omp_target_data, cp_parser_omp_target,
385 cp_parser_omp_taskloop, cp_parser_omp_construct,
386 cp_parser_cilk_grainsize, cp_parser_cilk_simd, cp_parser_cilk_for):
387 Add IF_P argument, pass it down where needed.
388 (cp_parser_omp_for_loop): Likewise. Clear IF_P if nbraces.
389 (cp_parser_omp_sections_scope): Adjust cp_parser_omp_structured_block
390 calls.
391
392 2016-04-14 Jason Merrill <jason@redhat.com>
393
394 PR c++/70494
395 * decl.c (cxx_maybe_build_cleanup): Handle non-decls.
396 * typeck2.c (split_nonconstant_init_1): Use it.
397
398 PR c++/70528
399 * class.c (type_has_constexpr_default_constructor): Return true
400 for an implicitly declared constructor.
401
402 PR c++/70622
403 * parser.c (cp_parser_init_declarator): Add auto_result parm.
404 (cp_parser_simple_declaration): Pass it.
405 (strip_declarator_types): New.
406
407 PR c++/70543
408 * pt.c (value_dependent_expression_p) [VAR_DECL]: A type-dependent
409 initializer also makes the variable value-dependent.
410
411 PR c++/70648
412 * constexpr.c (cxx_eval_store_expression): Also copy
413 CONSTRUCTOR_NO_IMPLICIT_ZERO.
414
415 2016-04-14 Martin Sebor <msebor@redhat.com>
416
417 PR c++/69517
418 PR c++/70019
419 PR c++/70588
420 * cp-tree.h, decl.c, init.c, typeck2.c: Revert.
421
422 2016-04-14 Jason Merrill <jason@redhat.com>
423
424 * call.c, decl.c, error.c, cp-tree.h, decl.c: Revert empty
425 parameter ABI change.
426
427 2016-04-13 Martin Sebor <msebor@redhat.com>
428
429 PR c++/69517
430 PR c++/70019
431 PR c++/70588
432 * cp-tree.h (throw_bad_array_length, build_vla_check): Declare new
433 functions.
434 * decl.c (check_initializer, cp_finish_decl): Call them.
435 (reshape_init_r): Reject incompletely braced intializer-lists
436 for VLAs.
437 * init.c (throw_bad_array_length, build_vla_check)
438 (build_vla_size_check, build_vla_init_check): Define new functions.
439 * typeck2.c (split_nonconstant_init_1): Use variably_modified_type_p()
440 to detect a VLA.
441 (store_init_value): Same.
442
443 2016-04-13 Jason Merrill <jason@redhat.com>
444
445 Warn about empty parameter ABI with -Wabi=9.
446 * call.c (empty_class_msg, mark_for_abi_warning)
447 (warn_empty_class_abi): New.
448 (build_call_a): Use them.
449 * decl.c (store_parm_decls): Use mark_for_abi_warning.
450 * error.c (pp_format_to_string): New.
451
452 Pass empty class parameters like C.
453 * call.c (pass_as_empty_struct, empty_class_arg): New.
454 (type_passed_as, build_x_va_arg): Use pass_as_empty_struct.
455 (build_call_a): Use empty_class_arg.
456 * cp-tree.h (CPTI_EMPTY_STRUCT, empty_struct_type): New.
457 * decl.c (cxx_init_decl_processing): Create empty_struct_type.
458
459 2016-04-13 Jason Merrill <jason@redhat.com>
460
461 PR c++/70627
462 * decl.c (start_enum): Don't change an existing ENUM_UNDERLYING_TYPE.
463
464 2016-04-13 Paolo Carlini <paolo.carlini@oracle.com>
465
466 PR c++/70635
467 * pt.c (resolve_typename_type): Fix typos in infinite recursion
468 avoidance mechanism.
469
470 2016-04-13 Jason Merrill <jason@redhat.com>
471
472 PR c++/70634
473 * pt.c (instantiation_dependent_uneval_expression_p): Split out
474 from instantiation_dependent_expression_p.
475 (value_dependent_expression_p): Use it for unevaluated operands.
476 (instantiation_dependent_r): Don't check value-dependence.
477 (instantiation_dependent_expression_p): Check
478 value-dependence of the expression as a whole.
479 * cp-tree.h: Declare instantiation_dependent_uneval_expression_p.
480 * semantics.c (finish_decltype_type): Use it.
481
482 * constexpr.c (potential_nondependent_constant_expression): New.
483 (potential_nondependent_static_init_expression): New.
484 (maybe_constant_value_1, fold_non_dependent_expr)
485 (maybe_constant_init): Use them.
486 * pt.c (instantiate_non_dependent_expr_sfinae)
487 (instantiate_non_dependent_or_null, convert_nontype_argument): Use
488 them.
489 * cp-tree.h: Declare them.
490
491 2016-04-13 Jakub Jelinek <jakub@redhat.com>
492
493 PR c++/70594
494 * decl.c (pop_labels_1): Removed.
495 (note_label, sort_labels): New functions.
496 (pop_labels): During named_labels traversal, just push the slot
497 pointers into a vector, then qsort it by DECL_UID and only then
498 call pop_label and chain it into BLOCK_VARS.
499
500 2016-04-13 Jason Merrill <jason@redhat.com>
501
502 PR c++/70615
503 * cp-gimplify.c (cp_genericize_r): Expand PTRMEM_CST here.
504 (cp_gimplify_expr): Not here.
505
506 2016-04-12 Patrick Palka <ppalka@gcc.gnu.org>
507
508 PR c++/70610
509 * tree.c (lvalue_kind) [NON_DEPENDENT_EXPR]: Unconditionally
510 recurse into it.
511 * typeck.c (build_x_conditional_expr): Unconditionally remember
512 that the result is an lvalue or xvalue.
513
514 2016-04-12 Jason Merrill <jason@redhat.com>
515
516 * class.c (is_really_empty_class): A zero-length array is empty.
517 An unnamed bit-field doesn't make a class non-empty.
518
519 2016-04-12 Paolo Carlini <paolo.carlini@oracle.com>
520
521 PR c++/68722
522 * parser.c (cp_parser_cache_defarg): When file ends in default
523 argument simply return error_mark_node.
524
525 2016-04-12 Nathan Sidwell <nathan@acm.org>
526
527 PR c++/70501
528 * constexpr.c (cxx_eval_bare_aggregate): Handle VECTOR_TYPE
529 similarly to PMF.
530
531 2016-04-11 Jason Merrill <jason@redhat.com>
532
533 * mangle.c (decl_is_template_id): The template itself counts as a
534 template-id.
535
536 2016-04-08 Patrick Palka <ppalka@gcc.gnu.org>
537
538 PR c++/70590
539 PR c++/70452
540 * constexpr.c (cxx_eval_outermost_expression): Call unshare_expr
541 on the result if it's not a CONSTRUCTOR.
542
543 2016-04-07 Patrick Palka <ppalka@gcc.gnu.org>
544
545 PR c++/70452
546 * constexpr.c (find_constructor): New function.
547 (unshare_constructor): New function.
548 (cxx_eval_call_expression): Use unshare_constructor instead of
549 unshare_expr.
550 (find_array_ctor_elt): Likewise.
551 (cxx_eval_vec_init_1): Likewise.
552 (cxx_eval_store_expression): Likewise.
553 (cxx_eval_constant_expression): Likewise.
554
555 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
556
557 PR c/70436
558 * cp-tree.h (FOR_EACH_CLONE): Restructure macro to avoid
559 potentially generating a future -Wparentheses warning in its
560 callers.
561
562 2016-04-06 Jason Merrill <jason@redhat.com>
563
564 * class.c (check_abi_tags): Fix function template handling.
565
566 2016-04-05 Nathan Sidwell <nathan@acm.org>
567
568 PR c++/70512
569 * class.c (fixup_may_alias): New.
570 (fixup_attribute_variants): Call it.
571
572 2016-04-05 Patrick Palka <ppalka@gcc.gnu.org>
573
574 PR c++/70452
575 * constexpr.c (struct fundef_copy): New struct.
576 (struct fundef_copies_table_t): New struct.
577 (fundef_copies_table): New static variable.
578 (maybe_initialize_fundef_copies_table): New static function.
579 (get_fundef_copy): New static function.
580 (save_fundef_copy): New static function.
581 (cxx_eval_call_expression): Use get_fundef_copy, and
582 save_fundef_copy.
583 (constexpr_call_table): Add "deletable" GTY marker.
584
585 2016-04-05 Patrick Palka <ppalka@gcc.gnu.org>
586
587 PR c++/70452
588 * cp-tree.h (class cache_map): Remove.
589 * constexpr.c (cv_cache): Change type to
590 GTY((deletable)) hash_map<tree, tree> *.
591 (maybe_constant_value): Adjust following the change to cv_cache.
592 (clear_cv_cache): New static function.
593 (clear_cv_and_fold_caches): Use it.
594 * cp-gimplify.c (fold_cache): Change type to
595 GTY((deletable)) hash_map<tree, tree> *.
596 (clear_fold_cache): Adjust following the change to fold_cache.
597 (cp_fold): Likewise.
598
599 2016-04-02 Martin Sebor <msebor@redhat.com>
600
601 PR c++/67376
602 PR c++/70170
603 PR c++/70172
604 PR c++/70228
605 * constexpr.c (diag_array_subscript): New function.
606 (cxx_eval_array_reference): Detect out of bounds array indices.
607
608 2016-04-01 Jason Merrill <jason@redhat.com>
609
610 PR c++/70449
611 PR c++/70344
612 * pt.c (instantiate_decl): A function isn't fully defined if
613 DECL_INITIAL is error_mark_node.
614 * constexpr.c (cxx_eval_call_expression): Likewise.
615
616 2016-04-01 Jakub Jelinek <jakub@redhat.com>
617 Marek Polacek <polacek@redhat.com>
618
619 PR c++/70488
620 * init.c (warn_placement_new_too_small): Test whether
621 DECL_SIZE_UNIT or TYPE_SIZE_UNIT are integers that fit into uhwi.
622
623 2016-04-01 Nathan Sidwell <nathan@acm.org>
624
625 PR c++/68475
626 * decl.c (check_redeclaration_exception_specification): Check
627 regardless of -fno-exceptions.
628 * typeck2.c (merge_exception_specifiers): Relax assert by checking
629 flag_exceptions too.
630
631 2016-03-31 Nathan Sidwell <nathan@acm.org>
632
633 * decl.c (start_preparsed_function): Remove unnecessary bracing.
634 (finish_destructor_body): Don't emit operator delete here.
635
636 2016-03-31 Nathan Sidwell <nathan@acm.org>
637
638 PR c++/70393
639 * constexpr.c (cxx_eval_store_expression): Keep CONSTRUCTOR
640 elements in field order.
641
642 2016-03-31 Marek Polacek <polacek@redhat.com>
643
644 PR c/70297
645 * decl.c (duplicate_decls): Also set TYPE_ALIGN and TYPE_USER_ALIGN.
646
647 2016-03-31 Richard Biener <rguenther@suse.de>
648
649 PR c++/70430
650 * typeck.c (cp_build_binary_op): Fix operand order of vector
651 conditional in truth op handling.
652
653 2016-03-29 Jason Merrill <jason@redhat.com>
654
655 PR c++/70353
656 * decl.c (make_rtl_for_nonlocal_decl): Don't defer local statics
657 in constexpr functions.
658
659 2016-03-28 Jason Merrill <jason@redhat.com>
660
661 PR c++/70422
662 PR c++/64266
663 PR c++/70353
664 * decl.c, pt.c, constexpr.c: Revert last patch.
665
666 2016-03-25 Jason Merrill <jason@redhat.com>
667 Martin Liška <mliska@suse.cz>
668
669 PR c++/64266
670 PR c++/70353
671 Core issue 1962
672 * decl.c (cp_fname_init): Decay the initializer to pointer.
673 (cp_make_fname_decl): Set DECL_DECLARED_CONSTEXPR_P,
674 DECL_VALUE_EXPR, DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P.
675 Don't call cp_finish_decl.
676 * pt.c (tsubst_expr) [DECL_EXPR]: Set DECL_VALUE_EXPR,
677 DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P. Don't call cp_finish_decl.
678 * constexpr.c (cxx_eval_constant_expression) [VAR_DECL]:
679 Handle DECL_VALUE_EXPR.
680
681 2016-03-24 Jason Merrill <jason@redhat.com>
682
683 PR c++/70386
684 * constexpr.c (cxx_eval_bare_aggregate): Handle PMFs.
685
686 PR c++/70323
687 * constexpr.c (cxx_eval_call_expression): Don't cache result if
688 *overflow_p.
689
690 2016-03-24 Patrick Palka <ppalka@gcc.gnu.org>
691
692 PR c++/62212
693 * tree.c (build_cplus_array_type): Determine type-dependentess
694 with uses_template_parms instead of with dependent_type_p.
695
696 2016-03-23 Patrick Palka <ppalka@gcc.gnu.org>
697
698 PR c++/70347
699 * typeck.c (process_init_constructor_union): If the initializer
700 is empty, use the union's NSDMI if it has one.
701
702 2016-03-23 Patrick Palka <ppalka@gcc.gnu.org>
703
704 PR c++/70332
705 * pt.c (tsubst_copy) [PARM_DECL]: Handle the use of 'this' in an
706 NSDMI that's part of an aggregrate initialization.
707
708 2016-03-23 Jakub Jelinek <jakub@redhat.com>
709
710 PR c++/70001
711 * constexpr.c (cxx_eval_vec_init_1): Reuse CONSTRUCTOR initializers
712 for 1..max even for multi-dimensional arrays. Call unshare_expr
713 on it.
714
715 PR c++/70323
716 * constexpr.c (cxx_eval_constant_expression): Diagnose overflow
717 on TREE_OVERFLOW constants.
718
719 PR c++/70376
720 * cp-gimplify.c (genericize_omp_for_stmt): Don't walk OMP_FOR_CLAUSES
721 for OMP_TASKLOOP here.
722 (cp_genericize_r): Handle OMP_TASKLOOP like OMP_TASK, except do call
723 genericize_omp_for_stmt instead of cp_walk_tree on OMP_BODY.
724
725 2016-03-23 Alexandre Oliva <aoliva@redhat.com>
726 Jason Merrill <jason@redhat.com>
727 Jakub Jelinek <jakub@redhat.com>
728
729 PR c++/69315
730 * cp-tree.h (defer_mark_used_calls, deferred_mark_used_calls): Remove.
731 * decl.c (defer_mark_used_calls, deferred_mark_used_calls): Remove.
732 (finish_function): Don't set or test them.
733 * decl2.c (mark_used): Don't handle defer_mark_used_calls.
734
735 2016-03-23 Jason Merrill <jason@redhat.com>
736
737 PR c++/70344
738 * constexpr.c (cxx_eval_call_expression): Catch invalid recursion.
739
740 2016-03-23 Marek Polacek <polacek@redhat.com>
741
742 PR c++/69884
743 * pt.c (canonicalize_type_argument): Use OPT_Wignored_attributes.
744
745 2016-03-22 Ilya Enkovich <enkovich.gnu@gmail.com>
746
747 * call.c (build_conditional_expr_1): Always use original
748 condition type for vector type checks and build.
749
750 2016-03-22 Patrick Palka <ppalka@gcc.gnu.org>
751
752 PR c++/70096
753 * pt.c (tsubst_decl): Clear the DECL_MODE of the new decl.
754
755 2016-03-22 Patrick Palka <ppalka@gcc.gnu.org>
756
757 PR c++/70204
758 * constexpr.c (non_const_var_error): Check
759 DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P.
760
761 2016-03-21 Richard Henderson <rth@redhat.com>
762
763 PR c++/70273
764 * decl.c (notice_forced_label_r): New.
765 (cp_finish_decl): Use it.
766
767 2016-03-21 Jason Merrill <jason@redhat.com>
768
769 PR c++/70285
770 * cp-gimplify.c (cp_fold) [COND_EXPR]: Handle bit-fields.
771
772 2016-03-18 Jason Merrill <jason@redhat.com>
773
774 PR c++/70139
775 * constexpr.c (cxx_eval_call_expression): Fix trivial copy.
776
777 PR c++/70147
778 * class.c (vptr_via_virtual_p): New.
779 (most_primary_binfo): Factor out of build_rtti_vtbl_entries.
780 * cp-ubsan.c (cp_ubsan_dfs_initialize_vtbl_ptrs): Don't clear
781 a vptr from any virtual base in a not-in-charge 'structor.
782
783 * decl.c (build_clobber_this): Factor out of
784 start_preparsed_function and begin_destructor_body. Handle
785 virtual bases better.
786
787 * class.c (build_if_in_charge): Split out from build_base_path.
788 * init.c (expand_virtual_init, expand_default_init): Use it.
789 * call.c (build_special_member_call): Use it.
790
791 2016-03-18 Jakub Jelinek <jakub@redhat.com>
792
793 PR c++/70267
794 * init.c (build_new_1): Complain and return error_mark_node
795 if alloc_fn is not _Jv_AllocObject function returning pointer.
796
797 2016-03-18 Patrick Palka <ppalka@gcc.gnu.org>
798
799 PR c++/70205
800 * search.c (adjust_result_of_qualified_name_lookup): Don't
801 update the BASELINK_BINFO of DECL if the second call
802 to lookup_base fails.
803
804 2016-03-18 Patrick Palka <ppalka@gcc.gnu.org>
805
806 PR c++/70218
807 * parser.c (cp_parser_lambda_expression): Move call to
808 pop_deferring_access_checks ahead of the call to
809 cp_parser_end_tentative_firewall.
810
811 2016-03-17 Jakub Jelinek <jakub@redhat.com>
812
813 PR c++/70144
814 * cp-tree.h (magic_varargs_p): Return int instead of bool.
815 * call.c (magic_varargs_p): Return int instead of bool, return 2 for
816 Cilk+ reductions, otherwise 1 for magic varargs and 0 for normal
817 varargs.
818 (build_over_call): If magic_varargs_p == 2, call reject_gcc_builtin,
819 if magic_varargs_p == 1, call decay_conversion
820 instead of mark_type_use. Don't store error_mark_node arguments to
821 argarray, instead return error_mark_node.
822
823 PR c++/70272
824 * decl.c (begin_destructor_body): Don't insert clobber if
825 is_empty_class (current_class_type).
826
827 2016-03-17 Marek Polacek <polacek@redhat.com>
828
829 PR c++/70194
830 * typeck.c (warn_for_null_address): New function.
831 (cp_build_binary_op): Call it.
832
833 2016-03-16 Jason Merrill <jason@redhat.com>
834
835 PR c++/70259
836 * decl.c (start_preparsed_function): Don't clobber an empty base.
837
838 2016-03-16 Jakub Jelinek <jakub@redhat.com>
839
840 PR c++/70147
841 * cp-ubsan.c (cp_ubsan_dfs_initialize_vtbl_ptrs): Conditionalize
842 BINFO_VIRTUAL_P vtable clearing on current_in_charge_parm.
843
844 PR c++/70147
845 * cp-ubsan.c (cp_ubsan_maybe_initialize_vtbl_ptrs): Temporarily
846 set in_base_initializer.
847
848 2016-03-15 Marek Polacek <polacek@redhat.com>
849
850 PR c++/70209
851 * tree.c (strip_typedefs): Call strip_typedefs again on the
852 DECL_ORIGINAL_TYPE result.
853
854 2016-03-15 Jason Merrill <jason@redhat.com>
855
856 PR c++/70095
857 * pt.c (instantiate_decl): Fix call to variable_template_p.
858
859 PR c++/70141
860 * pt.c (for_each_template_parm_r): Always walk into TYPENAME_TYPE.
861
862 2016-03-14 Casey Carter <casey@carter.net>
863 Jason Merrill <jason@redhat.com>
864
865 P0184R0: Generalizing the Range-Based For Loop
866 * parser.c (cp_convert_range_for): Set the type of __end separately.
867 (cp_parser_perform_range_for_lookup): Allow different begin/end
868 types if they are comparable.
869
870 2016-03-12 Patrick Palka <ppalka@gcc.gnu.org>
871
872 PR c++/70106
873 * semantics.c (force_paren_expr): Just build a PAREN_EXPR when
874 processing_template_decl and EXPR is a SCOPE_REF.
875
876 2016-03-10 Patrick Palka <ppalka@gcc.gnu.org>
877 Jakub Jelinek <jakub@redhat.com>
878
879 PR c++/70001
880 * constexpr.c (cxx_eval_vec_init_1): For pre_init case, reuse
881 return value from cxx_eval_constant_expression from earlier
882 elements if it is valid constant initializer requiring no
883 relocations.
884
885 2016-03-10 Marek Polacek <polacek@redhat.com>
886
887 PR c++/70153
888 * cp-gimplify.c (cp_fold): Handle UNARY_PLUS_EXPR.
889
890 2016-03-09 Cesar Philippidis <cesar@codesourcery.com>
891
892 * parser.c (cp_parser_oacc_loop): Update cclauses and clauses
893 when calling c_finish_omp_clauses.
894
895 2016-03-08 Jason Merrill <jason@redhat.com>
896
897 * parser.c (cp_parser_diagnose_invalid_type_name): Give helpful
898 diagnostic for use of "concept".
899 (cp_parser_requires_clause_opt): And "requires".
900 (cp_parser_type_parameter, cp_parser_late_return_type_opt)
901 (cp_parser_explicit_template_declaration): Adjust.
902 * Make-lang.in (check-c++-all): Add "concepts" to std list.
903
904 P0036R0: Unary Folds and Empty Parameter Packs
905 * pt.c (expand_empty_fold): Remove special cases for *,+,&,|.
906
907 2016-03-08 Jakub Jelinek <jakub@redhat.com>
908
909 PR c++/70135
910 * constexpr.c (cxx_eval_loop_expr): Forget saved values of SAVE_EXPRs
911 even after the last iteration of the loop.
912
913 * decl.c (duplicate_decls): Fix spelling - becuase -> because.
914
915 2016-03-07 Patrick Palka <ppalka@gcc.gnu.org>
916
917 PR c++/66786
918 * pt.c (get_template_info): Handle PARM_DECL.
919 (template_class_depth): Check DECL_P instead of
920 VAR_OR_FUNCTION_DECL_P.
921
922 2016-03-05 Jason Merrill <jason@redhat.com>
923
924 PR c++/67364
925 * constexpr.c (cxx_eval_store_expression): Replace
926 CONSTRUCTOR_ELTS in nested CONSTRUCTORs, too.
927
928 2016-03-05 Patrick Palka <ppalka@gcc.gnu.org>
929
930 PR c++/66786
931 * pt.c (template_class_depth): Given a lambda type, iterate
932 into its LAMBDA_TYPE_EXTRA_SCOPE field instead of its
933 TYPE_CONTEXT. Given a VAR_DECL, iterate into its
934 CP_DECL_CONTEXT.
935
936 2016-03-04 Jason Merrill <jason@redhat.com>
937
938 PR c++/69203
939 * cp-tree.h (COND_EXPR_IS_VEC_DELETE): New.
940 * init.c (build_vec_delete_1): Set it.
941 * constexpr.c (potential_constant_expression_1) [COND_EXPR]: Check it.
942
943 2016-03-04 Jakub Jelinek <jakub@redhat.com>
944
945 * decl.c (start_preparsed_function): Don't emit start clobber at the
946 start of constructor clones.
947
948 PR c++/70035
949 * cp-tree.h (cp_ubsan_maybe_initialize_vtbl_ptrs): New prototype.
950 * decl.c (start_preparsed_function): Call
951 cp_ubsan_maybe_initialize_vtbl_ptrs if needed.
952 * cp-ubsan.c (cp_ubsan_dfs_initialize_vtbl_ptrs,
953 cp_ubsan_maybe_initialize_vtbl_ptrs): New functions.
954
955 2016-03-04 Jason Merrill <jason@redhat.com>
956
957 PR c++/67364
958 * constexpr.c (cxx_eval_component_reference): Further tweak.
959
960 * constexpr.c (struct constexpr_ctx): Add save_exprs field.
961 (cxx_eval_loop_expr): Discard SAVE_EXPR values before looping.
962 (cxx_eval_constant_expression) [SAVE_EXPR]: Add it to the set.
963 (cxx_eval_outermost_constant_expr, is_sub_constant_expr): Initialize.
964
965 PR c++/70067
966 * tree.c (strip_typedefs): Handle TYPENAME_TYPE lookup finding the
967 same type.
968
969 2016-03-03 Jason Merrill <jason@redhat.com>
970
971 * method.c (synthesized_method_walk): operator= can also be constexpr.
972
973 * pt.c (tsubst_copy_and_build) [LAMBDA_EXPR]: Get
974 LAMBDA_EXPR_RETURN_TYPE from the instantiated closure.
975
976 PR c++/67164
977 * pt.c (copy_template_args): New.
978 (tsubst_pack_expansion): Use it.
979
980 * call.c (build_aggr_conv): Use get_nsdmi.
981
982 PR c++/51406
983 * typeck.c (build_static_cast_1): Avoid folding back to lvalue.
984
985 PR c++/67364
986 * constexpr.c (cxx_eval_component_reference): Just return an empty
987 CONSTRUCTOR for an empty class.
988
989 2016-03-01 Jason Merrill <jason@redhat.com>
990
991 PR c++/70036
992 * parser.c (cp_parser_requires_clause): Call
993 check_for_bare_parameter_packs.
994
995 PR c++/51489
996 * constexpr.c (cxx_eval_binary_expression): Don't VERIFY_CONSTANT
997 the operands.
998
999 PR c++/69995
1000 * constexpr.c (cxx_eval_call_expression): Unshare arg.
1001 (cxx_eval_constant_expression) [DECL_EXPR]: Unshare init.
1002 [TARGET_EXPR]: Unshare init.
1003
1004 2016-03-01 Patrick Palka <ppalka@gcc.gnu.org>
1005
1006 PR c++/68948
1007 PR c++/69961
1008 * pt.c (tsubst_baselink): Reinstate the check for an invalid
1009 constructor call.
1010
1011 2016-02-28 Jason Merrill <jason@redhat.com>
1012
1013 PR c++/69995
1014 * constexpr.c (cxx_eval_store_expression): Unshare init.
1015
1016 2016-02-26 Jason Merrill <jason@redhat.com>
1017
1018 PR c++/69958
1019 * pt.c (make_argument_pack): New.
1020 (tsubst_copy) [SIZEOF_EXPR]: Handle partial expansion.
1021 (tsubst_copy_and_build): Likewise.
1022
1023 2016-02-25 Jason Merrill <jason@redhat.com>
1024
1025 PR c++/69889
1026 * cp-tree.h (AGGR_INIT_FROM_THUNK_P): New.
1027 * tree.c (build_aggr_init_expr): Set it.
1028 * semantics.c (simplify_aggr_init_expr): Check it.
1029 * cp-gimplify.c (cp_genericize_r): Don't walk into
1030 a call/aggr_init from a thunk.
1031
1032 PR c++/69842
1033 * method.c (forward_parm): Handle parameter packs.
1034 * lambda.c (maybe_add_lambda_conv_op): Use it for them.
1035
1036 PR c++/67364
1037 * constexpr.c (cxx_eval_component_reference): Don't complain about
1038 unevaluated empty classes.
1039
1040 PR c++/68049
1041 * tree.c (strip_typedefs): Use DECL_ORIGINAL_TYPE.
1042
1043 2016-02-25 Patrick Palka <ppalka@gcc.gnu.org>
1044
1045 PR c++/69736
1046 * cp-tree.h (REF_PARENTHESIZED_P): Adjust documentation.
1047 (maybe_undo_parenthesized_ref): Declare.
1048 * semantics.c (maybe_undo_parenthesized_ref): Split out from
1049 check_return_expr.
1050 (finish_call_expr): Use it.
1051 * typeck.c (check_return_expr): Use it.
1052 * pt.c (tsubst_copy_and_build) [INDIRECT_REF]: Retain the
1053 REF_PARENTHESIZED_P flag.
1054
1055 2016-02-24 Jakub Jelinek <jakub@redhat.com>
1056
1057 PR c++/69922
1058 * class.c (build_base_path): Set TREE_NO_WARNING on the null_test.
1059 Avoid folding it.
1060 * init.c (build_vec_delete_1, build_delete): Don't fold the non-NULL
1061 tests.
1062 * cp-gimplify.c (cp_fold): For TREE_NO_WARNING comparisons with NULL,
1063 unless they are folded into INTEGER_CST, error_mark_node or some
1064 comparison with NULL, avoid folding them and use either the original
1065 comparison or non-folded comparison of folded arguments.
1066 * cp-ubsan.c (cp_ubsan_instrument_vptr): Set TREE_NO_WARNING on the
1067 comparison, don't fold the comparison right away.
1068
1069 2016-02-24 Jason Merrill <jason@redhat.com>
1070
1071 PR c++/69323
1072 * friend.c (make_friend_class): Likewise.
1073 * decl.c (lookup_and_check_tag): Diagnose invalid dependent friend.
1074
1075 2016-02-24 Jason Merrill <jason@redhat.com>
1076
1077 PR c++/69323
1078 * pt.c (instantiate_class_template_1): Set
1079 processing_template_decl before substituting friend_type.
1080
1081 016-02-24 Martin Sebor <msebor@redhat.com>
1082
1083 PR c++/69912
1084 * tree.c (build_ctor_subob_ref): Compare types' main variants
1085 instead of the types as they are.
1086
1087 2016-02-24 Jason Merrill <jason@redhat.com>
1088
1089 * decl.c (start_preparsed_function): Condition ctor clobber on
1090 flag_lifetime_dse > 1.
1091
1092 * cp-gimplify.c (cp_fold): Don't fold constexpr calls if -fno-inline.
1093
1094 2016-02-19 Jason Merrill <jason@redhat.com>
1095
1096 PR c++/69743
1097 * call.c (remaining_arguments): No longer static.
1098 * cp-tree.h: Declare it.
1099 * pt.c (more_specialized_fn): Use it.
1100
1101 2016-02-19 Jakub Jelinek <jakub@redhat.com>
1102 Bernd Edlinger <bernd.edlinger@hotmail.de>
1103
1104 * Make-lang.in: Invoke gperf with -L C++.
1105 * cfns.gperf: Remove prototypes for hash and libc_name_p
1106 inlines.
1107 * cfns.h: Regenerated.
1108 * except.c (nothrow_libfn_p): Adjust.
1109
1110 2016-02-19 Jakub Jelinek <jakub@redhat.com>
1111
1112 PR c++/69850
1113 * rtti.c (ifnonnull): Set TREE_NO_WARNING on the condition, use
1114 NE_EXPR instead of EQ_EXPR and swap last two arguments on COND_EXPR.
1115
1116 2016-02-19 Patrick Palka <ppalka@gcc.gnu.org>
1117
1118 PR c++/68948
1119 * pt.c (tsubst_baselink): Don't diagnose an invalid constructor
1120 call here.
1121 * semantics.c (finish_call_expr): Don't assume a constructor
1122 call is dependent if only the "this" pointer is dependent. When
1123 building a constructor call, always use a dummy object.
1124
1125 2016-02-19 Jakub Jelinek <jakub@redhat.com>
1126
1127 PR c++/69850
1128 * init.c (build_vec_delete_1): Set TREE_NO_WARNING on the NE_EXPR
1129 condition.
1130 * cp-gimplify.c (cp_fold): Propagate TREE_NO_WARNING from binary
1131 operators if folding preserved the binop, just with different
1132 arguments.
1133
1134 PR c++/67767
1135 * parser.c (cp_parser_std_attribute_spec_seq): Don't assume
1136 attr_spec is always single element chain, chain all the attributes
1137 properly together in the right order.
1138
1139 2016-02-18 Jason Merrill <jason@redhat.com>
1140
1141 * mangle.c (maybe_check_abi_tags): Add for_decl parm. Call
1142 mangle_decl.
1143 (mangle_decl): Call maybe_check_abi_tags for function scope.
1144 (mangle_guard_variable): Call maybe_check_abi_tags here.
1145 (write_guarded_var_name): Not here.
1146
1147 2016-02-17 Jason Merrill <jason@redhat.com>
1148
1149 PR c++/65985
1150 * constexpr.c (build_constexpr_constructor_member_initializers):
1151 Handle an additional STATEMENT_LIST.
1152
1153 PR c++/68585
1154 * constexpr.c (cxx_eval_bare_aggregate): Fix 'changed' detection.
1155
1156 PR c++/68679
1157 * decl2.c (reset_type_linkage_2): Look through member templates.
1158
1159 2016-02-17 Jakub Jelinek <jakub@redhat.com>
1160
1161 PR c++/69850
1162 * init.c (build_delete): Set TREE_NO_WARNING on ifexp.
1163
1164 2016-02-17 Jason Merrill <jason@redhat.com>
1165
1166 PR c++/69842
1167 * method.c (forward_parm): Split out from...
1168 (add_one_base_init): ...here.
1169 * lambda.c (maybe_add_lambda_conv_op): Use it.
1170
1171 2016-02-16 Jason Merrill <jason@redhat.com>
1172
1173 PR c++/10200
1174 PR c++/69753
1175 * call.c, cp-tree.h, name-lookup.c, pt.c, search.c, semantics.c,
1176 tree.c, typeck2.c: Revert earlier changes.
1177 * parser.c (cp_parser_lookup_name): Ignore namespace-scope
1178 non-type templates after -> or .
1179
1180 2016-02-16 Jakub Jelinek <jakub@redhat.com>
1181
1182 PR c/69835
1183 * typeck.c (cp_build_binary_op): Revert 2015-09-09 change.
1184
1185 2016-02-16 Jason Merrill <jason@redhat.com>
1186
1187 PR c++/69657
1188 * name-lookup.c (lookup_qualified_name): Add find_hidden parm.
1189 (set_decl_namespace): Pass it. Complain about finding a hidden friend.
1190 * name-lookup.h: Adjust.
1191
1192 2016-02-16 James Norris <jnorris@codesourcery.com>
1193
1194 * parser.c (cp_parser_oacc_data_clause_deviceptr): Remove checking.
1195 * semantics.c (finish_omp_clauses): Add deviceptr checking.
1196
1197 2016-02-15 Jakub Jelinek <jakub@redhat.com>
1198
1199 PR c++/69658
1200 * init.c (expand_default_init): Only call reshape_init
1201 in the direct-initialization from an initializer list case.
1202
1203 2016-02-15 Jason Merrill <jason@redhat.com>
1204
1205 PR c++/69753
1206 * semantics.c (finish_call_expr): Implicit 'this' does not make
1207 the call dependent.
1208 * search.c (any_dependent_bases_p): Split out...
1209 * name-lookup.c (do_class_using_decl): ...from here.
1210 * call.c (build_new_method_call_1): Don't complain about missing object
1211 if there are dependent bases. Tweak error.
1212 * tree.c (non_static_member_function_p): Remove.
1213 * pt.c (type_dependent_expression_p): A member template of a
1214 dependent type is dependent.
1215 * cp-tree.h: Adjust.
1216
1217 PR c++/68890
1218 * constexpr.c (verify_ctor_sanity): Remove CONSTRUCTOR_NELTS check.
1219
1220 2016-02-12 Patrick Palka <ppalka@gcc.gnu.org>
1221
1222 PR c++/69098
1223 * pt.c (lookup_and_finish_template_variable): New function,
1224 extracted from ...
1225 (tsubst_copy_and_build) [TEMPLATE_ID_EXPR]: ... here. Use it.
1226 (tsubst_qualified_id): Consider that EXPR might be a variable
1227 template.
1228 * typeck.c (check_template_keyword): Don't emit an error
1229 if DECL is a variable template.
1230
1231 2016-02-12 Jakub Jelinek <jakub@redhat.com>
1232
1233 * error.c: Spelling fixes - behaviour -> behavior and
1234 neighbour -> neighbor.
1235 * decl.c: Likewise.
1236 * typeck.c (cp_build_binary_op): Fix up behavior spelling in
1237 diagnostics.
1238 * init.c (build_delete): Likewise.
1239
1240 2016-02-11 Jakub Jelinek <jakub@redhat.com>
1241
1242 PR c/69768
1243 * typeck.c (cp_build_binary_op): cp_fully_fold integer_zerop
1244 arguments for -Waddress warning. Fix up formatting.
1245
1246 2016-02-11 Paolo Carlini <paolo.carlini@oracle.com>
1247
1248 PR c++/68726
1249 * pt.c (lookup_template_class_1): Check tsubst return value for
1250 error_mark_node.
1251
1252 2016-02-10 Jason Merrill <jason@redhat.com>
1253
1254 PR c++/68926
1255 * pt.c (resolve_nondeduced_context): Add complain parm.
1256 (do_auto_deduction): Pass it.
1257 * cvt.c (convert_to_void): Likewise.
1258 * decl.c (cp_finish_decl): Likewise.
1259 * init.c (build_new): Likewise.
1260 * rtti.c (get_tinfo_decl_dynamic): Likewise.
1261 * semantics.c (finish_decltype_type): Likewise.
1262 * typeck.c (decay_conversion): Likewise.
1263 * cp-tree.h: Adjust declaration.
1264 * call.c (standard_conversion): Add complain parm, pass it along.
1265 (implicit_conversion): Pass it.
1266
1267 PR c++/69657
1268 * name-lookup.c (ambiguous_decl): Call remove_hidden_names.
1269 (lookup_name_real_1): Likewise.
1270 (remove_hidden_names): Handle non-functions too.
1271
1272 PR c++/10200
1273 * parser.c (cp_parser_lookup_name): When looking for a template
1274 after . or ->, only consider class templates.
1275 (cp_parser_postfix_dot_deref_expression): Handle the current
1276 instantiation. Remember a dependent object expression.
1277 * typeck2.c (build_x_arrow): Handle the current instantiation.
1278
1279 * ptree.c (debug_tree): Implement for cp_expr.
1280
1281 2016-02-08 Patrick Palka <ppalka@gcc.gnu.org>
1282
1283 PR c++/69139
1284 * parser.c (cp_parser_simple_type_specifier): Make the check
1285 for disambiguating between an 'auto' placeholder and an implicit
1286 template parameter more robust.
1287
1288 2016-02-08 Patrick Palka <ppalka@gcc.gnu.org>
1289
1290 PR c++/69283
1291 PR c++/67835
1292 * decl2.c (mark_used): When given a TEMPLATE_DECL, return after
1293 setting its TREE_USED flag.
1294
1295 2016-02-08 Jason Merrill <jason@redhat.com>
1296
1297 PR c++/69657
1298 * name-lookup.c (do_nonmember_using_decl): Leave anticipated
1299 built-ins alone.
1300
1301 2016-02-08 Jakub Jelinek <jakub@redhat.com>
1302
1303 PR c++/59627
1304 * parser.c (cp_parser_omp_declare_reduction): Set assembler name
1305 of the DECL_OMP_DECLARE_REDUCTION_P decls.
1306
1307 2016-02-08 Marek Polacek <polacek@redhat.com>
1308
1309 PR c++/69688
1310 * constexpr.c (clear_cv_and_fold_caches): Renamed from clear_cv_cache.
1311 Call clear_fold_cache.
1312 * cp-tree.h: Adjust declaration.
1313 * decl.c (finish_enum_value_list): Call clear_cv_and_fold_caches
1314 rather than clear_cv_cache and clear_fold_cache.
1315 * typeck2.c (store_init_value): Call clear_cv_and_fold_caches.
1316
1317 2016-02-08 Jason Merrill <jason@redhat.com>
1318
1319 * cp-tree.h (CONV_FOLD, CONV_BACKEND_CONVERT): New.
1320 * cvt.c (convert): Pass CONV_BACKEND_CONVERT.
1321 (ocp_convert): Use *_maybe_fold.
1322 (cp_convert_to_pointer): Add dofold parameter.
1323 * cp-gimplify.c (cp_fold) [CONVERT_EXPR]: Call convert.
1324
1325 2016-02-05 Martin Sebor <msebor@redhat.com>
1326
1327 PR c++/69662
1328 * init.c (find_field_init): New function.
1329 (warn_placement_new_too_small): Call it. Handle one-element arrays
1330 at ends of structures special.
1331
1332 2016-02-05 Jason Merrill <jason@redhat.com>
1333
1334 PR c++/68948
1335 * semantics.c (finish_expr_stmt): If expr is error_mark_node,
1336 make sure we've seen_error().
1337
1338 2016-02-05 Patrick Palka <ppalka@gcc.gnu.org>
1339
1340 PR c++/68948
1341 * pt.c (tsubst_baselink): Diagnose an invalid constructor call
1342 if lookup_fnfields returns NULL_TREE and the name being looked
1343 up has the form A::A.
1344
1345 2016-02-04 Patrick Palka <ppalka@gcc.gnu.org>
1346
1347 * constexpr.c (cxx_eval_binary_expression): Fold equality
1348 comparisons involving PTRMEM_CSTs.
1349
1350 2016-02-04 Jakub Jelinek <jakub@redhat.com>
1351
1352 * class.c (find_flexarrays): Don't declare dom variable.
1353 (diagnose_flexarray): Likewise.
1354
1355 2016-02-02 Martain Sebor <msebor@redhat.com>
1356
1357 PR c++/69251
1358 PR c++/69253
1359 PR c++/69290
1360 PR c++/69277
1361 PR c++/69349
1362 * class.c (walk_subobject_offsets): Avoid testing the upper bound
1363 of a flexible array member for equality to null.
1364 (find_flexarrays): Remove spurious whitespace introduced in r231665.
1365 (diagnose_flexarrays): Avoid checking the upper bound of arrays.
1366 (check_flexarrays): Same.
1367 * decl.c (compute_array_index_type): Avoid special case for flexible
1368 array members.
1369 (grokdeclarator): Avoid calling compute_array_index_type for flexible
1370 array members.
1371 * error.c (dump_type_suffix): Revert changes introduced in r231665
1372 and rendered unnecessary by the changes above.
1373 * pt.c (tsubst): Same.
1374 * tree.c (build_ctor_subob_ref): Handle flexible array members.
1375 * typeck2.c (digest_init_r): Revert changes introduced in r231665.
1376 (process_init_constructor_array): Same.
1377 (process_init_constructor_record): Same.
1378
1379 2016-02-03 Patrick Palka <ppalka@gcc.gnu.org>
1380
1381 PR c++/69056
1382 * pt.c (try_one_overload): Handle comparing argument packs so
1383 that there is no conflict if we deduced more arguments of an
1384 argument pack than were explicitly specified.
1385
1386 2016-01-31 Jakub Jelinek <jakub@redhat.com>
1387 Jason Merrill <jason@redhat.com>
1388
1389 PR c++/68763
1390 * tree.c (strip_typedefs) [FUNCTION_TYPE]: Avoid building a new
1391 function type if nothing is changing.
1392
1393 2016-01-31 Jason Merrill <jason@redhat.com>
1394
1395 PR c++/69009
1396 * pt.c (partial_specialization_p, impartial_args): New.
1397 (instantiate_decl): Call impartial_args.
1398
1399 * mangle.c (maybe_check_abi_tags): New.
1400 (write_guarded_var_name): Call it.
1401 (mangle_ref_init_variable): Call check_abi_tags.
1402
1403 * pt.c (lookup_template_class_1): Don't share TYPE_ATTRIBUTES
1404 between template and instantiation.
1405
1406 2016-01-29 Jakub Jelinek <jakub@redhat.com>
1407
1408 PR debug/66869
1409 * decl.c (wrapup_globals_for_namespace): Warn about unused static
1410 function declarations.
1411
1412 2016-01-29 Marek Polacek <polacek@redhat.com>
1413
1414 PR c++/69509
1415 PR c++/69516
1416 * constexpr.c (cxx_eval_array_reference): Give the "array subscript
1417 out of bound" error earlier.
1418 * init.c (build_vec_init): Change NE_EXPR into GT_EXPR. Update the
1419 commentary.
1420
1421 2016-01-29 Patrick Palka <ppalka@gcc.gnu.org>
1422
1423 * name-lookup.c (begin_scope): After reusing a cp_binding_level
1424 structure, update free_binding_level before the structure's
1425 level_chain field gets cleared, not after.
1426
1427 2016-01-28 Jason Merrill <jason@redhat.com>
1428
1429 PR c++/67407
1430 * search.c (dfs_walk_once, dfs_walk_once_r)
1431 (dfs_walk_once_accessible_r, dfs_walk_once_accessible): Use
1432 hash_set instead of BINFO_MARKED.
1433 (dfs_unmark_r): Remove.
1434
1435 2016-01-28 Patrick Palka <ppalka@gcc.gnu.org>
1436
1437 PR c++/24208
1438 * parser.c (LEXER_DEBUGGING_ENABLED_P): New macro.
1439 (cp_lexer_debugging_p): Use it.
1440 (cp_lexer_start_debugging): Likewise.
1441 (cp_lexer_stop_debugging): Likewise.
1442
1443 2016-01-27 Marek Polacek <polacek@redhat.com>
1444
1445 PR c/68062
1446 * typeck.c (cp_build_binary_op): Promote operand to unsigned, if
1447 needed. Add -Wsign-compare warning.
1448
1449 2016-01-27 Ryan Burn <contact@rnburn.com>
1450
1451 PR cilkplus/69267
1452 * cp-gimplify.c (cilk_cp_gimplify_call_params_in_spawned_fn): Removed
1453 superfluous post_p argument in call to
1454 cilk_gimplify_call_params_in_spawned_fn.
1455
1456 2016-01-27 Marek Polacek <polacek@redhat.com>
1457
1458 PR c++/69379
1459 * constexpr.c (cxx_eval_constant_expression): Handle PTRMEM_CSTs
1460 wrapped in NOP_EXPRs.
1461
1462 2016-01-27 Martin Sebor <msebor@redhat.com>
1463
1464 PR c++/69317
1465 * mangle.c (mangle_decl): Reference the correct (saved) version
1466 of the ABI in -Wabi diagnostics.
1467
1468 2016-01-27 Marek Polacek <polacek@redhat.com>
1469
1470 PR c++/69496
1471 * constexpr.c (cxx_eval_array_reference): Evaluate the number of
1472 elements of the array.
1473
1474 2016-01-26 Jason Merrill <jason@redhat.com>
1475
1476 PR c++/68949
1477 * constexpr.c (register_constexpr_fundef): Keep the un-massaged body.
1478 (cxx_eval_call_expression): Don't look through clones.
1479 * optimize.c (maybe_clone_body): Clear DECL_SAVED_TREE of the alias.
1480 * semantics.c (expand_or_defer_fn_1): Keep DECL_SAVED_TREE of
1481 maybe-in-charge *tor.
1482
1483 2016-01-26 Jason Merrill <jason@redhat.com>
1484
1485 PR c++/68782
1486 * constexpr.c (cxx_eval_bare_aggregate): Update TREE_CONSTANT
1487 and TREE_SIDE_EFFECTS.
1488 (cxx_eval_constant_expression) [CONSTRUCTOR]: Call
1489 verify_constructor_flags.
1490
1491 2016-01-26 Jakub Jelinek <jakub@redhat.com>
1492
1493 PR c++/68357
1494 * cp-gimplify.c (cp_fold): If some operand folds to error_mark_node,
1495 return error_mark_node instead of building trees with error_mark_node
1496 operands.
1497
1498 2016-01-26 David Malcolm <dmalcolm@redhat.com>
1499
1500 PR other/69006
1501 * error.c (print_instantiation_partial_context_line): Add missing
1502 newlines from output for the t == NULL case.
1503 (print_instantiation_partial_context): Remove call to pp_newline.
1504
1505 2016-01-24 Patrick Palka <ppalka@gcc.gnu.org>
1506
1507 Revert:
1508 2016-01-18 Patrick Palka <ppalka@gcc.gnu.org>
1509
1510 PR c++/11858
1511 PR c++/24663
1512 PR c++/24664
1513 * decl.c (grokdeclarator): Don't decay array parameter type to
1514 a pointer type if it's dependent.
1515 (grokparms): Invoke strip_top_quals instead of directly invoking
1516 cp_build_qualified_type.
1517 * pt.c (decay_dependent_array_parm_type): New static function.
1518 (type_unification_real): Call decay_dependent_array_parm_type
1519 to decay a dependent array parameter type to its corresponding
1520 pointer type before unification.
1521 (more_specialized_fn): Likewise.
1522 (get_bindings): Likewise.
1523 * tree.c (cp_build_qualified_type): Trivial typofix in
1524 documentation.
1525
1526 2016-01-23 Martin Sebor <msebor@redhat.com>
1527
1528 PR c++/58109
1529 PR c++/69022
1530 * decl2.c (is_late_template_attribute): Handle dependent argument
1531 to attribute align and attribute vector_size.
1532
1533 2016-01-21 Jason Merrill <jason@redhat.com>
1534
1535 PR c++/69392
1536 * lambda.c (lambda_capture_field_type): Handle 'this' specially
1537 for init-capture, too.
1538
1539 PR c++/65687
1540 * decl.c (type_is_deprecated): Don't look into a typedef.
1541
1542 PR c++/40751
1543 PR c++/64987
1544 * decl.c (copy_type_enum): Respect TYPE_USER_ALIGN.
1545
1546 PR c++/43407
1547 * decl.c (start_enum): Add attributes parameter.
1548 * parser.c (cp_parser_enum_specifier): Pass it.
1549 * pt.c (lookup_template_class_1): Pass it.
1550 * cp-tree.h: Adjust.
1551
1552 2016-01-19 Jason Merrill <jason@redhat.com>
1553
1554 PR c++/59759
1555 * pt.c (convert_template_argument): Handle VAR_DECL properly.
1556
1557 2016-01-19 Marek Polacek <polacek@redhat.com>
1558
1559 PR c++/68586
1560 * constexpr.c (clear_cv_cache): New.
1561 * cp-gimplify.c (clear_fold_cache): New.
1562 * cp-tree.h (clear_cv_cache, clear_fold_cache): Declare.
1563 * decl.c (finish_enum_value_list): Call them.
1564
1565 PR c++/68965
1566 * pt.c (tsubst_copy): Mark elements in expanded vector as used.
1567
1568 2016-01-18 Patrick Palka <ppalka@gcc.gnu.org>
1569
1570 PR c++/11858
1571 PR c++/24663
1572 PR c++/24664
1573 * decl.c (grokdeclarator): Don't decay array parameter type to
1574 a pointer type if it's dependent.
1575 (grokparms): Invoke strip_top_quals instead of directly invoking
1576 cp_build_qualified_type.
1577 * pt.c (decay_dependent_array_parm_type): New static function.
1578 (type_unification_real): Call decay_dependent_array_parm_type
1579 to decay a dependent array parameter type to its corresponding
1580 pointer type before unification.
1581 (more_specialized_fn): Likewise.
1582 (get_bindings): Likewise.
1583 * tree.c (cp_build_qualified_type): Trivial typofix in
1584 documentation.
1585
1586 2016-01-18 Jason Merrill <jason@redhat.com>
1587
1588 * cp-gimplify.c (cp_fold) [CONSTRUCTOR]: Don't clobber the input.
1589
1590 * cp-gimplify.c (cp_fold): Remove unnecessary special cases.
1591
1592 PR c++/68767
1593 * cp-gimplify.c (cp_fold) [COND_EXPR]: Simplify. Do fold COND_EXPR.
1594 (contains_label_1, contains_label_p): Remove.
1595
1596 2016-01-16 Patrick Palka <ppalka@gcc.gnu.org>
1597
1598 PR c++/69091
1599 * pt.c (type_dependent_expression_p): For a function template
1600 specialization, a type is dependent iff any of its template
1601 arguments are.
1602
1603 2016-01-16 Patrick Palka <ppalka@gcc.gnu.org>
1604
1605 * cp-array-notation.c (cp_expand_cond_array_notations): Return
1606 error_mark_node only if find_rank failed, not if it was
1607 successful.
1608
1609 2016-01-16 Patrick Palka <ppalka@gcc.gnu.org>
1610
1611 PR c++/68936
1612 * tree.c (build_min_non_dep_call_vec): Don't retain the
1613 KOENIG_LOOKUP_P flag of the non-dependent expression that's
1614 been built.
1615 (build_min_non_dep_op_overload): Instead, do it here.
1616
1617 2016-01-15 Jakub Jelinek <jakub@redhat.com>
1618
1619 PR bootstrap/68271
1620 * parser.h (cp_token): Remove pragma_kind field. Add comment
1621 with number of unused bits.
1622 * parser.c (eof_token): Remove pragma_kind field initializer.
1623 (cp_lexer_get_preprocessor_token): Don't set pragma_kind
1624 field, don't clear CPP_PRAGMA u.value.
1625 (cp_parser_pragma_kind): New function.
1626 (cp_parser_omp_sections_scope, cp_parser_oacc_kernels_parallel,
1627 cp_parser_omp_construct, cp_parser_initial_pragma,
1628 cp_parser_pragma): Use cp_parser_pragma_kind instead of accessing
1629 pragma_kind field.
1630
1631 2016-01-15 Jason Merrill <jason@redhat.com>
1632
1633 PR c++/68847
1634 * call.c (build_cxx_call): Use fold_non_dependent_expr.
1635
1636 * typeck2.c (cxx_incomplete_type_diagnostic): Use the location of
1637 value.
1638
1639 PR c++/69257
1640 * typeck.c (decay_conversion): Don't call mark_rvalue_use for
1641 array/function-to-pointer conversion. Call
1642 complete_type_or_maybe_complain for lvalue-to-rvalue conversion.
1643 * call.c (convert_like_real): Print call context if
1644 decay_conversion errors.
1645
1646 2016-01-14 Tom de Vries <tom@codesourcery.com>
1647
1648 PR tree-optimization/68773
1649 * parser.c (cp_parser_oacc_declare, cp_parser_omp_declare_target): Don't
1650 set force_output.
1651
1652 2016-01-14 Jason Merrill <jason@redhat.com>
1653
1654 PR c++/69261
1655 * constexpr.c (find_array_ctor_elt): Handle splitting RANGE_EXPR.
1656
1657 2016-01-12 Marek Polacek <polacek@redhat.com>
1658
1659 PR c++/68979
1660 * constexpr.c (cxx_eval_check_shift_p): Use permerror rather than
1661 error_at and adjust the return value.
1662
1663 2016-01-12 Jakub Jelinek <jakub@redhat.com>
1664
1665 PR objc++/68511
1666 PR c++/69213
1667 * cp-gimplify.c (cp_gimplify_expr) <case INIT_EXPR>: Don't return
1668 GS_ERROR whenever seen_error (), only if *expr_p contains
1669 cilk spawn stmt, but cilk_detect_spawn_and_unwrap failed.
1670
1671 PR c++/66808
1672 PR c++/69000
1673 * pt.c (tsubst_decl): If not local_p, clear DECL_TEMPLATE_INFO.
1674
1675 2016-01-11 Jason Merrill <jason@redhat.com>
1676
1677 PR c++/69131
1678 * method.c (walk_field_subobs): Add dtor_from_ctor parm.
1679 (process_subob_fn): Likewise. Don't consider triviality if true.
1680 (synthesize_method_walk): Pass it.
1681
1682 2016-01-11 David Malcolm <dmalcolm@redhat.com>
1683
1684 PR c++/68795
1685 * parser.c (cp_parser_postfix_expression): Initialize
1686 close_paren_loc to UNKNOWN_LOCATION; only use it if
1687 it has been written to by
1688 cp_parser_parenthesized_expression_list.
1689 (cp_parser_parenthesized_expression_list): Document the behavior
1690 with respect to the CLOSE_PAREN_LOC param.
1691
1692 2016-01-11 Jakub Jelinek <jakub@redhat.com>
1693
1694 PR c++/69211
1695 * cp-gimplify.c (cp_fold): If COMPOUND_EXPR or MODIFY_EXPR
1696 folded operands have side-effects, but folding changed any of them,
1697 build a new tree with the folded operands instead of returning the
1698 unfolded tree.
1699
1700 2016-01-09 Marek Polacek <polacek@redhat.com>
1701
1702 PR c++/69113
1703 * decl2.c (comdat_linkage): Only set DECL_COMDAT if TREE_PUBLIC is set.
1704
1705 2016-01-09 Jakub Jelinek <jakub@redhat.com>
1706
1707 PR c++/69164
1708 * class.c (layout_class_type): Use copy_node to copy FIELD_DECLs.
1709
1710 2016-01-08 Jason Merrill <jason@redhat.com>
1711
1712 PR c++/69158
1713 * constexpr.c (cxx_fold_indirect_ref): Handle array type differing
1714 in completion.
1715
1716 2016-01-08 Marek Polacek <polacek@redhat.com>
1717
1718 PR c++/68449
1719 * constexpr.c (cxx_eval_constant_expression): Handle NULL initializer.
1720
1721 2016-01-08 Jason Merrill <jason@redhat.com>
1722
1723 * constexpr.c (cxx_eval_call_expression): Remove convert_to_void
1724 workaround.
1725
1726 PR c++/68983
1727 PR c++/67557
1728 * cvt.c (convert_to_void): Don't strip a TARGET_EXPR of
1729 TREE_ADDRESSABLE type.
1730
1731 PR c++/68983
1732 PR c++/67557
1733 * call.c (unsafe_copy_elision_p): Look through COMPOUND_EXPR.
1734
1735 2016-01-05 Nathan Sidwell <nathan@acm.org>
1736
1737 PR c++/58583
1738 * pt.c (build_non_dependent_expr): Don't try a checking fold when
1739 parsing an nsdmi.
1740
1741 2016-01-04 Jakub Jelinek <jakub@redhat.com>
1742
1743 Update copyright years.
1744 \f
1745 Copyright (C) 2016 Free Software Foundation, Inc.
1746
1747 Copying and distribution of this file, with or without modification,
1748 are permitted in any medium without royalty provided the copyright
1749 notice and this notice are preserved.