]> gcc.gnu.org Git - gcc.git/blame - gcc/cp/ChangeLog
Daily bump.
[gcc.git] / gcc / cp / ChangeLog
CommitLineData
ec043522
MP
12015-07-31 Marek Polacek <polacek@redhat.com>
2
3 PR sanitizer/66977
4 * typeck.c (get_member_function_from_ptrfunc): Don't sanitize
5 RSHIFT_EXPR.
6
15827d12
PC
72015-07-30 Paolo Carlini <paolo.carlini@oracle.com>
8
9 * class.c (check_for_override): Use DECL_SOURCE_LOCATION and "%qD"
10 in warning_at instead of "%q+D" in warning.
11 (warn_hidden): Likewise but use location_of.
12 (finish_struct_anon_r): Likewise use DECL_SOURCE_LOCATION in permerror.
13 (check_bitfield_decl, check_field_decls): Likewise in warning_at.
14 (check_field_decls): Likewise for permerror.
15 (explain_non_literal_class): Likewise for inform.
16 (check_bases_and_members, layout_class_type): Likewise for warning_at.
17 (note_name_declared_in_class): Use location_of in permerror.
18 * name-lookup.c (diagnose_name_conflict): Use location_of in inform.
19 (pushdecl_maybe_friend_1): Use DECL_SOURCE_LOCATION in pedwarn,
20 inform, and warning_at.
21 (check_for_out_of_scope_variable): Likewise for warning_at and
22 permerror.
23
4fdfdd4f
JM
242015-07-30 Jason Merrill <jason@redhat.com>
25
26 DR 1558
27 PR c++/67021
28 * pt.c (tsubst_decl) [TYPE_DECL]: Clear TYPE_DEPENDENT_P_VALID.
29
4b1cbcee
PC
302015-07-28 Paolo Carlini <paolo.carlini@oracle.com>
31
32 * call.c (build_op_delete_call, convert_like_real, build_over_call):
33 Use Use DECL_SOURCE_LOCATION and "%qD" in inform and pedwarn instead
34 of "%q+D".
35 * constexpr.c (explain_invalid_constexpr_fn): Likewise.
36 * decl.c (duplicate_decls): Likewise for warning/warning_at.
37 * except.c (maybe_noexcept_warning): Likewise.
38 * friend.c (make_friend_class): Likewise for inform.
39 * mangle.c (mangle_decl): Likewise for warning/warning_at.
40 * method.c (process_subob_fn, walk_field_subobs,
41 maybe_explain_implicit_delete): Likewise for inform.
42 * parser.c (cp_parser_lambda_introducer): Likewise.
43 * pt.c (check_specialization_namespace,
44 maybe_process_partial_specialization): Likewise for permerror.
45 (redeclare_class_template): Likewise for inform_n.
46 (coerce_template_parms, tsubst_copy_and_build): Likewise for inform.
47 * search.c (check_final_overrider): Likewise.
48 * semantics.c (process_outer_var_ref): Likewise.
49
cca444fb
JM
502015-07-27 Jason Merrill <jason@redhat.com>
51
52 * constexpr.c (cxx_eval_call_expression): Don't add this call to
53 the hash table if !depth_ok.
54
05b28fd6
MP
552015-07-27 Marek Polacek <polacek@redhat.com>
56
57 PR c++/66555
58 PR c/54979
59 * call.c (build_new_op_1): Call warn_tautological_cmp.
60 * pt.c (tsubst_copy_and_build): Use sentinel to suppress tautological
61 compare warnings.
62
11f2c78a
PP
632015-07-26 Patrick Palka <ppalka@gcc.gnu.org>
64
65 PR c++/18969
66 * typeck.c (check_return_expr): Also do the basic return-value
67 validity checking if processing_template_decl and yet types are
68 not dependent. Remove obsolete code.
69
af718670
PC
702015-07-26 Paolo Carlini <paolo.carlini@oracle.com>
71
72 * decl.c (poplevel): Use Use DECL_SOURCE_LOCATION and "%qD"
73 in warning_at instead of "%q+D" in warning.
74 (warn_extern_redeclared_static): Likewise for inform.
75 (check_redeclaration_no_default_args): Likewise for permerror.
76 (duplicate_decls): Likewise.
77 (check_previous_goto_1): Likewise for inform.
78 (check_goto, start_decl, check_for_uninitialized_const_var,
79 start_preparsed_function, finish_function§): Likewise.
80 * decl2.c (build_anon_union_vars, c_parse_final_cleanups): Likewise.
81 * init.c (sort_mem_initializers): Likewise.
82 * typeck.c (convert_for_initialization): Likewise for inform.
83 (maybe_warn_about_returning_address_of_local): Likewise.
84 * typeck2.c (abstract_virtuals_error_sfinae): Likewise for inform.
85 (cxx_incomplete_type_diagnostic): Likewise for emit_diagnostic.
86
9783ae5a
PP
872015-07-25 Patrick Palka <ppalka@gcc.gnu.org>
88
89 PR c++/66857
90 * cvt.c (ocp_convert): Don't call scalar_constant_value when
91 converting to a class type.
92
0c0d447a
JM
932015-07-24 Jason Merrill <jason@redhat.com>
94
00367044 95 PR c++/64969
0c0d447a
JM
96 * pt.c (splice_late_return_type): Correct deduced return type for
97 abbreviated function template.
98
24f1db9c
RB
992015-07-24 Richard Biener <rguenther@suse.de>
100
101 * init.c (build_vec_init): Build iterator bound in the same
102 type as the iterator.
103
04e4dbd0
MP
1042015-07-23 Marek Polacek <polacek@redhat.com>
105
106 PR c++/66572
107 * pt.c (tsubst_copy_and_build): Add warn_logical_op sentinel.
108
25f05e7b
PC
1092015-07-23 Paolo Carlini <paolo.carlini@oracle.com>
110
111 PR c++/52987
112 * parser.c (cp_parser_simple_declaration): Robustify check avoiding
113 redundant error messages.
114
faa16e44
PC
1152015-07-21 Paolo Carlini <paolo.carlini@oracle.com>
116
117 * decl.c (grokdeclarator): For an erroneous template parameter
118 propagate error_mark_node as type.
119
451b5e48
MP
1202015-07-20 Marek Polacek <polacek@redhat.com>
121
122 PR c++/55095
123 * typeck.c (cp_build_binary_op): Warn about left shift overflows.
124
0467e3eb
JM
1252015-07-15 Jason Merrill <jason@redhat.com>
126
127 PR c++/65091
128 * parser.c (cp_parser_unqualified_id): Don't accept ~x in a
129 template if there is no type x in scope.
130
09f725f4
PP
1312015-07-14 Patrick Palka <ppalka@gcc.gnu.org>
132
133 PR c++/66850
134 * pt.c (redeclare_class_template): Set the DECL_CONTEXTs of each
135 template template parm in the redeclaration.
136 (lookup_template_class_1): Peel off irrelevant template levels
137 from current_template_parms before augmenting the argument
138 list.
139
973590f3
AA
1402015-07-14 Andrea Azzarone <azzaronea@gmail.com>
141
142 PR c++/65071
143 * parser.c (cp_parser_sizeof_pack): Also consider template template
144 parameters.
145
e056dfd0
JM
1462015-07-14 Jason Merrill <jason@redhat.com>
147
148 * call.c (build_new_method_call_1): Call reshape_init.
149
87679b76
PC
1502015-07-14 Paolo Carlini <paolo.carlini@oracle.com>
151
152 * pt.c (check_template_shadow): Emit error + inform instead of
153 two errors.
154
15d6614a
PP
1552015-07-13 Patrick Palka <ppalka@gcc.gnu.org>
156
157 PR c++/65186
158 * pt.c (invalid_nontype_parm_type_p): Accept a bound template
159 template parm type under C++11 and later.
160
026c3cfd
AH
1612015-07-12 Aldy Hernandez <aldyh@redhat.com>
162
163 * call.c: Fix double word typos.
164 * cp-array-notation.c: Same.
165 * cp-tree.h: Same.
166 * init.c: Same.
167 * name-lookup.c: Same.
168 * parser.c: Same.
169
c5540945
PP
1702015-07-10 Patrick Palka <ppalka@gcc.gnu.org>
171
172 PR c++/30044
173 * pt.c (begin_template_parm_list): Add a dummy parameter level
174 to current_template_parms.
175 (end_template_parm_list): Remove the dummy parameter level
176 before adding the real one.
177 (tsubst): Don't attempt to substitute for template parameters
178 corresponding to a dummy argument level.
179 (template_parms_to_args): Remove obsolete hack for
180 giving template template arguments the proper level.
181 (splite_late_return_type): Remove obsolete hack for giving
182 template template arguments the proper level.
183 * error.c (dump_template_decl): Don't print dummy template
184 levels.
185
0a73242e
PC
1862015-07-10 Paolo Carlini <paolo.carlini@oracle.com>
187
188 PR c++/54521
189 * call.c (convert_like_real): Do not set LOOKUP_ONLYCONVERTING for
190 the second step of copy-initialization.
191
55b467a0
JM
1922015-07-10 Jason Merrill <jason@redhat.com>
193
8de8fdb4
JM
194 * pt.c (find_parameter_packs_r): Handle variable templates.
195 (variable_template_specialization_p): New.
196 * cp-tree.h: Declare it.
197
55b467a0
JM
198 * parser.c (cp_parser_template_id): SET_EXPR_LOCATION.
199
bb49ee66
EB
2002015-07-10 Eric Botcazou <ebotcazou@adacore.com>
201
202 * decl2.c (cpp_check): Revert latest change.
203
5c4e8e5c
JM
2042015-07-09 Jason Merrill <jason@redhat.com>
205
1bf3fe3c
JM
206 * pt.c (instantiation_dependent_r) [TRAIT_EXPR]: Call
207 value_dependent_expression_p.
208
5c4e8e5c
JM
209 * cp-tree.h (struct cp_parameter_declarator): Rename ellipsis_p to
210 template_parameter_pack_p.
211 * parser.c (declarator_can_be_parameter_pack): False if
212 parameter_pack_p is set.
213 (make_parameter_declarator): Add template_parameter_pack_p parm.
214 (cp_parser_template_parameter): Remove parameter pack parsing.
215 (cp_parser_parameter_declaration): Handle all parameter packs.
216 Tweak default argument permerror.
217
2cc6d90e
AS
2182015-07-09 Andrew Sutton <andrew.n.sutton@gmail.com>
219
220 * parser.c (cp_parser_default_type_template_argument)
221 (cp_parser_default_template_template_argument): Factor out from
222 cp_parser_type_parameter.
223
09bae928
PC
2242015-07-09 Paolo Carlini <paolo.carlini@oracle.com>
225
226 * typeck.c (warn_args_num): Rename to error_args_num.
227 (convert_arguments): Adjust calls.
228
f51ade33
AM
2292015-07-09 Andrew MacLeod <amacleod@redhat.com>
230
231 * cp-ubsan.c: Don't include alloc-pool.h or lto-streamer.h.
232
a9dcd529
EB
2332015-07-08 Eric Botcazou <ebotcazou@adacore.com>
234
235 * decl2.c (cpp_check): Deal with IS_CONSTEXPR.
236
b03b462f
JJ
2372015-07-08 Jakub Jelinek <jakub@redhat.com>
238
239 * decl.c (grokfndecl): Handle flag_openmp_simd like flag_openmp.
240 * pt.c (apply_late_template_attributes): Likewise.
241
7b3bc1f3
MP
2422015-07-08 Marek Polacek <polacek@redhat.com>
243
244 PR c++/66748
245 * tree.c (handle_abi_tag_attribute): Check for CLASS_TYPE_P before
246 accessing TYPE_LANG_SPECIFIC node.
247
c7131fb2
AM
2482015-07-07 Andrew MacLeod <amacleod@redhat.com>
249
250 * call.c: Adjust includes.
251 * class.c: Likewise.
252 * constexpr.c: Likewise.
253 * cp-array-notation.c: Likewise.
254 * cp-gimplify.c: Likewise.
255 * cp-lang.c: Likewise.
256 * cp-objcp-common.c: Likewise.
257 * cp-ubsan.c: Likewise.
258 * cvt.c: Likewise.
259 * decl.c: Likewise.
260 * decl2.c: Likewise.
261 * dump.c: Likewise.
262 * error.c: Likewise.
263 * except.c: Likewise.
264 * expr.c: Likewise.
265 * friend.c: Likewise.
266 * init.c: Likewise.
267 * lambda.c: Likewise.
268 * lex.c: Likewise.
269 * mangle.c: Likewise.
270 * method.c: Likewise.
271 * name-lookup.c: Likewise.
272 * optimize.c: Likewise.
273 * parser.c: Likewise.
274 * pt.c: Likewise.
275 * ptree.c: Likewise.
276 * repo.c: Likewise.
277 * rtti.c: Likewise.
278 * search.c: Likewise.
279 * semantics.c: Likewise.
280 * tree.c: Likewise.
281 * typeck.c: Likewise.
282 * typeck2.c: Likewise.
283
2a7fb83f
EB
2842015-07-07 Eric Botcazou <ebotcazou@adacore.com>
285
286 * decl2.c (cpp_check): Deal with IS_MOVE_CONSTRUCTOR.
287
d762287d
JM
2882015-07-06 Jason Merrill <jason@redhat.com>
289
4366e1c0
JM
290 * pt.c (reduce_template_parm_level): Also build the TYPE_DECL
291 for a template template parameter.
292 (tsubst_decl) [TEMPLATE_DECL]: Use the TEMPLATE_DECL built
293 by reduce_template_parm_level.
294
d762287d
JM
295 * pt.c (argument_pack_element_is_expansion_p): A decl pack is an
296 expansion.
297
a426f31a
JM
2982015-07-02 Jason Merrill <jason@redhat.com>
299
300 PR c++/66743
301 * pt.c (for_each_template_parm_r) [UNDERLYING_TYPE]: Use
302 TYPE_VALUES_RAW rather than TYPE_FIELDS.
303
ee00eaea
AS
3042015-07-02 Andrew Sutton <andrew.n.sutton@gmail.com>
305
306 * pt.c (type_dependent_expression_p): Handle expressions
307 that refer to variable templates.
308
d68f848b
JM
3092015-07-01 Jason Merrill <jason@redhat.com>
310
36a85135
JM
311 * lex.c (init_reswords): s/CXX0X/CXX11/.
312 * parser.c (cp_lexer_get_preprocessor_token): Likewise.
313
a03c9bf1
JM
314 * mangle.c (write_CV_qualifiers_for_type, write_nested_name):
315 Attribute mangling is now -fabi-version=10.
316
d68f848b
JM
317 PR c++/65945
318 * decl.c (cxx_init_decl_processing): Set TYPE_ALIGN of nullptr_t.
319 * class.c (layout_nonempty_base_or_field): Warn if that affects
320 the offset of a field.
321
a31dc4e5
PC
3222015-07-01 Paolo Carlini <paolo.carlini@oracle.com>
323
324 PR c++/60365
325 * parser.c (cp_parser_check_std_attribute): New.
326 (cp_parser_std_attribute_list): Call it.
327
f58d5e06
PP
3282015-07-01 Patrick Palka <ppalka@gcc.gnu.org>
329
330 PR c++/66686
331 * pt.c (coerce_template_template_parm) [PARM_DECL]: Don't
332 return 0 if tsubst returns a dependent type.
333
3048c0c7
JM
3342015-06-30 Jason Merrill <jason@redhat.com>
335
47297e51
JM
336 PR debug/66653
337 * decl2.c (is_late_template_attribute): True for tls_model.
338
3048c0c7
JM
339 PR debug/66653
340 * cp-tree.h (CP_DECL_THREAD_LOCAL_P): New.
341 (DECL_GNU_TLS_P): Use DECL_LANG_SPECIFIC field.
342 (SET_DECL_GNU_TLS_P): New.
343 * call.c (make_temporary_var_for_ref_to_temp): Use
344 CP_DECL_THREAD_LOCAL_P.
345 (set_up_extended_ref_temp): Likewise.
346 * decl.c (duplicate_decls, expand_static_init): Likewise.
347 (redeclaration_error_message, grokvardecl): Likewise.
348 (start_decl, register_dtor_fn, grokdeclarator): Likewise.
349 * decl2.c (get_guard, var_needs_tls_wrapper): Likewise.
350 (handle_tls_init): Likewise.
351 * pt.c (tsubst_decl, tsubst_copy_and_build): Likewise.
352 * semantics.c (finish_id_expression): Likewise.
353 (handle_omp_array_sections_1, finish_omp_clauses): Likewise.
354 (finish_omp_threadprivate): Likewise.
355 * tree.c (decl_storage_duration): Likewise.
356 * cp-gimplify.c (omp_var_to_track): Likewise.
357 (cp_genericize_r): Check that it matches DECL_THREAD_LOCAL_P.
358 * lex.c (retrofit_lang_decl): Return if DECL_LANG_SPECIFIC is
359 already set.
360
fe95b036
ESR
3612015-06-30 Edward Smith-Rowland <3dw4rd@verizon.net>
362
363 Implement N4197 - Adding u8 character literals
364 * parser.c (cp_parser_primary_expression()): Treat CPP_UTF8CHAR
365 and CPP_UTF8CHAR_USERDEF tokens;
366 (cp_parser_parenthesized_expression_list()): Treat CPP_UTF8CHAR token.
367
71506d41
PC
3682015-06-29 Paolo Carlini <paolo.carlini@oracle.com>
369
370 PR c++/65977
371 * decl.c (grokfndecl): Allow constexpr declarations of friend
372 template specializations.
373
da2e71c9
MLI
3742015-06-29 Manuel López-Ibáñez <manu@gcc.gnu.org>
375
376 PR fortran/66605
377 * decl.c (finish_function): Call do_warn_unused_parameter.
378
b155cfd9
MP
3792015-06-29 Marek Polacek <polacek@redhat.com>
380
381 PR c/66322
382 * decl.c (struct cp_switch): Add OUTSIDE_RANGE_P.
383 (push_switch): Set OUTSIDE_RANGE_P.
384 (pop_switch): Update c_do_switch_warnings call.
385 (finish_case_label): Update c_add_case_label call.
386 * semantics.c (finish_switch_cond): Don't warn about -Wswitch-bool
387 here.
388
b55b02ea
MP
3892015-06-27 Marek Polacek <polacek@redhat.com>
390
391 * call.c: Use VECTOR_TYPE_P.
392 * constexpr.c: Likewise.
393 * cvt.c: Likewise.
394 * decl.c: Likewise.
395 * decl2.c: Likewise.
396 * init.c: Likewise.
397 * semantics.c: Likewise.
398 * tree.c: Likewise.
399 * typeck.c: Likewise.
400 * typeck2.c: Likewise.
401
56a6f1d3
MP
4022015-06-27 Marek Polacek <polacek@redhat.com>
403
404 * call.c (set_up_extended_ref_temp): Use VAR_P.
405 * class.c: Use VAR_P throughout.
406 * constexpr.c (cxx_eval_constant_expression): Use VAR_P.
407 * cp-array-notation.c (make_triplet_val_inv): Likewise.
408 * decl.c: Use VAR_OR_FUNCTION_DECL_P or VAR_P
409 throughout.
410 * decl2.c: Likewise.
411 * error.c (dump_decl): Use VAR_P.
412 * mangle.c (decl_implicit_alias_p): Likewise.
413 * parser.c: Use VAR_P throughout.
414 * pt.c: Likewise.
415 * semantics.c: Likewise.
416 * vtable-class-hierarchy.c: Likewise.
417 * tree.c (handle_abi_tag_attribute): Use VAR_OR_FUNCTION_DECL_P.
418
e1cc2355
AS
4192015-06-27 Andreas Schwab <schwab@linux-m68k.org>
420
421 * pt.c (check_unstripped_args): Mark parameter as unused.
422
7457279b
JM
4232015-06-26 Jason Merrill <jason@redhat.com>
424
e0ff153d
JM
425 PR c++/66216
426 * class.c (finish_struct): Call fixup_attribute_variants.
427
9579e906
JM
428 PR c++/66684
429 * typeck2.c (merge_exception_specifiers): Allow different
430 noexcept-specifiers if we've had errors.
431
7498239e
JM
432 PR c++/66255
433 * pt.c (check_unstripped_args): Split out from...
434 (retrieve_specialization): ...here. Allow typedefs in the type of
435 a non-type argument.
436
d15364ce
JM
437 PR c++/66067
438 * mangle.c (write_nested_name): Limit TYPENAME_TYPE handling to
439 TYPE_DECLs.
440 * mangle.c (write_template_args): Handle 0 length TREE_VEC.
441
7457279b
JM
442 PR c++/66654
443 * typeck2.c (digest_init_r): Only expect reshaping if the class is
444 aggregate.
445
311bd4d8
MP
4462015-06-26 Marek Polacek <polacek@redhat.com>
447
448 * cp-array-notation.c (expand_sec_reduce_builtin): Use INDIRECT_REF_P.
449 * cp-ubsan.c (cp_ubsan_check_member_access_r): Likewise.
450
f0889939
AM
4512015-06-25 Andrew MacLeod <amacleod@redhat.com>
452
453 * call.c: Remove ipa-ref.h and plugin-api.h from include list.
454 * class.c: Likewise.
455 * cp-ubsan.c: Likewise.
456 * decl.c: Likewise.
457 * decl2.c: Likewise.
458 * lambda.c: Likewise.
459 * mangle.c: Likewise.
460 * method.c: Likewise.
461 * optimize.c: Likewise.
462 * parser.c: Likewise.
463 * semantics.c: Likewise.
464 * tree.c: Likewise.
465 * vtable-class-hierarchy.c: Likewise.
466
ca752f39
RS
4672015-06-25 Richard Sandiford <richard.sandiford@arm.com>
468
469 * constexpr.c (constexpr_fundef_hasher): Inherit from ggc_ptr_hash
470 rather than ggc_hasher.
471 (constexpr_call_hasher): Likewise.
472 * cp-tree.h (cxx_int_tree_map_hasher, named_label_hasher): Likewise.
473 * decl.c (typename_hasher): Likewise.
474 * mangle.c (conv_type_hasher): Likewise.
475 * pt.c (spec_hasher): Likewise.
476 * tree.c (cplus_array_hasher, list_hasher): Likewise.
477 * typeck2.c (abstract_type_hasher): Likewise.
478
8d67ee55
RS
4792015-06-25 Richard Sandiford <richard.sandiford@arm.com>
480
481 * class.c (fixed_type_or_null_ref_ht): Inherit from nofree_ptr_hash
482 rather than pointer_hash.
483 (fixed_type_or_null): Use nofree_ptr_hash instead of pointer_hash.
484 * semantics.c (nrv_data): Likewise.
485 * tree.c (verify_stmt_tree_r, verify_stmt_tree): Likewise.
486
024f2d89
JM
4872015-06-24 Jason Merrill <jason@redhat.com>
488
e6d61513
JM
489 PR c++/66647
490 * pt.c (dependent_type_p_r): Check for dependent alias template
491 specialization sooner.
492
024f2d89
JM
493 PR c++/66501
494 * class.c (type_has_nontrivial_assignment): Remove.
495 * cp-tree.h: Remove declaration.
496 * init.c (vec_copy_assign_is_trivial): New.
497 (build_vec_init): Use it.
498
e79fc3d4
ESR
4992015-06-24 Edward Smith-Rowland <3dw4rd@verizon.net>
500
501 Implement N3928 - Extending static_assert
502 * parser.c (cp_parser_static_assert): Support static_assert with
503 no message string. Supply an empty string in this case.
504 * semantics.c (finish_static_assert): Don't try to print a message if
505 the message strnig is empty.
506
aa97bb6f
AB
5072015-06-24 Adam Butcher <adam@jessamine.co.uk>
508
509 PR c++/65750
510 * parser.c (cp_parser_simple_type_specifier): Don't synthesize
511 implicit template parm if 'auto' is a placeholder for trailing
512 return type.
513
7af8ef58
PP
5142015-06-24 Patrick Palka <ppalka@gcc.gnu.org>
515
516 Revert:
517 2015-06-23 Patrick Palka <ppalka@gcc.gnu.org>
518
519 PR c++/30044
520 * parser.c (cp_parser_template_parameter_list): Update
521 current_template_parms right after processing a paramater.
522 * pt.c (template_parms_to_args): Remove obsolete hack for
523 giving template template arguments the proper level.
524 (check_default_tmpl_args): Account for tested template
525 parameter_lists.
526 (splite_late_return_type): Remove obsolete hack for giving
527 template template arguments the proper level.
528
72e839ca
PC
5292015-06-24 Paolo Carlini <paolo.carlini@oracle.com>
530
531 PR c++/65811
532 * decl.c (duplicate_decls): Adjust DECL_COMDAT of newdecl.
533
1a8f8908
PP
5342015-06-23 Patrick Palka <ppalka@gcc.gnu.org>
535
6c4ed521 536 PR c++/30044
1a8f8908
PP
537 * parser.c (cp_parser_template_parameter_list): Update
538 current_template_parms right after processing a paramater.
539 * pt.c (template_parms_to_args): Remove obsolete hack for
540 giving template template arguments the proper level.
541 (check_default_tmpl_args): Account for tested template
542 parameter_lists.
543 (splite_late_return_type): Remove obsolete hack for giving
544 template template arguments the proper level.
545
d4c9e7f9
JM
5462015-06-23 Jason Merrill <jason@redhat.com>
547
d88511ae
JM
548 PR c++/65879
549 * decl.c (grokfndecl): Check the linkage of ctype, not just
550 TYPE_ANONYMOUS_P.
551 * tree.c (no_linkage_check): Skip the 'this' pointer.
552
115ef7c5
JM
553 PR c++/66501
554 * class.c (type_has_nontrivial_assignment): New.
555 * init.c (build_vec_init): Use it.
556 * cp-tree.h: Declare it.
557 * method.c (trivial_fn_p): Templates aren't trivial.
558
d4c9e7f9
JM
559 PR c++/66542
560 * decl.c (expand_static_init): Make sure the destructor is callable
561 here even if we have an initializer.
562
6935a923
PMR
5632015-06-04 Pierre-Marie de Rodat <derodat@adacore.com>
564
565 * lang-specs.h: Pass "-o %g.s" to cc1plus for headers even if
566 -fdump-ada-spec is passed.
567
c6a2f2d9
PMR
5682015-06-22 Pierre-Marie de Rodat <derodat@adacore.com>
569
570 * decl2.c (cpp_check): Deal with HAS_DEPENDENT_TEMPLATE_ARGS.
571
ea663be9
PC
5722015-06-22 Paolo Carlini <paolo.carlini@oracle.com>
573
574 * decl.c (grokdeclarator): Use declspecs->locations[ds_virtual].
575
5762015-06-22 Paolo Carlini <paolo.carlini@oracle.com>
577
578 * decl.c (grokdeclarator): Remove pointless code.
579
e8a3c597
JM
5802015-06-22 Jason Merrill <jason@redhat.com>
581
582 PR c++/66515
583 * call.c (implicit_conversion): Only reshape for classes.
584
6b4db501
MM
5852015-06-22 Mikhail Maltsev <maltsevm@gmail.com>
586
587 * pt.c (maybe_adjust_types_for_deduction): Use std::swap instead of
588 manually swapping.
589 * semantics.c (finish_omp_atomic): Likewise.
590 * typeck.c (cp_build_array_ref): Likewise.
591
cd95a0d5
MM
5922015-06-20 Mikhail Maltsev <maltsevm@gmail.com>
593
594 PR c++/65882
595 * call.c (build_new_op_1): Check tf_warning flag in all cases.
596
1539357d 5972015-06-19 Jason Merrill <jason@redhat.com>
2ddf4350
JM
598
599 PR c++/66585
600 * pt.c (instantiate_class_template_1): Clear
601 cp_unevaluated_operand and c_inhibit_evaluation_warnings.
602
62245e6f
JM
603 PR c++/65880
604 * decl.c (build_ptrmemfunc_type): Check TYPE_GET_PTRMEMFUNC_TYPE after
605 cv-qualifiers.
606 * typeck.c (merge_types): build_ptrmemfunc_type before applying
607 quals and attributes.
608
30ac6e80
JM
609 PR c++/65973
610 * constexpr.c (build_constexpr_constructor_member_initializers):
611 Handle an empty STATEMENT_LIST.
612
892562cf
JM
613 PR c++/65843
614 * pt.c (tsubst_copy_and_build): Register a capture proxy in
615 local_specializations.
616
769430b2
JM
6172015-06-17 Jason Merrill <jason@redhat.com>
618
619 PR c++/66001
620 * constexpr.c (cxx_eval_constant_expression): Handle TRY_BLOCK and
621 TRY_FINALLY_EXPR.
622 (potential_constant_expression_1): Likewise.
623
9fa6ffe1
JM
6242015-06-17 Jason Merrill <jason@redhat.com>
625
626 PR c++/66515
627 * call.c (implicit_conversion): Call reshape_init here, early.
628 (build_aggr_conv): Not here.
629
64b5fcfa
JJ
6302015-06-17 Jakub Jelinek <jakub@redhat.com>
631
632 PR c++/66571
cc63a7fa
JJ
633 * pt.c (tsubst_omp_clause_decl): New function.
634 (tsubst_omp_clauses): Use it or tsubst_copy instead of
635 tsubst_expr on OMP_CLAUSE_DECL.
64b5fcfa 636
ee47f74e
AM
6372015-06-17 Andrew MacLeod <amacleod@redhat.com>
638
639 * cp-lang.c (cxx_dwarf_name): Use anon_aggrname_p.
640 * cp-tree.h (TYPE_ANONYMOUS_P): Likewise.
641 * decl.c (grokdeclarator, xref_tag_1): Likewise.
642 * error.c (dump_aggr_type): likewise.
643 * pt.c (push_template_decl_real): Likewise.
644 * name-lookup.c (make_anon_name): Use anon_aggrname_format.
645
abb226c9
AM
6462015-06-17 Andrew MacLeod <amacleod@redhat.com>
647
648 * call.c: Do not include input.h, line-map.h or is-a.h.
649 * class.c: Likewise.
650 * constexpr.c: Likewise.
651 * cp-array-notation.c: Likewise.
652 * cp-gimplify.c: Likewise.
653 * cp-lang.c: Likewise.
654 * cp-objcp-common.c: Likewise.
655 * cp-tree.h: Likewise.
656 * cp-ubsan.c: Likewise.
657 * cvt.c: Likewise.
658 * decl.c: Likewise.
659 * decl2.c: Likewise.
660 * dump.c: Likewise.
661 * error.c: Likewise.
662 * except.c: Likewise.
663 * expr.c: Likewise.
664 * friend.c: Likewise.
665 * init.c: Likewise.
666 * lambda.c: Likewise.
667 * lex.c: Likewise.
668 * mangle.c: Likewise.
669 * method.c: Likewise.
670 * name-lookup.c: Likewise.
671 * optimize.c: Likewise.
672 * parser.c: Likewise.
673 * pt.c: Likewise.
674 * ptree.c: Likewise.
675 * repo.c: Likewise.
676 * rtti.c: Likewise.
677 * search.c: Likewise.
678 * semantics.c: Likewise.
679 * tree.c: Likewise.
680 * typeck.c: Likewise.
681 * typeck2.c: Likewise.
682 * vtable-class-hierarchy.c: Likewise.
683
ba394ca6
PC
6842015-06-16 Paolo Carlini <paolo.carlini@oracle.com>
685
686 PR c++/59682
687 * parser.c (cp_parser_new_placement): Reject an empty expression-list.
688
63d02f05
JM
6892015-06-16 Jason Merrill <jason@redhat.com>
690
7599760d
JM
691 PR c++/66536
692 * tree.c (replace_placeholders_r) [CONSTRUCTOR]: Handle type
693 mismatch.
694
2ed4c029
JM
695 PR c++/58063
696 * tree.c (bot_manip): Remap SAVE_EXPR.
697
63d02f05
JM
698 PR c++/66387
699 * pt.c (tsubst_copy) [VAR_DECL]: Use process_outer_var_ref.
700
04eca83e
NS
7012015-06-15 Nathan Sidwell <nathan@acm.org>
702
703 PR c++/58583
704 * cp-tree.h (DECL_INSTANTIATING_NSDMI_P): New.
705 * init.c (get_nsdmi): Check for DEFAULT_ARG in template case and
706 protect it from recursive instantiation.
707
f92c7426
PC
7082015-06-15 Paolo Carlini <paolo.carlini@oracle.com>
709
710 PR c++/51048
711 * decl2.c (no_linkage_error): Do not issue a permerror if the DECL
712 using a local type is pure virtual.
713
6feffb3a
PP
7142015-06-13 Patrick Palka <ppalka@gcc.gnu.org>
715
716 * call.c: Remove comment documenting the long-deleted
717 function build_method_call.
718
076fecad
PP
7192015-06-13 Patrick Palka <ppalka@gcc.gnu.org>
720
721 PR c++/65168
722 * typeck.c (cp_build_binary_op): Warn when comparing an address
723 of a reference against NULL.
724
350562a7
JM
7252015-06-12 Jason Merrill <jason@redhat.com>
726
727 PR c++/65719
728 * pt.c (tsubst_decl) [VAR_DECL]: Mark namespace-scope
729 variables as DECL_NOT_REALLY_EXTERN.
730
acb2970c
JM
7312015-06-11 Jason Merrill <jason@redhat.com>
732
133bc698
JM
733 PR c++/66445
734 * constexpr.c (potential_constant_expression_1): Handle a
735 DECL_EXPR of TYPE_DECL.
736
acb2970c
JM
737 PR c++/66450
738 * constexpr.c (cxx_eval_store_expression): Avoid messing up outer
739 ctx->ctor.
740
a0349665
PMR
7412015-06-11 Pierre-Marie de Rodat <derodat@adacore.com>
742
743 * decl.c (cxx_init_decl_processing): Register the main
744 translation unit through the new debug hook.
745
1a4cd2cd
JM
7462015-06-10 Jason Merrill <jason@redhat.com>
747
748 PR c++/66289
749 * cp-tree.h (TEMPLATE_DECL_COMPLEX_ALIAS_P): New.
750 * pt.c (push_template_decl_real): Set it.
751 (dependent_alias_template_spec_p): Use it.
752 (dependent_type_p_r): Use dependent_alias_template_spec_p.
753 (uses_all_template_parms_data, uses_all_template_parms_r)
754 (complex_alias_template_p): New.
755 (get_template_parm_index): Handle BOUND_TEMPLATE_TEMPLATE_PARM.
756
5af874fb
JM
7572015-06-09 Jason Merrill <jason@redhat.com>
758
34f42d7b
JM
759 DR 1467
760 PR c++/51747
761 * typeck2.c (digest_init_r): Replace previous change with
762 gcc_unreachable.
763
5af874fb
JM
764 PR c++/66387
765 * semantics.c (process_outer_var_ref): Make sure the value is
766 actually constant before returning it.
767 * typeck.c (cp_build_array_ref): Allow subscripting non-lvalue
768 array.
769
ebcf592c
PC
7702015-06-09 Paolo Carlini <paolo.carlini@oracle.com>
771
772 PR c++/65815
773 * typeck2.c (digest_nsdmi_init): On aggregates use reshape_init.
774 * init.c (expand_default_init): Likewise.
775
6a9263f7
JM
7762015-06-09 Jason Merrill <jason@redhat.com>
777
778 PR c++/66383
779 * tree.c (replace_placeholders_r): Handle placeholders for an
780 outer object.
781 * typeck2.c (store_init_value): Only replace_placeholders for
782 objects of class type.
783
13fdf2e2
AM
7842015-06-08 Andrew MacLeod <amacleod@redhat.com>
785
786 * call.c : Adjust include files.
787 * class.c : Likewise.
788 * constexpr.c : Likewise.
789 * cp-array-notation.c : Likewise.
790 * cp-cilkplus.c : Likewise.
791 * cp-gimplify.c : Likewise.
792 * cp-lang.c : Likewise.
793 * cp-objcp-common.c : Likewise.
794 * cp-tree.h : Likewise.
795 * cp-ubsan.c : Likewise.
796 * cvt.c : Likewise.
797 * decl.c : Likewise.
798 * decl2.c : Likewise.
799 * dump.c : Likewise.
800 * error.c : Likewise.
801 * except.c : Likewise.
802 * expr.c : Likewise.
803 * friend.c : Likewise.
804 * init.c : Likewise.
805 * lambda.c : Likewise.
806 * lex.c : Likewise.
807 * mangle.c : Likewise.
808 * method.c : Likewise.
809 * name-lookup.c : Likewise.
810 * optimize.c : Likewise.
811 * parser.c : Likewise.
812 * pt.c : Likewise.
813 * ptree.c : Likewise.
814 * repo.c : Likewise.
815 * rtti.c : Likewise.
816 * search.c : Likewise.
817 * semantics.c : Likewise.
818 * tree.c : Likewise.
819 * typeck.c : Likewise.
820 * typeck2.c : Likewise.
821 * vtable-class-hierarchy.c : Likewise.
822
85d9a299
JM
8232015-06-05 Jason Merrill <jason@redhat.com>
824
39f383b7
JM
825 PR c++/66405
826 * pt.c (argument_pack_element_is_expansion_p): Return 2 if
827 the expansion has extra args.
828 (use_pack_expansion_extra_args_p): Return true in that case.
829
85d9a299
JM
830 PR c++/66405
831 * pt.c (type_dependent_expression_p): EXPR_PACK_EXPANSION is
832 dependent even if it has a type.
833
d7438551
AH
8342015-06-05 Aldy Hernandez <aldyh@redhat.com>
835
836 * cp-objcp-common.c: Adjust comment for
837 cxx_warn_unused_global_decl.
838 * cp-objcp-common.h (LANG_HOOKS_WRITE_GLOBALS): Remove
839 (LANG_HOOKS_POST_COMPILATION_PARSING_CLEANUPS): New.
840 * cp-tree.h (note_mangling_alias): Protoize.
841 (cp_write_global_declarations): Remove.
842 (cxx_post_compilation_parsing_cleanups): Protoize.
843 * decl.c (wrapup_globals_for_namespace): Remove use of DATA
844 argument.
845 * decl2.c (mangling_aliases): New global.
846 (build_java_method_aliases): New. Adapted from
847 collect_candidates_for_java_method_aliases.
848 (collect_candidates_for_java_method_aliases): Remove.
849 (build_java_method_aliases): Remove.
850 (generate_mangling_aliases): New.
851 (note_mangling_alias): New. Moved from mangle_decl.
852 (locus_at_end_of_parsing): New global.
853 (c_parse_final_cleanups): Rename from
854 cp_write_global_declarations.
855 Use locus_at_end_of_parsing.
856 Call generate_mangling_aliases.
857 Rename call to collect_candidates_for_java_method_aliases into
858 build_java_method_aliases.
859 Remove call to finalize_compilation_unit.
860 Move vtable handling into cxx_post_compilation_parsing_cleanups.
861 Do not call check_global_declarations or
862 emit_debug_global_declarations.
863 (cxx_post_compilation_parsing_cleanups): New.
864 * mangle.c (mangle_decl): Move code to note_mangling_alias.
865 * name-lookup.c (do_namespace_alias): Call early_global_decl.
866
ac59f9be
NS
8672015-06-05 Nathan Sidwell <nathan@acm.org>
868
869 PR c++/52595
870 * parser.c (cp_parser_cache_defarg): Continue looking for
871 declarators when scanning a potential template argument list of an
872 NSDMI.
873
ecb9f223
AM
8742015-06-04 Andrew MacLeod <amacleod@redhat.com>
875
876 * call.c: Adjust includes for restructured coretypes.h.
877 * class.c: Likewise.
878 * constexpr.c: Likewise.
879 * cp-array-notation.c: Likewise.
880 * cp-gimplify.c: Likewise.
881 * cp-lang.c: Likewise.
882 * cp-objcp-common.c: Likewise.
883 * cp-tree.h: Likewise.
884 * cp-ubsan.c: Likewise.
885 * cvt.c: Likewise.
886 * decl.c: Likewise.
887 * decl2.c: Likewise.
888 * dump.c: Likewise.
889 * error.c: Likewise.
890 * except.c: Likewise.
891 * expr.c: Likewise.
892 * friend.c: Likewise.
893 * init.c: Likewise.
894 * lambda.c: Likewise.
895 * lex.c: Likewise.
896 * mangle.c: Likewise.
897 * method.c: Likewise.
898 * name-lookup.c: Likewise.
899 * optimize.c: Likewise.
900 * parser.c: Likewise.
901 * pt.c: Likewise.
902 * ptree.c: Likewise.
903 * repo.c: Likewise.
904 * rtti.c: Likewise.
905 * search.c: Likewise.
906 * semantics.c: Likewise.
907 * tree.c: Likewise.
908 * typeck.c: Likewise.
909 * typeck2.c: Likewise.
910 * vtable-class-hierarchy.c: Likewise.
911
e93ca5ca
RR
9122015-06-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
913
914 PR c++/66192
915 PR target/66200
916 * cp-tree.h (get_guard_cond): Adjust declaration
917 * decl.c (expand_static_init): Use atomic load acquire
918 and adjust call to get_guard_cond.
919 * decl2.c (build_atomic_load_byte): New function.
920 (get_guard_cond): Handle thread_safety.
921 (one_static_initialization_or_destruction): Adjust call to
922 get_guard_cond.
923
1cc1ac7f
JM
9242015-06-03 Jason Merrill <jason@redhat.com>
925
926 PR c++/44282
927 * mangle.c (mangle_decl): Always SET_IDENTIFIER_GLOBAL_VALUE.
928 (write_CV_qualifiers_for_type): Set G.need_abi_warning.
929 (decl_implicit_alias_p): Split out from maybe_remove_implicit_alias.
930 * cp-tree.h (DECL_REALLY_EXTERN): Handle null DECL_LANG_SPECIFIC.
931
d3ea4c06
MLI
9322015-06-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
933 Paolo Carlini <paolo.carlini@oracle.com>
934
935 PR c++/66130
936 * typeck.c (invalid_nonstatic_memfn_p): Add location_t parameter and
937 use it in the diagnostic.
938 (decay_conversion): Adjust call.
939 * semantics.c (finish_decltype_type): Likewise.
940 * call.c (resolve_args, build_new_op_1,
941 perform_implicit_conversion_flags): Adjust calls.
942 * cvt.c (ocp_convert, convert_to_void): Likewise.
943 * cp-tree.h (invalid_nonstatic_memfn_p): Update declaration.
944
4753e009
PC
9452015-06-03 Paolo Carlini <paolo.carlini@oracle.com>
946
947 * decl.c (check_tag_decl): Use declspecs->locations as locations in
948 error_at and warning_at calls.
949
7b3a9795
MP
9502015-06-03 Marek Polacek <polacek@redhat.com>
951
952 PR sanitizer/66190
953 * cp-gimplify.c (struct cp_genericize_data): Add no_sanitize_p.
954 (cp_genericize_r): Don't instrument static initializers.
955 (cp_genericize_tree): Initialize wtd.no_sanitize_p.
956
ea5b45b6
AT
9572015-06-02 Andres Tiraboschi <andres.tiraboschi@tallertechnologies.com>
958
959 * decl.c (start_function): Call plugin before parsing.
960 (finish_function): Call plugin after parsing.
961
5d58db82
PP
9622015-06-02 Patrick Palka <patrick@parcs.ath.cx>
963
964 * cp-tree.h (init_error): Remove declaration.
965 * error.c (scratch_pretty_printer): Rename to ...
966 (actual_pretty_printer): ... this.
967 (cxx_pp): Constify and update accordingly.
968 (init_error): Remove definition.
969 * lex.c (cxx_init): Do not call init_error.
970
a983abd2
PC
9712015-06-02 Paolo Carlini <paolo.carlini@oracle.com>
972
973 PR c++/61683
974 * parser.c (cp_parser_mem_initializer): Allow for decltype-specifier.
975
603eaec4
JM
9762015-06-01 Jason Merrill <jason@redhat.com>
977
81371eff
JM
978 PR c++/65942
979 * decl2.c (mark_used): Don't always instantiate constexpr fns.
980 * constexpr.c (cxx_eval_call_expression): Instantiate them here.
981
603eaec4
JM
982 PR c++/44282
983 * mangle.c (attr_strcmp): New.
984 (write_CV_qualifiers_for_type): Also write out attributes that
985 affect type identity.
986 (write_type): Strip all attributes after writing qualifiers.
987
6ad6af49
JM
9882015-05-31 Jason Merrill <jason@redhat.com>
989
255a48d6
JM
990 * constexpr.c (cxx_eval_indirect_ref): Try folding first.
991
6ad6af49
JM
992 PR c++/66320
993 * constexpr.c (cxx_eval_constant_expression): Treat a placeholder
994 with the wrong type as non-constant.
995
f4252989
JM
9962015-05-27 Jason Merrill <jason@redhat.com>
997
cba16cca
JM
998 * decl.c (check_redeclaration_exception_specification): Depend on
999 -Wsystem-headers rather than -pedantic.
1000
f4252989
JM
1001 * decl.c (warn_extern_redeclared_static): Use the location of
1002 newdecl in diagnostics, not input_location.
1003 (validate_constexpr_redeclaration): Likewise.
1004 (check_redeclaration_no_default_args): Likewise.
1005 (duplicate_decls): Likewise.
1006 (check_redeclaration_exception_specification): Likewise.
1007 Change second diagnostic to inform.
1008
6f2d72e0
NS
10092015-05-24 Nathan Sidwell <nathan@acm.org>
1010
1011 PR c++/66243
1012 * decl.c (build_enumerator): Don't silently convert scoped enums.
1013
10142015-05-24 Jan Hubicka <hubicka@ucw.cz>
233ce289
JH
1015
1016 PR lto/66180
1017 * mangle.c (mangle_decl): Mangle anonymous namespace types as
1018 "<anon>".
1019
84a3423b
NS
10202015-05-23 Nathan Sidwell <nathan@acm.org>
1021
1022 PR c++/65936
1023 * pt.c (lookup_template_class_1): Copy may_alias attribute too.
1024
a95492ab
JW
10252015-05-22 Jim Wilson <jim.wilson@linaro.org>
1026
1027 * Make-lang.in (check_g++_parallelize): Update comment.
1028
320d13ec
PC
10292015-05-22 Paolo Carlini <paolo.carlini@oracle.com>
1030
1031 PR c++/65598
1032 * decl.c (grokdeclarator): Use the correct location in error
1033 messages about 'explicit'.
1034
fd5c817a
MP
10352015-05-22 Marek Polacek <polacek@redhat.com>
1036 Edward Smith-Rowland <3dw4rd@verizon.net>
1037
1038 PR c/47043
1039 * cp-tree.h (build_enumerator): Update declaration.
1040 * decl.c (build_enumerator): Add attributes parameter. Call
1041 cplus_decl_attributes.
1042 * init.c (constant_value_1): Pass tf_none to mark_used.
1043 * parser.c (cp_parser_enumerator_definition): Parse attributes and
1044 pass them down to build_enumerator.
1045 * pt.c (tsubst_enum): Pass decl attributes to build_enumerator.
1046 * semantics.c (finish_id_expression): Don't warn_deprecated_use here.
1047
9ab2fcc1
NS
10482015-05-21 Nathan Sidwell <nathan@acm.org>
1049
1050 PR c++/60943
1051 * decl2.c (change_return_type): Propagate FUNCTION_REF_QUALIFIED.
1052
6b6dd1aa
MP
10532015-05-21 Marek Polacek <polacek@redhat.com>
1054
1055 * typeck.c (warn_args_num): Don't print "declare here" for builtins.
1056
12101053
JM
10572015-05-20 Jason Merrill <jason@redhat.com>
1058
226a93b7
JM
1059 * pt.c (tsubst_decl) [VAR_DECL]: SET_DECL_IMPLICIT_INSTANTIATION
1060 before register_specialization.
1061
12101053
JM
1062 * decl.c (grok_op_properties): Don't complain about size_t
1063 placement delete here.
1064 * call.c (second_parm_is_size_t): Split out from...
1065 (non_placement_deallocation_fn_p): ...here.
1066 (build_op_delete_call): Warn about size_t placement delete with
1067 -Wc++14-compat.
1068
9ab2fcc1 10692015-05-19 Nathan Sidwell <nathan@acm.org>
09b59d4d
NS
1070
1071 PR c++/65954
1072 * typeck.c (finish_class_member_access_expr): Diagnose failed
1073 lookup of enum class member.
1074
41b37d5e
JJ
10752015-05-19 Jakub Jelinek <jakub@redhat.com>
1076
1077 PR middle-end/66199
1078 * parser.c (cp_parser_omp_for_loop): Don't add
1079 OMP_CLAUSE_SHARED to OMP_PARALLEL_CLAUSES when moving
1080 OMP_CLAUSE_LASTPRIVATE clause to OMP_FOR_CLAUSES.
1081 (cp_parser_omp_teams): Set OMP_TEAMS_COMBINED for combined
1082 constructs.
1083
fab27f52
MM
10842015-05-19 Mikhail Maltsev <maltsevm@gmail.com>
1085
1086 * typeck.c (composite_pointer_type): Use std::swap instead of explicit
1087 swaps.
1088
80f1c14d
JM
10892015-05-18 Jason Merrill <jason@redhat.com>
1090
f41aecf4
JM
1091 * pt.c (retrieve_specialization): Make sure our arguments have
1092 gone through strip_typedefs.
1093
b237c4cb
JM
1094 * pt.c (tsubst_decl) [VAR_DECL]: Call coerce_innermost_template_parms.
1095 (determine_specialization): Call coerce_template_parms.
1096
c4d6d7bc
JM
1097 DR 1391
1098 * pt.c (type_unification_real): Check convertibility here.
1099 (unify_one_argument): Not here.
1100
8f56fadc
JM
1101 * tree.c (strip_typedefs_expr) [TRAIT_EXPR]: Fix typo.
1102 (strip_typedefs) [DECLTYPE_TYPE]: Fix typedef of decltype.
1103 [TREE_LIST]: Fix no-change case.
1104
80f1c14d
JM
1105 * ptree.c (cxx_print_xnode): Handle TRAIT_EXPR.
1106
40de31cf
MLI
11072015-05-16 Manuel López-Ibáñez <manu@gcc.gnu.org>
1108
1109 PR fortran/44054
1110 * error.c (cp_diagnostic_starter): Use diagnostic_location
1111 function.
1112 (cp_print_error_function): Likewise.
1113 (cp_printer): Replace locus pointer with accessor function.
1114
c3388e62
DM
11152015-05-12 David Malcolm <dmalcolm@redhat.com>
1116
1117 * parser.c (cp_parser_selection_statement): Add location and
1118 guard_kind arguments to calls to
1119 cp_parser_implicitly_scoped_statement.
1120 (cp_parser_iteration_statement): Likewise for calls to
1121 cp_parser_already_scoped_statement.
1122 (cp_parser_implicitly_scoped_statement): Add "guard_loc" and
1123 "guard_kind" params; use them to warn for misleading
1124 indentation.
1125 (cp_parser_already_scoped_statement): Likewise.
1126
5ce039df
JH
11272015-05-11 Jan Hubicka <hubicka@ucw.cz>
1128
1129 * class.c (fixup_type_variants): Do not copy TYPE_METHODS
1130 (one_inheriting_sig): Assert tat we always set TYPE_METHODS of main variant.
1131 * semantics.c (finish_member_declaration): Likewise.
1132 * method.c (lazily_declare_fn): Allways add method to main variant list.
1133
a31765ef
AH
11342015-05-09 Aldy Hernandez <aldyh@redhat.com>
1135
1136 PR bootstrap/66085
1137 * decl2.c (note_mangling_alias): Declare arguments as unused.
1138
765189ff
JM
11392015-05-08 Jason Merrill <jason@redhat.com>
1140
1141 * cp-gimplify.c, parser.c: Adjust to -Wc++11-compat replacing
1142 -Wc++0x-compat.
1143
613aba20
JM
11442015-05-08 Jason Merrill <jason@redhat.com>
1145
1146 * decl2.c (mangling_aliases): New variable.
1147 (note_mangling_alias, generate_mangling_aliases): New.
1148 (cp_write_global_declarations): Call generate_mangling_aliases.
1149 (generate_mangling_alias): Split out from...
1150 * mangle.c (mangle_decl): ...here.
1151 * cp-tree.h: Declare note_mangling_alias.
1152
09c5f835
AH
11532015-05-08 Aldy Hernandez <aldyh@redhat.com>
1154
1155 * decl2.c (collect_candidates_for_java_method_aliases): Remove.
1156 (build_java_method_aliases): Adapt to use create_same_body_alias
1157 instead of assemble_alias. Move variable declarations to
1158 definition and tidy up.
1159 (cp_write_global_declarations): Call build_java_method_aliases
1160 instead of collecting candidates first.
1161
90f11cf9
JM
11622015-05-07 Jason Merrill <jason@redhat.com>
1163
1164 PR c++/59012
1165 * parser.c (cp_parser_std_attribute_list): Handle attribute expansion.
1166 (cp_parser_std_attribute_spec): Handle alignas pack expansion.
1167 * decl2.c (is_late_template_attribute): An attribute exp is dependent.
1168 * pt.c (make_pack_expansion): Allow TREE_LIST for attribute expansion.
1169 (apply_late_template_attributes): Handle attribute pack expansion.
1170
0173bd2a
MP
11712015-05-07 Marek Polacek <polacek@redhat.com>
1172
1173 PR c/65179
1174 * typeck.c (cp_build_binary_op): Warn when left shifting a negative
1175 value.
1176
d5449acf
JM
11772015-05-07 Jason Merrill <jason@redhat.com>
1178
1179 DR 1467
1180 PR c++/51747
1181 * typeck2.c (digest_init_r): Fix single element list.
1182
b8dd6913
JM
11832015-05-05 Jason Merrill <jason@redhat.com>
1184
8243e2a9
JM
1185 * cp-gimplify.c (cp_genericize_r): Track TRY_BLOCK and
1186 MUST_NOT_THROW_EXPR, warn about a THROW_EXPR directly within a
1187 MUST_NOT_THROW_EXPR.
1188 (cp_genericize_data): Add try_block field.
1189 (cp_genericize_tree): Initialize it.
1190 * except.c (expand_end_catch_block): Set TREE_NO_WARNING on
1191 implicit rethrow.
1192
81b6a6c5
JM
1193 * constexpr.c (potential_constant_expression_1) [AT_ENCODE_EXPR]:
1194 Return false.
1195
32ad49af
JM
1196 * semantics.c (finish_call_expr): Check complain.
1197
15ed2619
JM
1198 * decl2.c (reset_type_linkage_2): Update the DECL_NAME of a
1199 maybe-in-charge constructor.
1200
f8aa3dd3
JM
1201 * decl.c (start_decl): Don't push the plain VAR_DECL for a
1202 variable template.
1203
b8dd6913
JM
1204 DR 1518
1205 DR 1630
1206 PR c++/54835
1207 PR c++/60417
1208 * call.c (convert_like_real): Check value-initialization before
1209 explicit.
1210 * typeck2.c (process_init_constructor_record): Don't set
1211 CONSTRUCTOR_IS_DIRECT_INIT.
1212 (process_init_constructor_array): Likewise.
1213 * init.c (build_vec_init): Likewise.
1214
21c0a521
DM
12152015-05-05 David Malcolm <dmalcolm@redhat.com>
1216
1217 * parser.c (cp_parser_asm_definition): Only test for
1218 error_mark_node if "outputs" was just set. Likewise for "inputs".
1219
f5322614
PC
12202015-05-04 Paolo Carlini <paolo.carlini@oracle.com>
1221 Jakub Jelinek <jakub@redhat.com>
1222
1223 PR c++/66007
1224 * typeck2.c (check_narrowing): Check by-hand that the pedwarn didn't
1225 result in an actual error.
1226
38920aec
PC
12272015-05-01 Paolo Carlini <paolo.carlini@oracle.com>
1228 Prathamesh Kulharni <prathamesh.kulkarni@linaro.org>
1229
1230 PR c++/65858
1231 * typeck2.c (check_narrowing): Set ok = true when pedwarn returns
1232 false.
1233
6f3d1a5e
DM
12342015-04-30 David Malcolm <dmalcolm@redhat.com>
1235
1236 * cp-tree.h (ARGUMENT_PACK_SELECT_ARG): Remove spurious
1237 trailing semicolon.
1238
9f7fb685
JM
12392015-04-29 Jason Merrill <jason@redhat.com>
1240
1241 PR c++/50800
1242 * tree.c (apply_identity_attributes): Fix handling of classes.
1243
b811915d
TS
12442015-04-29 Thomas Schwinge <thomas@codesourcery.com>
1245
1246 * parser.c (cp_parser_oacc_enter_exit_data): Use
1247 OMP_STANDALONE_CLAUSES.
1248
0aa359c1
PC
12492015-04-29 Paolo Carlini <paolo.carlini@oracle.com>
1250
1251 PR c++/64667
1252 * init.c (perform_member_init): Handle references for -Winit-self.
1253
2c8f0683
TS
12542015-04-29 Thomas Schwinge <thomas@codesourcery.com>
1255
1256 * pt.c (tsubst_expr) <OMP_TARGET_UPDATE>: Use
1257 OMP_TARGET_UPDATE_CLAUSES instead of OMP_CLAUSES.
1258
7bfc5ada
JM
12592015-04-28 Jason Merrill <jason@redhat.com>
1260
3f8e2835
JM
1261 PR c++/65896
1262 * constexpr.c (cxx_eval_store_expression): Don't try to actually
1263 store an empty class.
1264
5756d0f9
JM
1265 PR c++/65656
1266 * constexpr.c (cxx_eval_builtin_function_call): Fix
1267 __builtin_constant_p.
1268
b71983a5
JM
1269 PR c++/50800
1270 * tree.c (strip_typedefs): Add remove_attributes parm.
1271 (strip_typedefs_expr): Likewise.
1272 (apply_identity_attributes): New subroutine of strip_typedefs.
1273 * pt.c (canonicalize_type_argument): Let strip_typedefs handle attrs.
1274 (convert_nontype_argument, unify): Likewise.
1275 * cp-tree.h: Adjust.
1276
7bfc5ada
JM
1277 PR c++/65734
1278 * class.c (fixup_attribute_variants): Respect TYPE_USER_ALIGN.
1279
1d0275e2
TS
12802015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
1281
1282 * class.c (layout_class_type): Remove check if
1283 PCC_BITFIELD_TYPE_MATTERS is defined.
1284
46bf0b0a
JW
12852015-04-27 Jim Wilson <jim.wilson@linaro.org>
1286
1287 * Make-lang.in (c++.mostlyclean): Remove xg++, g++-cross, and cc1plus.
1288
f8815f7a
JM
12892015-04-24 Jason Merrill <jason@redhat.com>
1290
c6f044f7
JM
1291 PR c++/50800
1292 * typeck.c (structural_comptypes): Don't check TYPE_REF_CAN_ALIAS_ALL.
1293
f8815f7a
JM
1294 * constexpr.c (potential_constant_expression_1) [MINUS_EXPR]:
1295 Remove obsolete code.
1296 [NE_EXPR]: Likewise.
1297
6c283621
JM
12982015-04-23 Jason Merrill <jason@redhat.com>
1299
1300 PR c++/65646
1301 * pt.c (check_explicit_specialization): Don't
1302 SET_DECL_TEMPLATE_SPECIALIZATION for a variable with no template
1303 headers.
1304 * decl.c (grokvardecl): Revert earlier fix.
1305
2821fc6b
PC
13062015-04-20 Paolo Carlini <paolo.carlini@oracle.com>
1307
1308 PR c++/65801
1309 * typeck2.c (check_narrowing): In C++11 mode too, -Wno-narrowing
1310 suppresses the diagnostic.
1311
0cfabb37
VV
13122015-04-20 Ville Voutilainen <ville.voutilainen@gmail.com>
1313
1314 Reject trailing return type for an operator auto().
1315 * decl.c (grokdeclarator): Reject trailing return types for
1316 all conversion operators, don't handle conversion operators
1317 in the previous checks that deal with auto.
1318
06aca1d5
IV
13192015-04-20 Ilya Verbin <ilya.verbin@intel.com>
1320
1321 * parser.c (cp_parser_omp_target_update): Add missed %> to error_at ().
1322
988db853
PC
13232015-04-16 Paolo Carlini <paolo.carlini@oracle.com>
1324
1325 * class.c (resolve_address_of_overloaded_function, instantiate_type):
1326 Rename tsubst_flags_t parameter flags -> complain.
1327
9f635aba
PC
13282015-04-16 Paolo Carlini <paolo.carlini@oracle.com>
1329
1330 * call.c (build_op_delete_call, build_over_call): Check mark_used
1331 return value.
1332 * class.c (resolve_address_of_overloaded_function): Likewise.
1333 * decl.c (cxx_maybe_build_cleanup): Likewise.
1334 * pt.c (gen_elem_of_pack_expansion_instantiation, tsubst_baselink,
1335 tsubst_qualified_id, tsubst_copy, tsubst_copy_and_build): Likewise.
1336 * rtti.c (build_dynamic_cast_1): Likewise.
1337 * semantics.c (process_outer_var_ref): Likewise.
1338 * typeck.c (build_class_member_access_expr,
1339 cp_build_function_call_vec, cp_build_addr_expr_1): Likewise.
1340
bf5730d7
JM
13412015-04-15 Jason Merrill <jason@redhat.com>
1342
58cc255c
JM
1343 * constexpr.c (cxx_eval_store_expression): Ignore clobbers.
1344 (build_constexpr_constructor_member_initializers): Loop to find
1345 the BIND_EXPR.
1346 * decl.c (start_preparsed_function): Clobber the object at the
1347 beginning of a constructor.
1348
efb5e817
JM
1349 * decl.c (grokmethod): Only set DECL_COMDAT if TREE_PUBLIC is set.
1350 * method.c (implicitly_declare_fn): Likewise.
1351 * decl2.c (vague_linkage_p): Check TREE_PUBLIC first.
1352
bf5730d7
JM
1353 * decl2.c (determine_visibility): Use get_template_info.
1354
5ce3039e
JM
13552015-04-15 Jason Merrill <jason@redhat.com>
1356 Marek Polacek <polacek@redhat.com>
1357
1358 PR c++/65727
1359 * lambda.c (lambda_expr_this_capture): In unevaluated context go
1360 through the normal loop, just don't capture.
1361 (maybe_resolve_dummy): Handle null return.
1362
3a1351b9
PC
13632015-04-15 Paolo Carlini <paolo.carlini@oracle.com>
1364
1365 * call.c (enforce_access): Emit error + inform.
1366
0567dcd2
MP
13672015-04-15 Marek Polacek <polacek@redhat.com>
1368
1369 * constexpr.c (use_new_call): Remove #define.
1370 (lookup_parameter_binding): Remove function.
1371 (cxx_bind_parameters_in_call): Remove unused code.
1372 (cxx_eval_call_expression): Likewise.
1373 (cxx_eval_constant_expression): Likewise.
1374
182d115c
MM
13752015-04-14 Mikhail Maltsev <maltsevm@gmail.com>
1376
1377 * tree.c (replace_placeholders_t): Remove unused type.
1378 (replace_placeholders): Remove unused pset.
1379
0f19e7ad
JM
13802015-04-14 Jason Merrill <jason@redhat.com>
1381
57c5e96e
JM
1382 * pt.c (lookup_template_class_1): Use coerce_innermost_template_parms.
1383
fb899e32
JM
1384 PR c++/65695
1385 * cvt.c (cp_fold_convert): Avoid wrapping PTRMEM_CST in NOP_EXPR.
1386
0f19e7ad
JM
1387 PR c++/65721
1388 * name-lookup.c (do_class_using_decl): Complain about specifying
1389 the current class even if there are dependent bases.
1390
688e531e
DK
13912015-04-14 David Krauss <david_work@me.com>
1392
1393 PR c++/59766
1394 * decl.c (grokdeclarator): Do not flag friends with deduced return.
1395
2fd16d0f
MV
13962015-04-14 Momchil Velikov <momchil.velikov@gmail.com>
1397 Jason Merrill <jason@redhat.com>
1398
1399 PR c++/60994
1400 * parser.c (cp_parser_class_name): Add enum_ok parameter.
1401 (cp_parser_qualifying_entity): Use it instead of cp_parser_type_name.
1402 (cp_parser_diagnose_invalid_type_name): Don't assume a template is
1403 a class template.
1404
6338536c
JJ
14052015-04-12 Jakub Jelinek <jakub@redhat.com>
1406
1407 PR c++/65736
1408 * constexpr.c (cxx_eval_pointer_plus_expression): Don't fold for VLAs,
1409 don't fold if op01 isn't divisible by TYPE_SIZE_UNIT. Convert
1410 the expression to the original type at the end.
1411
00da5e28
JJ
14122015-04-09 Jakub Jelinek <jakub@redhat.com>
1413
0212e31e
JJ
1414 PR c++/65690
1415 * tree.c (cp_build_qualified_type_real): Copy TYPE_ALIGN and
1416 TYPE_USER_ALIGN.
1417
00da5e28
JJ
1418 PR c++/65690
1419 * tree.c (build_cplus_array_type): Layout type before variants are
1420 set, but copy over TYPE_SIZE and TYPE_SIZE_UNIT from the main
1421 variant.
1422
a3d94329
PC
14232015-04-03 Paolo Carlini <paolo.carlini@oracle.com>
1424
1425 PR c++/64085
1426 * lambda.c (add_capture): Use dependent_type_p for capture by
1427 reference too.
1428
894bec68
MP
14292015-04-02 Marek Polacek <polacek@redhat.com>
1430
1431 PR c++/65642
1432 * constexpr.c (cxx_eval_pointer_plus_expression): Call
1433 cxx_eval_constant_expression on the first operand.
1434
37978db4
JM
14352015-04-01 Jason Merrill <jason@redhat.com>
1436
1437 PR c++/65625
1438 * decl.c (make_typename_type): Handle seeing a variable template.
1439
c23a9ec5
PC
14402015-04-01 Paolo Carlini <paolo.carlini@oracle.com>
1441
1442 PR c++/56100
1443 * pt.c (instantiating_current_function_p): New.
1444 * name-lookup.c (pushdecl_maybe_friend_1): Use it.
1445 * cp-tree.h (instantiating_current_function_p): Declare.
1446
f87cb0b7
JM
14472015-04-01 Jason Merrill <jason@redhat.com>
1448
1449 PR c++/65646
1450 * decl.c (grokvardecl): Don't call check_explicit_specialization
1451 for non-template members of a class template.
1452
14e51ef2
MP
14532015-04-01 Marek Polacek <polacek@redhat.com>
1454
1455 PR c++/65554
1456 * class.c (finish_struct): Require that the second field of a
1457 user-defined initializer_list be of size type.
1458
397ad54d
MP
14592015-03-31 Marek Polacek <polacek@redhat.com>
1460
1461 PR c++/65390
1462 * tree.c (build_cplus_array_type): Use dependent_type_p rather than
1463 checking for constness.
1464
ef4bac78
MP
14652015-03-30 Marek Polacek <polacek@redhat.com>
1466
1467 PR c++/65398
1468 * constexpr.c (cxx_fold_indirect_ref): Don't perform the
1469 *(&A[i] p+ j) => A[i + j] transformation here.
1470 (cxx_eval_pointer_plus_expression): New function.
1471 (cxx_eval_constant_expression): Use it here.
1472
62021f64
TB
14732015-03-27 Tobias Burnus <burnus@net-b.de>
1474
1475 PR c/65586
1476 * parser.c (cp_parser_omp_for, cp_parser_omp_parallel,
1477 cp_parser_omp_distribute, cp_parser_omp_teams, cp_parser_omp_target,
1478 cp_parser_omp_declare): Don't show error for skipped omp pragmas with
1479 -fopenmp-simd.
1480
5964a3a6
MP
14812015-03-27 Marek Polacek <polacek@redhat.com>
1482
1483 PR c++/65556
1484 * semantics.c (finish_switch_cond): If the unlowered type is not an
1485 enum, use the type of the condition.
1486
0b7dccc6
JM
14872015-03-27 Jason Merrill <jason@redhat.com>
1488
1489 PR c++/65509
1490 * decl.c (make_rtl_for_nonlocal_decl): Don't defer static
1491 constants.
1492
08227658
MM
14932015-03-26 Mikhail Maltsev <maltsevm@gmail.com>
1494
1495 PR c++/65154
1496 * init.c (build_vec_init): Fix initializing aggregates
1497 with empty init list.
1498
41b38772
JM
14992015-03-26 Jason Merrill <jason@redhat.com>
1500
1501 PR c++/65525
1502 * constexpr.c (potential_constant_expression_1): Handle MEM_REF.
1503
1cc57b59
MP
15042015-03-25 Marek Polacek <polacek@redhat.com>
1505
1506 PR c++/65558
1507 * name-lookup.c (handle_namespace_attrs): Ignore abi_tag attribute
1508 on an anonymous namespace.
1509
2a924bb4
MP
15102015-03-25 Marek Polacek <polacek@redhat.com>
1511
1512 PR c++/61670
1513 * class.c (remove_zero_width_bit_fields): Check for null DECL_SIZE.
1514
4b7c558d
JM
15152015-03-24 Jason Merrill <jason@redhat.com>
1516
a9f0423f
JM
1517 PR c++/65046
1518 * cp-tree.h (NAMESPACE_IS_INLINE): Remove.
1519 * parser.c (cp_parser_namespace_definition): Don't set it.
1520 * name-lookup.c (handle_namespace_attrs): Check
1521 DECL_NAMESPACE_ASSOCIATIONS instead.
1522
4b7c558d
JM
1523 PR c++/65498
1524 * pt.c (get_mostly_instantiated_function_type): Just return the
1525 type of the partially instantiated template in DECL_TI_TEMPLATE.
1526
f594abf4
MP
15272015-03-20 Marek Polacek <polacek@redhat.com>
1528
1529 PR c++/65398
1530 * constexpr.c (cxx_fold_indirect_ref): Transform *(&A[i] p+ j) into
1531 A[i + j].
1532
b75cebc4
MP
15332015-03-20 Marek Polacek <polacek@redhat.com>
1534
1535 PR c++/65072
1536 * typeck.c (lookup_anon_field): Make sure we're dealing with the main
1537 variant.
1538
7cb73573
JM
15392015-03-19 Jason Merrill <jason@redhat.com>
1540
1541 PR c++/65046
1542 Automatically propagate ABI tags to variables and functions
1543 from their (return) type.
1544 * class.c (check_tag): Handle variables and functions.
1545 (mark_or_check_attr_tags): Split out from find_abi_tags_r.
1546 (mark_or_check_tags): Likewise.
1547 (mark_abi_tags): Use it. Rename from mark_type_abi_tags.
1548 (check_abi_tags): Add single argument overload for decls.
1549 Handle inheriting tags for decls.
1550 * mangle.c (write_mangled_name): Call it.
1551 (mangle_return_type_p): Split out from write_encoding.
1552 (unmangled_name_p): Split out from write_mangled_name.
1553 (write_mangled_name): Ignore abi_tag on namespace.
1554 * cp-tree.h (NAMESPACE_IS_INLINE): Replace NAMESPACE_ABI_TAG.
1555 * parser.c (cp_parser_namespace_definition): Set it.
1556 * name-lookup.c (handle_namespace_attrs): Use arguments. Warn
1557 about abi_tag attribute on non-inline namespace.
1558 * tree.c (check_abi_tag_args): Split out from handle_abi_tag_attribute.
1559 (handle_abi_tag_attribute): Allow tags on variables.
1560
9b65e171
JJ
15612015-03-19 Jakub Jelinek <jakub@redhat.com>
1562
1563 * decl2.c (cplus_decl_attributes): Also add "omp declare target"
1564 attribute for DECL_EXTERNAL VAR_DECLs.
1565
41cee85a
PC
15662015-03-18 Paolo Carlini <paolo.carlini@oracle.com>
1567
1568 PR c++/65340
1569 * call.c (build_over_call): Pass the tsubst_flags_t argument to
1570 mark_used.
1571 * decl2.c (mark_used): Inline the require_deduced_type call and
1572 guard the error call.
1573
3d17be83
JM
15742015-03-16 Jason Merrill <jason@redhat.com>
1575
1576 PR c++/65061
1577 * parser.c (cp_parser_template_name): Call strip_using_decl.
1578
ec638c55
MP
15792015-03-16 Marek Polacek <polacek@redhat.com>
1580
1581 DR 1688
1582 PR c++/65327
1583 * decl.c (grokdeclarator): Allow volatile and constexpr together.
1584
b7e7f412
PC
15852015-03-12 Paolo Carlini <paolo.carlini@oracle.com>
1586
1587 PR c++/65323
1588 * decl.c (check_default_argument): Don't call
1589 maybe_warn_zero_as_null_pointer_constant.
1590
25de0a29
AH
15912015-03-11 Aldy Hernandez <aldyh@redhat.com>
1592
1593 * cp-gimplify.c (simple_empty_class_p): New.
1594 * cp-gimplify.c (cp_gimplify_expr): Handle RETURN_EXPR. Abstract
1595 the code for empty class copies into simple_empty_class_p, and
1596 adapt it to handle COMPOUND_EXPRs.
1597
58cbf8d4
PC
15982015-03-10 Paolo Carlini <paolo.carlini@oracle.com>
1599
1600 PR c++/65370
1601 * decl.c (duplicate_decls): Call check_redeclaration_no_default_args
1602 only if the location of newdecl doesn't match the location of olddecl.
1603
704c7904
JJ
16042015-03-10 Jakub Jelinek <jakub@redhat.com>
1605
1606 PR c++/65127
1607 * parser.c (parsing_nsdmi): Don't return true if current_class_ptr
1608 is not a PARM_DECL.
1609
a4d66d7d
JM
16102015-03-10 Jason Merrill <jason@redhat.com>
1611
1612 PR c++/65333
1613 DR 1558
1614 * pt.c (dependent_type_p_r): Check both class and alias template args.
1615
7ccb1a11
JJ
16162015-03-10 Jakub Jelinek <jakub@redhat.com>
1617
1618 PR c/65120
1619 * parser.c (cp_parser_binary_expression): Check for tcc_comparison
1620 before preparing arguments to warn_logical_not_parentheses.
1621 Use maybe_constant_value on rhs.
1622
a2f259ef
JM
16232015-03-09 Jason Merrill <jason@redhat.com>
1624
1625 PR c++/65339
1626 * call.c: Don't call maybe_resolve_dummy when calling a constructor.
1627
01177669
JJ
16282015-03-09 Jakub Jelinek <jakub@redhat.com>
1629
1630 PR c/65120
1631 * parser.c (cp_parser_binary_expression): Don't warn for
1632 !!x == y or !b == y where b is bool.
1633
a78cbe29
AH
16342015-03-06 Aldy Hernandez <aldyh@redhat.com>
1635
1636 * ptree.c (cxx_print_lambda_node): New.
1637 (cxx_print_xnode): Handle LAMBDA_EXPR.
1638
bf66b9b4
AH
16392015-03-03 Aldy Hernandez <aldyh@redhat.com>
1640
1641 PR c++/65295
1642 * constexpr.c (cxx_eval_constant_expression): Remove assert in
1643 RESULT_DECL handling.
1644
75e0295b
MP
16452015-02-26 Marek Polacek <polacek@redhat.com>
1646
1647 PR c++/65202
1648 * constexpr.c (cxx_eval_constant_expression): Don't evaluate
1649 a RETURN_EXPR if its operand is null.
1650
9b276dad
JM
16512015-02-25 Jason Merrill <jason@redhat.com>
1652
2b8f9c8f
JM
1653 PR c++/65209
1654 * decl2.c (constrain_visibility) [VISIBILITY_ANON]: Clear
1655 DECL_COMDAT.
1656 (constrain_visibility_for_template): Handle reference arguments.
1657
9b276dad
JM
1658 PR debug/58315
1659 * decl.c (start_preparsed_function): Use create_artificial_label
1660 for cdtor_label.
1661
4414e22e
PC
16622015-02-17 Paolo Carlini <paolo.carlini@oracle.com>
1663 Jakub Jelinek <jakub@redhat.com>
1664
1665 PR c++/65075
1666 * constexpr.c (check_constexpr_bind_expr_vars): Allow
1667 implicit typedefs for lambda types.
1668
6e4f01ff
PC
16692015-02-13 Paolo Carlini <paolo.carlini@oracle.com>
1670
1671 PR c++/60894
1672 * decl.c (lookup_and_check_tag): Use strip_using_decl.
1673
ef796bef
JM
16742015-02-13 Jason Merrill <jason@redhat.com>
1675
1676 PR c++/65054
1677 * pt.c (template_args_equal): Look through conversions here.
1678 * tree.c (cp_tree_equal): Not here.
1679
e84abfa4
PC
16802015-02-13 Paolo Carlini <paolo.carlini@oracle.com>
1681
1682 PR c++/60211
1683 * parser.c (cp_parser_pragma): Diagnose PRAGMA_IVDEP at
1684 pragma_external context.
1685
f9b600ba
JM
16862015-02-13 Jason Merrill <jason@redhat.com>
1687
1688 PR c++/65051
1689 * call.c (reference_binding): Don't look for bad conversion
1690 if TO is incomplete.
1691
81adbcea
PC
16922015-02-13 Paolo Carlini <paolo.carlini@oracle.com>
1693
1694 PR c++/64970
1695 * decl.c (make_typename_type): Pass tsubst_flags_t argument
1696 to lookup_template_class.
1697
730f474b
JJ
16982015-02-13 Jakub Jelinek <jakub@redhat.com>
1699
1700 PR ipa/65034
1701 * decl.c (start_preparsed_function): Use void_type_node instead
1702 of NULL_TREE as LABEL_DECL type.
1703
f522930c
JM
17042015-02-12 Jason Merrill <jason@redhat.com>
1705
3b95b65c
JM
1706 PR c++/64898
1707 * mangle.c (write_mangled_name): Fix test for variable template
1708 instantiation.
1709
f522930c
JM
1710 * decl.c (begin_destructor_body): Condition clobber on
1711 -flifetime-dse.
1712
bc81eb3f
AA
17132015-02-12 Andrea Azzarone <azzaronea@gmail.com>
1714
1715 PR c++/64959
1716 * parser.c (lookup_literal_operator): Return all candidates.
1717 (cp_parser_userdef_char_literal): Simplify error handling.
1718 (cp_parser_userdef_numeric_literal): Pass tf_warning_or_error.
1719 (cp_parser_userdef_string_literal): Pass tf_warning_or_error.
1720 Also give higher priority to standard string UDL operator.
1721
40595b8e
JJ
17222015-02-12 Jakub Jelinek <jakub@redhat.com>
1723
12d0d358
JJ
1724 PR debug/55541
1725 * cp-tree.h (BLOCK_OUTER_CURLY_BRACE_P): Define.
1726 * decl.c (poplevel): If functionbody, try not to create an extra
1727 BLOCK for function body and use subblocks as that, if it is non-NULL
1728 and doesn't have siblings. Set BLOCK_OUTER_CURLY_BRACE_P flag.
1729 (outer_curly_brace_block): Use BLOCK_OUTER_CURLY_BRACE_P flag.
1730
40595b8e
JJ
1731 PR sanitizer/64984
1732 * except.c (check_noexcept_r): Return NULL for internal
1733 calls.
1734
0ec052fe
JM
17352015-02-10 Jason Merrill <jason@redhat.com>
1736
1737 PR c++/64994
1738 * constexpr.c (cxx_eval_call_expression): Walk the clone list.
1739
d90cae08
JH
17402015-02-10 Jan Hubicka <hubicka@ucw.cz>
1741
1742 PR ipa/64982
1743 * method.c (use_thunk): Do not check for stdarg thunks.
1744
a02f26f6
JM
17452015-02-06 Jason Merrill <jason@redhat.com>
1746
1747 PR c++/64899
1748 * init.c (build_vec_init): Handle default-initialized array with
1749 constexpr default constructor.
1750
4886ec8e
JJ
17512015-02-04 Jakub Jelinek <jakub@redhat.com>
1752
1753 PR c/64824
1754 PR c/64868
1755 * parser.c (cp_parser_omp_atomic): Handle RDIV_EXPR.
1756
457d0ace
PC
17572015-02-03 Paolo Carlini <paolo.carlini@oracle.com>
1758
1759 PR c++/64877
1760 * typeck.c (cp_build_binary_op): Avoid spurious -Waddress warnings
1761 for generated expressions.
1762
879887f1
VV
17632015-02-02 Ville Voutilainen <ville.voutilainen@gmail.com>
1764
1765 PR c++/64901
1766 * decl.c (duplicate_decls): Also duplicate DECL_FINAL_P and
1767 DECL_OVERRIDE_P.
1768
4c5cf0b2
JM
17692015-02-02 Jason Merrill <jason@redhat.com>
1770
1771 * tree.c (handle_abi_tag_attribute): Diagnose invalid arguments.
1772
40fecdd6
JM
17732015-01-30 Joseph Myers <joseph@codesourcery.com>
1774
1775 * class.c, except.c, parser.c, pt.c: All callers of fatal_error
1776 changed to pass input_location as first argument.
1777
a7c3e87e
JJ
17782015-01-29 Jakub Jelinek <jakub@redhat.com>
1779
1780 PR c++/64717
1781 * cp-ubsan.c (cp_ubsan_instrument_vptr): Don't wrap vptr
1782 into SAVE_EXPR.
1783
e1ef8aa9
JM
17842015-01-29 Jason Merrill <jason@redhat.com>
1785
3dbb8427
JM
1786 PR c++/49508
1787 * semantics.c (finish_return_stmt): Suppress -Wreturn-type on
1788 erroneous return statement.
1789
e1ef8aa9
JM
1790 PR c++/64521
1791 * repo.c (repo_emit_p): It's OK for a clone to be extern at this
1792 point.
1793
f7f049fa
CT
17942015-01-27 Caroline Tice <cmtice@google.com>
1795
1796 Committing VTV Cywin/Ming patch for Patrick Wollgast
1797 * vtable-class-hierarchy.cc (vtv_generate_init_routine): Add
1798 check for not TARGET_PECOFF at the VTV_PREINIT_PRIORITY checks.
1799
94e54b8d
JM
18002015-01-27 Jason Merrill <jason@redhat.com>
1801
2cc7f90b
JM
1802 PR c++/58597
1803 * lambda.c (maybe_add_lambda_conv_op): Check cfun rather than
1804 current_function_decl.
1805
94e54b8d
JM
1806 PR c++/63889
1807 * pt.c (finish_template_variable): Move from semantics.c.
1808 Handle multiple template arg levels. Handle coercion here.
1809 (lookup_template_variable): Not here.
1810
7c83622c
JM
18112015-01-23 Jason Merrill <jason@redhat.com>
1812
fa4e8db2
JM
1813 PR c++/64314
1814 PR c++/57510
1815 * typeck2.c (split_nonconstant_init_1): Remove a sub-CONSTRUCTOR
1816 that has been completely split out.
1817
c6e7c499 1818 PR c++/64701
8a7261b2
JM
1819 * constexpr.c (cxx_eval_constant_expression): Don't crash on C++
1820 statement codes.
c6e7c499 1821
7c83622c
JM
1822 PR c++/64727
1823 * constexpr.c (cxx_eval_constant_expression): Allow for lvalue use
1824 of CONST_DECL.
1825
f1eac182
JM
18262015-01-21 Jason Merrill <jason@redhat.com>
1827
b85a3242
JM
1828 PR c++/64603
1829 * constexpr.c (cxx_eval_constant_expression): Only shortcut
1830 constant CONSTRUCTORs.
1831
f1eac182
JM
1832 PR c++/64647
1833 * constexpr.c (ensure_literal_type_for_constexpr_object): Don't
1834 give a hard error in a template instantiation.
1835
cbf5d0e7
RB
18362015-01-21 Richard Biener <rguenther@suse.de>
1837
1838 PR middle-end/64313
1839 * decl.c (duplicate_decls): Call set_builtin_decl_declared_p
1840 for builtins the user declared correctly.
1841
de37b21e
PC
18422015-01-16 Paolo Carlini <paolo.carlini@oracle.com>
1843
1844 PR c++/58614
1845 * pt.c (unify): When BRACE_ENCLOSED_INITIALIZER_P (arg), handle
1846 TREE_TYPE (elt) == error_mark_node.
1847
67933728
JH
18482015-01-15 Jan Hubicka <hubicka@ucw.cz>
1849
1850 PR tree-optimization/62053
1851 * tree.c (build_cplus_array_type): Layout type after variants are set.
1852
35228ac7
JJ
18532015-01-15 Jakub Jelinek <jakub@redhat.com>
1854
1855 * cp-gimplify.c (cp_genericize_r): Call
1856 cp_ubsan_maybe_instrument_member_call for member calls.
1857 (cp_ubsan_check_member_access_r): New function.
1858 (cp_genericize_tree): Call cp_ubsan_instrument_member_accesses.
1859 * cp-tree.h (cp_ubsan_maybe_instrument_member_call,
1860 cp_ubsan_instrument_member_accesses,
1861 cp_ubsan_maybe_instrument_downcast,
1862 cp_ubsan_maybe_instrument_cast_to_vbase): New prototypes.
1863 * cp-ubsan.c: New file.
1864 * Make-lang.in (CXX_AND_OBJCXX_OBJS): Add cp/cp-ubsan.o.
1865 * constexpr.c (cxx_eval_call_expression): Return void_node
1866 for IFN_UBSAN_VPTR.
1867 (potential_constant_expression_1): Return true for
1868 UBSAN_NULL, UBSAN_BOUNDS and UBSAN_VPTR internal calls.
1869 * typeck.c (build_class_member_access_expr): Provide locus
1870 for COMPONENT_REFs.
1871 (build_static_cast_1): Instrument downcasts.
1872 * class.c (build_base_path): For -fsanitize=vptr and !fixed_type_p
1873 add ubsan instrumentation for virtual_access.
1874 * call.c: Include internal-fn.h.
1875 (set_flags_from_callee): Handle internal calls.
1876
199b7a35
MV
18772015-01-15 Momchil Velikov <momchil.velikov@gmail.com>
1878
1879 PR c++/59366
1880 * name-lookup.c (pushdecl_maybe_friend_1): Hide friend functions
1881 and function templates, declared only in the class.
1882 * decl.c (duplicate_decls): Reveal hidden friend functions or
1883 function templates, if they are redeclared outside the class.
1884
c3c29ba5
JM
18852015-01-15 Jason Merrill <jason@redhat.com>
1886
134efa82
JM
1887 PR c++/64356
1888 * constexpr.c (cxx_eval_binary_expression): Fix pasto.
1889
c3c29ba5
JM
1890 PR c++/63283
1891 * constexpr.c (potential_constant_expression_1): Handle reference
1892 args in templates.
1893
41dbbb37
TS
18942015-01-15 Thomas Schwinge <thomas@codesourcery.com>
1895 James Norris <jnorris@codesourcery.com>
1896 Cesar Philippidis <cesar@codesourcery.com>
1897 Ilmir Usmanov <i.usmanov@samsung.com>
1898 Jakub Jelinek <jakub@redhat.com>
1899
1900 * parser.c: Include "gomp-constants.h".
1901 (cp_parser_omp_clause_map): Use enum gomp_map_kind instead of enum
1902 omp_clause_map_kind. Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.
1903 Use OMP_CLAUSE_SET_MAP_KIND.
1904 (cp_parser_omp_construct, cp_parser_pragma): Handle
1905 PRAGMA_OACC_CACHE, PRAGMA_OACC_DATA, PRAGMA_OACC_ENTER_DATA,
1906 PRAGMA_OACC_EXIT_DATA, PRAGMA_OACC_KERNELS, PRAGMA_OACC_PARALLEL,
1907 PRAGMA_OACC_LOOP, PRAGMA_OACC_UPDATE, PRAGMA_OACC_WAIT.
1908 (cp_parser_omp_clause_name): Handle "async", "copy", "copyout",
1909 "create", "delete", "deviceptr", "host", "num_gangs",
1910 "num_workers", "present", "present_or_copy", "pcopy",
1911 "present_or_copyin", "pcopyin", "present_or_copyout", "pcopyout",
1912 "present_or_create", "pcreate", "vector_length", "wait".
1913 (OACC_DATA_CLAUSE_MASK, OACC_ENTER_DATA_CLAUSE_MASK)
1914 (OACC_EXIT_DATA_CLAUSE_MASK, OACC_KERNELS_CLAUSE_MASK)
1915 (OACC_LOOP_CLAUSE_MASK, OACC_PARALLEL_CLAUSE_MASK)
1916 (OACC_UPDATE_CLAUSE_MASK, OACC_WAIT_CLAUSE_MASK): New macros.
1917 (cp_parser_omp_var_list_no_open): Handle OMP_CLAUSE__CACHE_.
1918 (cp_parser_oacc_data_clause, cp_parser_oacc_data_clause_deviceptr)
1919 (cp_parser_oacc_clause_vector_length, cp_parser_oacc_wait_list)
1920 (cp_parser_oacc_clause_wait, cp_parser_omp_clause_num_gangs)
1921 (cp_parser_omp_clause_num_workers, cp_parser_oacc_clause_async)
1922 (cp_parser_oacc_all_clauses, cp_parser_oacc_cache)
1923 (cp_parser_oacc_data, cp_parser_oacc_enter_exit_data)
1924 (cp_parser_oacc_kernels, cp_parser_oacc_loop)
1925 (cp_parser_oacc_parallel, cp_parser_oacc_update)
1926 (cp_parser_oacc_wait): New functions.
1927 * cp-tree.h (finish_oacc_data, finish_oacc_kernels)
1928 (finish_oacc_parallel): New prototypes.
1929 * semantics.c: Include "gomp-constants.h".
1930 (handle_omp_array_sections): Handle GOMP_MAP_FORCE_DEVICEPTR. Use
1931 GOMP_MAP_* instead of OMP_CLAUSE_MAP_*. Use
1932 OMP_CLAUSE_SET_MAP_KIND.
1933 (finish_omp_clauses): Handle OMP_CLAUSE_ASYNC,
1934 OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_WAIT, OMP_CLAUSE__CACHE_.
1935 Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.
1936 (finish_oacc_data, finish_oacc_kernels, finish_oacc_parallel): New
1937 functions.
1938
36b218ee
PC
19392015-01-14 Paolo Carlini <paolo.carlini@oracle.com>
1940
1941 PR c++/58671
1942 * decl2.c (var_defined_without_dynamic_init): Handle gracefully
1943 self-initialization.
1944
8f413ae2
JM
19452015-01-13 Jason Merrill <jason@redhat.com>
1946
caee690e
JM
1947 PR c++/64356
1948 PR libstdc++/58777
1949 * constexpr.c (cxx_eval_binary_expression): Don't VERIFY_CONSTANT
1950 pointer expressions.
1951 (cxx_eval_increment_expression): Likewise.
1952
7c368fb2
JM
1953 PR c++/64514
1954 * pt.c (coerce_template_parameter_pack): Return NULL for a
1955 zero-length fixed parameter pack with a pack expansion arg.
1956
8f413ae2
JM
1957 PR c++/64520
1958 * pt.c (unify): Don't try to deduce to std::initializer_list<T...>.
1959
49c8bc0c
JM
19602015-01-12 Jason Merrill <jason@redhat.com>
1961
1962 PR c++/64547
1963 * constexpr.c (cxx_eval_call_expression): A call to a void
1964 function doesn't need to return a value.
1965
adfac8df
JJ
19662015-01-09 Michael Collison <michael.collison@linaro.org>
1967
1968 * call.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
1969 input.h, alias.h, symtab.h, options.h, fold-const.h,
1970 wide-int.h, and inchash.h due to flattening of tree.h.
1971 * class.c: Ditto.
1972 * constexpr.c: Ditto.
1973 * cp-array-notation.c: Ditto.
1974 * cp-gimplify.c: Ditto.
1975 * cp-lang.c: Ditto.
1976 * cp-objcp-common.c: Ditto.
1977 * cvt.c: Ditto.
1978 * decl2.c: Ditto.
1979 * decl.c: Ditto.
1980 * dump.c: Ditto.
1981 * error.c: Ditto.
1982 * except.c: Ditto.
1983 * expr.c: Ditto.
1984 * friend.c: Ditto.
1985 * init.c: Ditto.
1986 * lambda.c: Ditto.
1987 * lex.c: Ditto.
1988 * mangle.c: Ditto.
1989 * name-lookup.c: Ditto.
1990 * optimize.c: Ditto.
1991 * parser.c: Ditto.
1992 * pt.c: Ditto.
1993 * ptree.c: Ditto.
1994 * repo.c: Ditto.
1995 * rtti.c: Ditto.
1996 * search.c: Ditto.
1997 * semantics.c: Ditto.
1998 * tree.c: Ditto.
1999 * typeck2.c: Ditto.
2000 * typeck.c: Ditto.
2001
f5481fc4
JM
20022015-01-08 Jason Merrill <jason@redhat.com>
2003
2004 * cp-gimplify.c (cp_genericize): Use do_ubsan_in_current_function.
2005 * decl.c (compute_array_index_type): Likewise.
2006 * init.c (build_vec_init): Likewise.
2007 * typeck.c (cp_build_binary_op): Likewise.
2008
46621807
JM
20092015-01-08 Jason Merrill <jason@redhat.com>
2010
2011 * init.c (build_vec_init): Call ubsan_instrument_bounds to check
2012 whether an initializer-list is too big for a VLA.
2013 (throw_bad_array_length): Remove.
2014 * cp-tree.h: Remove prototype.
2015
247ecdf3
PC
20162015-01-08 Paolo Carlini <paolo.carlini@oracle.com>
2017
2018 PR c++/60753
2019 * decl.c (grokfndecl): Add bool parameter.
2020 (grokdeclarator): Adjust calls.
2021 (start_decl): Don't set DECL_DELETED_FN here.
2022
47867b4f
JM
20232015-01-06 Jason Merrill <jason@redhat.com>
2024
efcdb22f
JM
2025 * parser.c (cp_parser_nested_name_specifier_opt): Diagnose invalid
2026 template-ids.
2027
c6a38536
JM
2028 PR c++/64455
2029 * pt.c (type_dependent_expression_p): Handle variable templates.
2030 * constexpr.c (potential_constant_expression_1): Use it.
2031
b433d944
JM
2032 PR c++/64487
2033 * semantics.c (finish_offsetof): Handle templates here.
2034 * parser.c (cp_parser_builtin_offsetof): Not here.
2035
47867b4f
JM
2036 PR c++/64496
2037 * semantics.c (process_outer_var_ref): Diagnose lambda in local
2038 class NSDMI.
2039
864822bd
VV
20402015-01-06 Ville Voutilainen <ville.voutilainen@gmail.com>
2041
2042 PR c++/64489
2043 * class.c (check_field_decls): Make copy assignment operators
2044 complex only in c++98 mode.
2045
2f42e5de
TS
20462015-01-05 Trevor Saunders <tsaunders@mozilla.com>
2047
2048 PR c++/31397
2049 * class.c (check_for_override): Warn when a virtual function is an
2050 override not marked override.
2051
86cfdb4e
TS
20522015-01-05 Trevor Saunders <tsaunders@mozilla.com>
2053
2054 * class.c (warn_hidden): Use auto_vec<tree> instead of tree_list to
2055 hold base_fndecls.
2056 (get_basefndecls): Adjust.
2057
5624e564
JJ
20582015-01-05 Jakub Jelinek <jakub@redhat.com>
2059
2060 Update copyright years.
2061
5bd012f8
MP
20622015-01-05 Marek Polacek <polacek@redhat.com>
2063
2064 PR c/64423
2065 * typeck.c (cp_build_array_ref): Pass loc down to
2066 warn_array_subscript_with_type_char.
2067
ad41bd84 2068\f
5624e564 2069Copyright (C) 2015 Free Software Foundation, Inc.
ad41bd84
JM
2070
2071Copying and distribution of this file, with or without modification,
2072are permitted in any medium without royalty provided the copyright
2073notice and this notice are preserved.
This page took 2.006069 seconds and 5 git commands to generate.