re PR c++/68049 (template instantiation involving may_alias defines symbol twice)
[platform/upstream/gcc.git] / gcc / cp / ChangeLog
1 2016-02-25  Jason Merrill  <jason@redhat.com>
2
3         PR c++/68049
4         * tree.c (strip_typedefs): Use DECL_ORIGINAL_TYPE.
5
6 2016-02-25  Patrick Palka  <ppalka@gcc.gnu.org>
7
8         PR c++/69736
9         * cp-tree.h (REF_PARENTHESIZED_P): Adjust documentation.
10         (maybe_undo_parenthesized_ref): Declare.
11         * semantics.c (maybe_undo_parenthesized_ref): Split out from
12         check_return_expr.
13         (finish_call_expr): Use it.
14         * typeck.c (check_return_expr): Use it.
15         * pt.c (tsubst_copy_and_build) [INDIRECT_REF]: Retain the
16         REF_PARENTHESIZED_P flag.
17
18 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
19
20         PR c++/69922
21         * class.c (build_base_path): Set TREE_NO_WARNING on the null_test.
22         Avoid folding it.
23         * init.c (build_vec_delete_1, build_delete): Don't fold the non-NULL
24         tests.
25         * cp-gimplify.c (cp_fold): For TREE_NO_WARNING comparisons with NULL,
26         unless they are folded into INTEGER_CST, error_mark_node or some
27         comparison with NULL, avoid folding them and use either the original
28         comparison or non-folded comparison of folded arguments.
29         * cp-ubsan.c (cp_ubsan_instrument_vptr): Set TREE_NO_WARNING on the
30         comparison, don't fold the comparison right away.
31
32 2016-02-24  Jason Merrill  <jason@redhat.com>
33
34         PR c++/69323
35         * friend.c (make_friend_class): Likewise.
36         * decl.c (lookup_and_check_tag): Diagnose invalid dependent friend.
37
38 2016-02-24  Jason Merrill  <jason@redhat.com>
39
40         PR c++/69323
41         * pt.c (instantiate_class_template_1): Set
42         processing_template_decl before substituting friend_type.
43
44 016-02-24  Martin Sebor  <msebor@redhat.com>
45
46         PR c++/69912
47         * tree.c (build_ctor_subob_ref): Compare types' main variants
48         instead of the types as they are.
49
50 2016-02-24  Jason Merrill  <jason@redhat.com>
51
52         * decl.c (start_preparsed_function): Condition ctor clobber on
53         flag_lifetime_dse > 1.
54
55         * cp-gimplify.c (cp_fold): Don't fold constexpr calls if -fno-inline.
56
57 2016-02-19  Jason Merrill  <jason@redhat.com>
58
59         PR c++/69743
60         * call.c (remaining_arguments): No longer static.
61         * cp-tree.h: Declare it.
62         * pt.c (more_specialized_fn): Use it.
63
64 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
65             Bernd Edlinger  <bernd.edlinger@hotmail.de>
66
67         * Make-lang.in: Invoke gperf with -L C++.
68         * cfns.gperf: Remove prototypes for hash and libc_name_p
69         inlines.
70         * cfns.h: Regenerated.
71         * except.c (nothrow_libfn_p): Adjust.
72
73 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
74
75         PR c++/69850
76         * rtti.c (ifnonnull): Set TREE_NO_WARNING on the condition, use
77         NE_EXPR instead of EQ_EXPR and swap last two arguments on COND_EXPR.
78
79 2016-02-19  Patrick Palka  <ppalka@gcc.gnu.org>
80
81         PR c++/68948
82         * pt.c (tsubst_baselink): Don't diagnose an invalid constructor
83         call here.
84         * semantics.c (finish_call_expr): Don't assume a constructor
85         call is dependent if only the "this" pointer is dependent.  When
86         building a constructor call, always use a dummy object.
87
88 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
89
90         PR c++/69850
91         * init.c (build_vec_delete_1): Set TREE_NO_WARNING on the NE_EXPR
92         condition.
93         * cp-gimplify.c (cp_fold): Propagate TREE_NO_WARNING from binary
94         operators if folding preserved the binop, just with different
95         arguments.
96
97         PR c++/67767
98         * parser.c (cp_parser_std_attribute_spec_seq): Don't assume
99         attr_spec is always single element chain, chain all the attributes
100         properly together in the right order.
101
102 2016-02-18  Jason Merrill  <jason@redhat.com>
103
104         * mangle.c (maybe_check_abi_tags): Add for_decl parm.  Call
105         mangle_decl.
106         (mangle_decl): Call maybe_check_abi_tags for function scope.
107         (mangle_guard_variable): Call maybe_check_abi_tags here.
108         (write_guarded_var_name): Not here.
109
110 2016-02-17  Jason Merrill  <jason@redhat.com>
111
112         PR c++/65985
113         * constexpr.c (build_constexpr_constructor_member_initializers):
114         Handle an additional STATEMENT_LIST.
115
116         PR c++/68585
117         * constexpr.c (cxx_eval_bare_aggregate): Fix 'changed' detection.
118
119         PR c++/68679
120         * decl2.c (reset_type_linkage_2): Look through member templates.
121
122 2016-02-17  Jakub Jelinek  <jakub@redhat.com>
123
124         PR c++/69850
125         * init.c (build_delete): Set TREE_NO_WARNING on ifexp.
126
127 2016-02-17  Jason Merrill  <jason@redhat.com>
128
129         PR c++/69842
130         * method.c (forward_parm): Split out from...
131         (add_one_base_init): ...here.
132         * lambda.c (maybe_add_lambda_conv_op): Use it.
133
134 2016-02-16  Jason Merrill  <jason@redhat.com>
135
136         PR c++/10200
137         PR c++/69753
138         * call.c, cp-tree.h, name-lookup.c, pt.c, search.c, semantics.c,
139         tree.c, typeck2.c: Revert earlier changes.
140         * parser.c (cp_parser_lookup_name): Ignore namespace-scope
141         non-type templates after -> or .
142
143 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
144
145         PR c/69835
146         * typeck.c (cp_build_binary_op): Revert 2015-09-09 change.
147
148 2016-02-16  Jason Merrill  <jason@redhat.com>
149
150         PR c++/69657
151         * name-lookup.c (lookup_qualified_name): Add find_hidden parm.
152         (set_decl_namespace): Pass it.  Complain about finding a hidden friend.
153         * name-lookup.h: Adjust.
154
155 2016-02-16  James Norris  <jnorris@codesourcery.com>
156
157         * parser.c (cp_parser_oacc_data_clause_deviceptr): Remove checking.
158         * semantics.c (finish_omp_clauses): Add deviceptr checking.
159
160 2016-02-15  Jakub Jelinek  <jakub@redhat.com>
161
162         PR c++/69658
163         * init.c (expand_default_init): Only call reshape_init
164         in the direct-initialization from an initializer list case.
165
166 2016-02-15  Jason Merrill  <jason@redhat.com>
167
168         PR c++/69753
169         * semantics.c (finish_call_expr): Implicit 'this' does not make
170         the call dependent.
171         * search.c (any_dependent_bases_p): Split out...
172         * name-lookup.c (do_class_using_decl): ...from here.
173         * call.c (build_new_method_call_1): Don't complain about missing object
174         if there are dependent bases.  Tweak error.
175         * tree.c (non_static_member_function_p): Remove.
176         * pt.c (type_dependent_expression_p): A member template of a
177         dependent type is dependent.
178         * cp-tree.h: Adjust.
179
180         PR c++/68890
181         * constexpr.c (verify_ctor_sanity): Remove CONSTRUCTOR_NELTS check.
182
183 2016-02-12  Patrick Palka  <ppalka@gcc.gnu.org>
184
185         PR c++/69098
186         * pt.c (lookup_and_finish_template_variable): New function,
187         extracted from ...
188         (tsubst_copy_and_build) [TEMPLATE_ID_EXPR]: ... here.  Use it.
189         (tsubst_qualified_id): Consider that EXPR might be a variable
190         template.
191         * typeck.c (check_template_keyword): Don't emit an error
192         if DECL is a variable template.
193
194 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
195
196         * error.c: Spelling fixes - behaviour -> behavior and
197         neighbour -> neighbor.
198         * decl.c: Likewise.
199         * typeck.c (cp_build_binary_op): Fix up behavior spelling in
200         diagnostics.
201         * init.c (build_delete): Likewise.
202
203 2016-02-11  Jakub Jelinek  <jakub@redhat.com>
204
205         PR c/69768
206         * typeck.c (cp_build_binary_op): cp_fully_fold integer_zerop
207         arguments for -Waddress warning.  Fix up formatting.
208
209 2016-02-11  Paolo Carlini  <paolo.carlini@oracle.com>
210
211         PR c++/68726
212         * pt.c (lookup_template_class_1): Check tsubst return value for
213         error_mark_node.
214
215 2016-02-10  Jason Merrill  <jason@redhat.com>
216
217         PR c++/68926
218         * pt.c (resolve_nondeduced_context): Add complain parm.
219         (do_auto_deduction): Pass it.
220         * cvt.c (convert_to_void): Likewise.
221         * decl.c (cp_finish_decl): Likewise.
222         * init.c (build_new): Likewise.
223         * rtti.c (get_tinfo_decl_dynamic): Likewise.
224         * semantics.c (finish_decltype_type): Likewise.
225         * typeck.c (decay_conversion): Likewise.
226         * cp-tree.h: Adjust declaration.
227         * call.c (standard_conversion): Add complain parm, pass it along.
228         (implicit_conversion): Pass it.
229
230         PR c++/69657
231         * name-lookup.c (ambiguous_decl): Call remove_hidden_names.
232         (lookup_name_real_1): Likewise.
233         (remove_hidden_names): Handle non-functions too.
234
235         PR c++/10200
236         * parser.c (cp_parser_lookup_name): When looking for a template
237         after . or ->, only consider class templates.
238         (cp_parser_postfix_dot_deref_expression): Handle the current
239         instantiation.  Remember a dependent object expression.
240         * typeck2.c (build_x_arrow): Handle the current instantiation.
241
242         * ptree.c (debug_tree): Implement for cp_expr.
243
244 2016-02-08  Patrick Palka  <ppalka@gcc.gnu.org>
245
246         PR c++/69139
247         * parser.c (cp_parser_simple_type_specifier): Make the check
248         for disambiguating between an 'auto' placeholder and an implicit
249         template parameter more robust.
250
251 2016-02-08  Patrick Palka  <ppalka@gcc.gnu.org>
252
253         PR c++/69283
254         PR c++/67835
255         * decl2.c (mark_used): When given a TEMPLATE_DECL, return after
256         setting its TREE_USED flag.
257
258 2016-02-08  Jason Merrill  <jason@redhat.com>
259
260         PR c++/69657
261         * name-lookup.c (do_nonmember_using_decl): Leave anticipated
262         built-ins alone.
263
264 2016-02-08  Jakub Jelinek  <jakub@redhat.com>
265
266         PR c++/59627
267         * parser.c (cp_parser_omp_declare_reduction): Set assembler name
268         of the DECL_OMP_DECLARE_REDUCTION_P decls.
269
270 2016-02-08  Marek Polacek  <polacek@redhat.com>
271
272         PR c++/69688
273         * constexpr.c (clear_cv_and_fold_caches): Renamed from clear_cv_cache.
274         Call clear_fold_cache.
275         * cp-tree.h: Adjust declaration.
276         * decl.c (finish_enum_value_list): Call clear_cv_and_fold_caches
277         rather than clear_cv_cache and clear_fold_cache.
278         * typeck2.c (store_init_value): Call clear_cv_and_fold_caches.
279
280 2016-02-08  Jason Merrill  <jason@redhat.com>
281
282         * cp-tree.h (CONV_FOLD, CONV_BACKEND_CONVERT): New.
283         * cvt.c (convert): Pass CONV_BACKEND_CONVERT.
284         (ocp_convert): Use *_maybe_fold.
285         (cp_convert_to_pointer): Add dofold parameter.
286         * cp-gimplify.c (cp_fold) [CONVERT_EXPR]: Call convert.
287
288 2016-02-05  Martin Sebor  <msebor@redhat.com>
289
290         PR c++/69662
291         * init.c (find_field_init): New function.
292         (warn_placement_new_too_small): Call it.  Handle one-element arrays
293         at ends of structures special.
294
295 2016-02-05  Jason Merrill  <jason@redhat.com>
296
297         PR c++/68948
298         * semantics.c (finish_expr_stmt): If expr is error_mark_node,
299         make sure we've seen_error().
300
301 2016-02-05  Patrick Palka  <ppalka@gcc.gnu.org>
302
303         PR c++/68948
304         * pt.c (tsubst_baselink): Diagnose an invalid constructor call
305         if lookup_fnfields returns NULL_TREE and the name being looked
306         up has the form A::A.
307
308 2016-02-04  Patrick Palka  <ppalka@gcc.gnu.org>
309
310         * constexpr.c (cxx_eval_binary_expression): Fold equality
311         comparisons involving PTRMEM_CSTs.
312
313 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
314
315         * class.c (find_flexarrays): Don't declare dom variable.
316         (diagnose_flexarray): Likewise.
317
318 2016-02-02  Martain Sebor  <msebor@redhat.com>
319
320         PR c++/69251
321         PR c++/69253
322         PR c++/69290
323         PR c++/69277
324         PR c++/69349
325         * class.c (walk_subobject_offsets): Avoid testing the upper bound
326         of a flexible array member for equality to null.
327         (find_flexarrays): Remove spurious whitespace introduced in r231665.
328         (diagnose_flexarrays): Avoid checking the upper bound of arrays.
329         (check_flexarrays): Same.
330         * decl.c (compute_array_index_type): Avoid special case for flexible
331         array members.
332         (grokdeclarator): Avoid calling compute_array_index_type for flexible
333         array members.
334         * error.c (dump_type_suffix): Revert changes introduced in r231665
335         and rendered unnecessary by the changes above.
336         * pt.c (tsubst):  Same.
337         * tree.c (build_ctor_subob_ref): Handle flexible array members.
338         * typeck2.c (digest_init_r): Revert changes introduced in r231665.
339         (process_init_constructor_array): Same.
340         (process_init_constructor_record): Same.
341
342 2016-02-03  Patrick Palka  <ppalka@gcc.gnu.org>
343
344         PR c++/69056
345         * pt.c (try_one_overload): Handle comparing argument packs so
346         that there is no conflict if we deduced more arguments of an
347         argument pack than were explicitly specified.
348
349 2016-01-31  Jakub Jelinek  <jakub@redhat.com>
350             Jason Merrill  <jason@redhat.com>
351
352         PR c++/68763
353         * tree.c (strip_typedefs) [FUNCTION_TYPE]: Avoid building a new
354         function type if nothing is changing.
355
356 2016-01-31  Jason Merrill  <jason@redhat.com>
357
358         PR c++/69009
359         * pt.c (partial_specialization_p, impartial_args): New.
360         (instantiate_decl): Call impartial_args.
361
362         * mangle.c (maybe_check_abi_tags): New.
363         (write_guarded_var_name): Call it.
364         (mangle_ref_init_variable): Call check_abi_tags.
365
366         * pt.c (lookup_template_class_1): Don't share TYPE_ATTRIBUTES
367         between template and instantiation.
368
369 2016-01-29  Jakub Jelinek  <jakub@redhat.com>
370
371         PR debug/66869
372         * decl.c (wrapup_globals_for_namespace): Warn about unused static
373         function declarations.
374
375 2016-01-29  Marek Polacek  <polacek@redhat.com>
376
377         PR c++/69509
378         PR c++/69516
379         * constexpr.c (cxx_eval_array_reference): Give the "array subscript
380         out of bound" error earlier.
381         * init.c (build_vec_init): Change NE_EXPR into GT_EXPR.  Update the
382         commentary.
383
384 2016-01-29  Patrick Palka  <ppalka@gcc.gnu.org>
385
386         * name-lookup.c (begin_scope): After reusing a cp_binding_level
387         structure, update free_binding_level before the structure's
388         level_chain field gets cleared, not after.
389
390 2016-01-28  Jason Merrill  <jason@redhat.com>
391
392         PR c++/67407
393         * search.c (dfs_walk_once, dfs_walk_once_r)
394         (dfs_walk_once_accessible_r, dfs_walk_once_accessible): Use
395         hash_set instead of BINFO_MARKED.
396         (dfs_unmark_r): Remove.
397
398 2016-01-28  Patrick Palka  <ppalka@gcc.gnu.org>
399
400         PR c++/24208
401         * parser.c (LEXER_DEBUGGING_ENABLED_P): New macro.
402         (cp_lexer_debugging_p): Use it.
403         (cp_lexer_start_debugging): Likewise.
404         (cp_lexer_stop_debugging): Likewise.
405
406 2016-01-27  Marek Polacek  <polacek@redhat.com>
407
408         PR c/68062
409         * typeck.c (cp_build_binary_op): Promote operand to unsigned, if
410         needed.  Add -Wsign-compare warning.
411
412 2016-01-27  Ryan Burn  <contact@rnburn.com>
413
414         PR cilkplus/69267
415         * cp-gimplify.c (cilk_cp_gimplify_call_params_in_spawned_fn): Removed
416         superfluous post_p argument in call to
417         cilk_gimplify_call_params_in_spawned_fn.
418
419 2016-01-27  Marek Polacek  <polacek@redhat.com>
420
421         PR c++/69379
422         * constexpr.c (cxx_eval_constant_expression): Handle PTRMEM_CSTs
423         wrapped in NOP_EXPRs.
424
425 2016-01-27  Martin Sebor  <msebor@redhat.com>
426
427         PR c++/69317
428         * mangle.c (mangle_decl): Reference the correct (saved) version
429         of the ABI in -Wabi diagnostics.
430
431 2016-01-27  Marek Polacek  <polacek@redhat.com>
432
433         PR c++/69496
434         * constexpr.c (cxx_eval_array_reference): Evaluate the number of
435         elements of the array.
436
437 2016-01-26  Jason Merrill  <jason@redhat.com>
438
439         PR c++/68949
440         * constexpr.c (register_constexpr_fundef): Keep the un-massaged body.
441         (cxx_eval_call_expression): Don't look through clones.
442         * optimize.c (maybe_clone_body): Clear DECL_SAVED_TREE of the alias.
443         * semantics.c (expand_or_defer_fn_1): Keep DECL_SAVED_TREE of
444         maybe-in-charge *tor.
445
446 2016-01-26  Jason Merrill  <jason@redhat.com>
447
448         PR c++/68782
449         * constexpr.c (cxx_eval_bare_aggregate): Update TREE_CONSTANT
450         and TREE_SIDE_EFFECTS.
451         (cxx_eval_constant_expression) [CONSTRUCTOR]: Call
452         verify_constructor_flags.
453
454 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
455
456         PR c++/68357
457         * cp-gimplify.c (cp_fold): If some operand folds to error_mark_node,
458         return error_mark_node instead of building trees with error_mark_node
459         operands.
460
461 2016-01-26  David Malcolm  <dmalcolm@redhat.com>
462
463         PR other/69006
464         * error.c (print_instantiation_partial_context_line): Add missing
465         newlines from output for the t == NULL case.
466         (print_instantiation_partial_context): Remove call to pp_newline.
467
468 2016-01-24  Patrick Palka  <ppalka@gcc.gnu.org>
469
470         Revert:
471         2016-01-18  Patrick Palka  <ppalka@gcc.gnu.org>
472
473         PR c++/11858
474         PR c++/24663
475         PR c++/24664
476         * decl.c (grokdeclarator): Don't decay array parameter type to
477         a pointer type if it's dependent.
478         (grokparms): Invoke strip_top_quals instead of directly invoking
479         cp_build_qualified_type.
480         * pt.c (decay_dependent_array_parm_type): New static function.
481         (type_unification_real): Call decay_dependent_array_parm_type
482         to decay a dependent array parameter type to its corresponding
483         pointer type before unification.
484         (more_specialized_fn): Likewise.
485         (get_bindings): Likewise.
486         * tree.c (cp_build_qualified_type): Trivial typofix in
487         documentation.
488
489 2016-01-23  Martin Sebor  <msebor@redhat.com>
490
491         PR c++/58109
492         PR c++/69022
493         * decl2.c (is_late_template_attribute): Handle dependent argument
494         to attribute align and attribute vector_size.
495
496 2016-01-21  Jason Merrill  <jason@redhat.com>
497
498         PR c++/69392
499         * lambda.c (lambda_capture_field_type): Handle 'this' specially
500         for init-capture, too.
501
502         PR c++/65687
503         * decl.c (type_is_deprecated): Don't look into a typedef.
504
505         PR c++/40751
506         PR c++/64987
507         * decl.c (copy_type_enum): Respect TYPE_USER_ALIGN.
508
509         PR c++/43407
510         * decl.c (start_enum): Add attributes parameter.
511         * parser.c (cp_parser_enum_specifier): Pass it.
512         * pt.c (lookup_template_class_1): Pass it.
513         * cp-tree.h: Adjust.
514
515 2016-01-19  Jason Merrill  <jason@redhat.com>
516
517         PR c++/59759
518         * pt.c (convert_template_argument): Handle VAR_DECL properly.
519
520 2016-01-19  Marek Polacek  <polacek@redhat.com>
521
522         PR c++/68586
523         * constexpr.c (clear_cv_cache): New.
524         * cp-gimplify.c (clear_fold_cache): New.
525         * cp-tree.h (clear_cv_cache, clear_fold_cache): Declare.
526         * decl.c (finish_enum_value_list): Call them.
527
528         PR c++/68965
529         * pt.c (tsubst_copy): Mark elements in expanded vector as used.
530
531 2016-01-18  Patrick Palka  <ppalka@gcc.gnu.org>
532
533         PR c++/11858
534         PR c++/24663
535         PR c++/24664
536         * decl.c (grokdeclarator): Don't decay array parameter type to
537         a pointer type if it's dependent.
538         (grokparms): Invoke strip_top_quals instead of directly invoking
539         cp_build_qualified_type.
540         * pt.c (decay_dependent_array_parm_type): New static function.
541         (type_unification_real): Call decay_dependent_array_parm_type
542         to decay a dependent array parameter type to its corresponding
543         pointer type before unification.
544         (more_specialized_fn): Likewise.
545         (get_bindings): Likewise.
546         * tree.c (cp_build_qualified_type): Trivial typofix in
547         documentation.
548
549 2016-01-18  Jason Merrill  <jason@redhat.com>
550
551         * cp-gimplify.c (cp_fold) [CONSTRUCTOR]: Don't clobber the input.
552
553         * cp-gimplify.c (cp_fold): Remove unnecessary special cases.
554
555         PR c++/68767
556         * cp-gimplify.c (cp_fold) [COND_EXPR]: Simplify.  Do fold COND_EXPR.
557         (contains_label_1, contains_label_p): Remove.
558
559 2016-01-16  Patrick Palka  <ppalka@gcc.gnu.org>
560
561         PR c++/69091
562         * pt.c (type_dependent_expression_p): For a function template
563         specialization, a type is dependent iff any of its template
564         arguments are.
565
566 2016-01-16  Patrick Palka  <ppalka@gcc.gnu.org>
567
568         * cp-array-notation.c (cp_expand_cond_array_notations): Return
569         error_mark_node only if find_rank failed, not if it was
570         successful.
571
572 2016-01-16  Patrick Palka  <ppalka@gcc.gnu.org>
573
574         PR c++/68936
575         * tree.c (build_min_non_dep_call_vec): Don't retain the
576         KOENIG_LOOKUP_P flag of the non-dependent expression that's
577         been built.
578         (build_min_non_dep_op_overload): Instead, do it here.
579
580 2016-01-15  Jakub Jelinek  <jakub@redhat.com>
581
582         PR bootstrap/68271
583         * parser.h (cp_token): Remove pragma_kind field.  Add comment
584         with number of unused bits.
585         * parser.c (eof_token): Remove pragma_kind field initializer.
586         (cp_lexer_get_preprocessor_token): Don't set pragma_kind
587         field, don't clear CPP_PRAGMA u.value.
588         (cp_parser_pragma_kind): New function.
589         (cp_parser_omp_sections_scope, cp_parser_oacc_kernels_parallel,
590         cp_parser_omp_construct, cp_parser_initial_pragma,
591         cp_parser_pragma): Use cp_parser_pragma_kind instead of accessing
592         pragma_kind field.
593
594 2016-01-15  Jason Merrill  <jason@redhat.com>
595
596         PR c++/68847
597         * call.c (build_cxx_call): Use fold_non_dependent_expr.
598
599         * typeck2.c (cxx_incomplete_type_diagnostic): Use the location of
600         value.
601
602         PR c++/69257
603         * typeck.c (decay_conversion): Don't call mark_rvalue_use for
604         array/function-to-pointer conversion.  Call
605         complete_type_or_maybe_complain for lvalue-to-rvalue conversion.
606         * call.c (convert_like_real): Print call context if
607         decay_conversion errors.
608
609 2016-01-14  Tom de Vries  <tom@codesourcery.com>
610
611         PR tree-optimization/68773
612         * parser.c (cp_parser_oacc_declare, cp_parser_omp_declare_target): Don't
613         set force_output.
614
615 2016-01-14  Jason Merrill  <jason@redhat.com>
616
617         PR c++/69261
618         * constexpr.c (find_array_ctor_elt): Handle splitting RANGE_EXPR.
619
620 2016-01-12  Marek Polacek  <polacek@redhat.com>
621
622         PR c++/68979
623         * constexpr.c (cxx_eval_check_shift_p): Use permerror rather than
624         error_at and adjust the return value.
625
626 2016-01-12  Jakub Jelinek  <jakub@redhat.com>
627
628         PR objc++/68511
629         PR c++/69213
630         * cp-gimplify.c (cp_gimplify_expr) <case INIT_EXPR>: Don't return
631         GS_ERROR whenever seen_error (), only if *expr_p contains
632         cilk spawn stmt, but cilk_detect_spawn_and_unwrap failed.
633
634         PR c++/66808
635         PR c++/69000
636         * pt.c (tsubst_decl): If not local_p, clear DECL_TEMPLATE_INFO.
637
638 2016-01-11  Jason Merrill  <jason@redhat.com>
639
640         PR c++/69131
641         * method.c (walk_field_subobs): Add dtor_from_ctor parm.
642         (process_subob_fn): Likewise.  Don't consider triviality if true.
643         (synthesize_method_walk): Pass it.
644
645 2016-01-11  David Malcolm  <dmalcolm@redhat.com>
646
647         PR c++/68795
648         * parser.c (cp_parser_postfix_expression): Initialize
649         close_paren_loc to UNKNOWN_LOCATION; only use it if
650         it has been written to by
651         cp_parser_parenthesized_expression_list.
652         (cp_parser_parenthesized_expression_list): Document the behavior
653         with respect to the CLOSE_PAREN_LOC param.
654
655 2016-01-11  Jakub Jelinek  <jakub@redhat.com>
656
657         PR c++/69211
658         * cp-gimplify.c (cp_fold): If COMPOUND_EXPR or MODIFY_EXPR
659         folded operands have side-effects, but folding changed any of them,
660         build a new tree with the folded operands instead of returning the
661         unfolded tree.
662
663 2016-01-09  Marek Polacek  <polacek@redhat.com>
664
665         PR c++/69113
666         * decl2.c (comdat_linkage): Only set DECL_COMDAT if TREE_PUBLIC is set.
667
668 2016-01-09  Jakub Jelinek  <jakub@redhat.com>
669
670         PR c++/69164
671         * class.c (layout_class_type): Use copy_node to copy FIELD_DECLs.
672
673 2016-01-08  Jason Merrill  <jason@redhat.com>
674
675         PR c++/69158
676         * constexpr.c (cxx_fold_indirect_ref): Handle array type differing
677         in completion.
678
679 2016-01-08  Marek Polacek  <polacek@redhat.com>
680
681         PR c++/68449
682         * constexpr.c (cxx_eval_constant_expression): Handle NULL initializer.
683
684 2016-01-08  Jason Merrill  <jason@redhat.com>
685
686         * constexpr.c (cxx_eval_call_expression): Remove convert_to_void
687         workaround.
688
689         PR c++/68983
690         PR c++/67557
691         * cvt.c (convert_to_void): Don't strip a TARGET_EXPR of
692         TREE_ADDRESSABLE type.
693
694         PR c++/68983
695         PR c++/67557
696         * call.c (unsafe_copy_elision_p): Look through COMPOUND_EXPR.
697
698 2016-01-05  Nathan Sidwell  <nathan@acm.org>
699
700         PR c++/58583
701         * pt.c (build_non_dependent_expr): Don't try a checking fold when
702         parsing an nsdmi.
703
704 2016-01-04  Jakub Jelinek  <jakub@redhat.com>
705
706         Update copyright years.
707 \f
708 Copyright (C) 2016 Free Software Foundation, Inc.
709
710 Copying and distribution of this file, with or without modification,
711 are permitted in any medium without royalty provided the copyright
712 notice and this notice are preserved.