re PR c/6940 (taking sizeof array parameter should trigger a warning)
[gcc.git] / gcc / cp / ChangeLog
1 2014-07-06 Marek Polacek <polacek@redhat.com>
2
3 PR c/6940
4 * cp-tree.h (DECL_ARRAY_PARAMETER_P): Define.
5 * decl.c (grokdeclarator): Set DECL_ARRAY_PARAMETER_P.
6 * typeck.c (cxx_sizeof_expr): Warn when using sizeof on an array
7 function parameter.
8
9 2014-07-02 Paolo Carlini <paolo.carlini@oracle.com>
10
11 * pt.c (convert_template_argument): Use inform instead of error in
12 three places.
13
14 2014-06-30 Edward Smith-Rowland <3dw4rd@verizon.net>
15
16 PR c++/58781
17 PR c++/60249
18 PR c++/59867
19 * parser.c (cp_parser_userdef_string_literal()): Take a tree
20 not a cp_token*. (cp_parser_string_literal(): Don't hack
21 the token stream!
22
23 2014-06-30 Jason Merrill <jason@redhat.com>
24
25 PR c++/61659
26 PR lto/53808
27 * decl2.c (maybe_emit_vtables): Mark all vtable entries if
28 devirtualizing.
29 * init.c (build_vtbl_address): Don't mark destructor.
30 * class.c (finish_struct_1): Add all classes to keyed_classes
31 if devirtualizing.
32
33 PR c++/61647
34 * pt.c (type_dependent_expression_p): Check BASELINK_OPTYPE.
35
36 PR c++/61566
37 * mangle.c (decl_mangling_context): Look through a TEMPLATE_DECL.
38
39 * decl.c (build_ptrmemfunc_type): Don't give a PMF RECORD_TYPE
40 TYPE_BINFO or TYPE_LANG_SPECIFIC.
41 * cp-tree.h (TYPE_PTRMEMFUNC_FLAG): Use TYPE_LANG_FLAG_2.
42 (TYPE_PTRMEMFUNC_P): Don't expect TYPE_LANG_SPECIFIC.
43 * typeck.c (build_ptrmemfunc_access_expr): Don't use lookup_member.
44 * pt.c (unify): Also check whether the argument is a PMF.
45
46 2014-06-30 Paolo Carlini <paolo.carlini@oracle.com>
47
48 PR c++/54891
49 * parser.c (cp_parser_tokens_start_cast_expression): In C++11
50 a '[' can also start a primary-expression.
51 (cp_parser_cast_expression): Parse a cast-expression only tentatively
52 when cp_parser_tokens_start_cast_expression returns -1.
53
54 2014-06-30 Jason Merrill <jason@redhat.com>
55
56 PR c++/61539
57 * pt.c (unify_one_argument): Type/expression mismatch just causes
58 deduction failure.
59
60 * semantics.c (simplify_aggr_init_expr): Remove remnants of
61 2014-04-11 change.
62
63 2014-06-30 Marek Polacek <polacek@redhat.com>
64
65 * cp-gimplify.c (cp_genericize): Don't instrument returns if the
66 function has no_sanitize_undefined attribute.
67 * decl.c (compute_array_index_type): Don't instrument VLAs if the
68 function has no_sanitize_undefined attribute.
69
70 2014-06-30 Igor Zamyatin <igor.zamyatin@intel.com>
71
72 PR middle-end/57541
73 * cp-array-notation.c (expand_sec_reduce_builtin):
74 Check that bultin argument is correct.
75 * call.c (build_cxx_call): Check for 0 arguments in builtin call.
76
77 2014-06-28 Jonathan Wakely <jwakely@redhat.com>
78
79 DR 1579
80 PR c++/58051
81 * typeck.c (check_return_expr): Lookup as an rvalue even when the
82 types aren't the same.
83
84 2014-06-27 Jason Merrill <jason@redhat.com>
85
86 PR c++/61433
87 * error.c (dump_template_bindings): Don't tsubst in a clone.
88
89 2014-06-27 Paolo Carlini <paolo.carlini@oracle.com>
90
91 PR c++/61614
92 * semantics.c (finish_compound_literal): Revert r204228.
93
94 2014-06-27 Paolo Carlini <paolo.carlini@oracle.com>
95
96 * parser.c (cp_parser_compound_literal_p): New.
97 (cp_parser_postfix_expression, cp_parser_sizeof_operand): Use it.
98
99 2014-06-26 Jason Merrill <jason@redhat.com>
100
101 * parser.c (cp_parser_for_init_statement): Change range-for error
102 to pedwarn.
103
104 N3994 Ranged-based for-loops: The Next Generation
105 * parser.c (cp_lexer_nth_token_is): New.
106 (cp_parser_for_init_statement): Allow "for (id : init)".
107
108 2014-06-26 Teresa Johnson <tejohnson@google.com>
109
110 * class.c (dump_class_hierarchy): Use saved dump files.
111 (dump_vtable): Ditto.
112 (dump_vtt): Ditto.
113
114 2014-06-26 Adam Butcher <adam@jessamine.co.uk>
115
116 PR c++/61537
117 * parser.c (cp_parser_elaborated_type_specifier): Only consider template
118 parameter lists outside of function parameter scope.
119
120 2014-06-25 Paolo Carlini <paolo.carlini@oracle.com>
121
122 DR 178
123 PR c++/49132
124 * typeck2.c (process_init_constructor_record): Do not complain about
125 uninitialized const members, because within aggregate-initialization,
126 members without explicit initializers are value-initialized.
127
128 2014-06-25 Jakub Jelinek <jakub@redhat.com>
129
130 * semantics.c (finish_omp_clauses): Make sure
131 OMP_CLAUSE_LINEAR_STEP has correct type.
132
133 2014-06-24 Jan Hubicka <hubicka@ucw.cz>
134
135 * class.c (check_methods, create_vtable_ptr, determine_key_method,
136 add_vcall_offset_vtbl_entries_1): Guard VINDEX checks by
137 FUNCTION_DECL check.
138 * cp-tree.h (lang_decl_ns): Add ns_using and ns_users.
139 (DECL_NAMESPACE_USING, DECL_NAMESPACE_USERS): Use lang_decl_ns.
140 (DECL_NAMESPACE_ASSOCIATIONS): Use DECL_INITIAL.
141 (DECL_TEMPLATE_INSTANTIATIONS): Use DECL_SIZE_UNIT.
142
143 2014-06-24 Paolo Carlini <paolo.carlini@oracle.com>
144
145 PR c++/33972
146 * decl.c (grokdeclarator): Do not early check for operator-function-id
147 as non-function.
148
149 2014-06-24 Trevor Saunders <tsaunders@mozilla.com>
150
151 * class.c, semantics.c, tree.c, vtable-class-hierarchy.c:
152 Adjust.
153
154 2014-06-24 Jakub Jelinek <jakub@redhat.com>
155
156 * parser.c (cp_parser_omp_for_loop): For
157 #pragma omp parallel for simd move lastprivate clause from parallel
158 to for rather than simd.
159
160 2014-06-23 Paolo Carlini <paolo.carlini@oracle.com>
161
162 DR 577
163 PR c++/33101
164 * decl.c (grokparms): Accept a single parameter of type 'void'.
165
166 2014-06-20 Jason Merrill <jason@redhat.com>
167
168 PR c++/59296
169 * call.c (add_function_candidate): Avoid special 'this' handling
170 if we have a ref-qualifier.
171
172 PR c++/61556
173 * call.c (build_over_call): Call build_this in template path.
174
175 2014-06-19 Jason Merrill <jason@redhat.com>
176
177 PR c++/59296
178 * call.c (add_function_candidate): Also set LOOKUP_NO_TEMP_BIND.
179
180 2014-06-18 Jason Merrill <jason@redhat.com>
181
182 PR c++/59296
183 * call.c (add_function_candidate): Set LOOKUP_NO_RVAL_BIND for
184 ref-qualifier handling.
185
186 PR c++/61507
187 * pt.c (resolve_overloaded_unification): Preserve
188 ARGUMENT_PACK_EXPLICIT_ARGS.
189
190 2014-06-18 Jakub Jelinek <jakub@redhat.com>
191
192 * cp-gimplify.c (cxx_omp_finish_clause): Add a gimple_seq *
193 argument.
194 * cp-tree.h (cxx_omp_finish_clause): Adjust prototype.
195
196 2014-06-17 Jason Merrill <jason@redhat.com>
197
198 PR c++/60605
199 * pt.c (check_default_tmpl_args): Check DECL_LOCAL_FUNCTION_P.
200
201 2014-06-15 Jason Merrill <jason@redhat.com>
202
203 PR c++/61488
204 * pt.c (check_valid_ptrmem_cst_expr): Fix for template context.
205
206 PR c++/61500
207 * tree.c (lvalue_kind): Handle MEMBER_REF and DOTSTAR_EXPR.
208
209 2014-06-15 Jan Hubicka <hubicka@ucw.cz>
210
211 * decl.c (grokvardecl): Fix pasto in previous patch.
212
213 2014-06-15 Jan Hubicka <hubicka@ucw.cz>
214
215 * decl.c (duplicate_decls): Use set_decl_tls_model.
216 (grokdeclarator): Likewise.
217 * semantics.c (finish_id_expression): Check TLS only for
218 static variables.
219 (finish_omp_threadprivate): Use decl_default_tls_model.
220 * decl2.c (get_guard): Likewise.
221 * call.c (make_temporary_var_for_ref_to_temp): Likewise.
222
223 2014-06-14 Paolo Carlini <paolo.carlini@oracle.com>
224
225 PR c++/33101
226 * decl.c (grokparms): Improve error message about void parameters.
227 * error.c (type_to_string): Fix aka cut off code.
228
229 2014-06-12 Jason Merrill <jason@redhat.com>
230
231 * call.c (convert_arg_to_ellipsis): Use abi_version_crosses.
232 * cvt.c (type_promotes_to): Likewise.
233 * mangle.c (write_type, write_expression): Likewise.
234 (write_name, write_template_arg): Likewise.
235 (mangle_decl): Make alias based on flag_abi_compat_version.
236 Emit -Wabi warning here.
237 (finish_mangling_internal): Not here. Drop warn parm.
238 (finish_mangling_get_identifier, finish_mangling): Adjust.
239 (mangle_type_string, mangle_special_for_type): Adjust.
240 (mangle_ctor_vtbl_for_type, mangle_thunk): Adjust.
241 (mangle_guard_variable, mangle_tls_init_fn): Adjust.
242 (mangle_tls_wrapper_fn, mangle_ref_init_variable): Adjust.
243
244 * call.c (build_operator_new_call): Remove -fabi-version=1 support.
245 * class.c (walk_subobject_offsets, include_empty_classes): Likewise.
246 (layout_nonempty_base_or_field, end_of_class): Likewise.
247 (layout_empty_base, build_base_field, layout_class_type): Likewise.
248 (is_empty_class, add_vcall_offset_vtbl_entries_1): Likewise.
249 (layout_virtual_bases): Likewise.
250 * decl.c (compute_array_index_type): Likewise.
251 * mangle.c (write_mangled_name, write_prefix): Likewise.
252 (write_template_prefix, write_integer_cst, write_expression): Likewise.
253 (write_template_arg, write_array_type): Likewise.
254 * method.c (lazily_declare_fn): Likewise.
255 * rtti.c (get_pseudo_ti_index): Likewise.
256 * typeck.c (comp_array_types): Likewise.
257
258 2014-06-11 Jan Hubicka <hubicka@ucw.cz>
259
260 * vtable-class-hierarchy.c: Update handling for section names
261 that are no longer trees.
262 * decl.c (duplicate_decls): Likewise.
263
264 2014-06-11 Paolo Carlini <paolo.carlini@oracle.com>
265
266 PR c++/19200
267 * parser.c (cp_parser_init_declarator): Actually pass friend_p
268 to cp_parser_declarator.
269
270 2014-06-11 Paolo Carlini <paolo.carlini@oracle.com>
271
272 PR c++/60265
273 * parser.c (cp_parser_using_declaration): Handle unscoped enums.
274 * name-lookup.c (validate_nonmember_using_decl): Adjust error
275 message.
276
277 2014-06-11 Paolo Carlini <paolo.carlini@oracle.com>
278
279 PR c++/19200
280 * parser.c (cp_parser_declarator): Add bool parameter.
281 (cp_parser_direct_declarator): Likewise, use it.
282 (cp_parser_member_declaration): Pass friend_p to cp_parser_declarator.
283 (cp_parser_condition, cp_parser_explicit_instantiation,
284 cp_parser_init_declarator, cp_parser_type_id_1,
285 cp_parser_parameter_declaration, cp_parser_exception_declaration,
286 cp_parser_cache_defarg, cp_parser_objc_class_ivars,
287 cp_parser_objc_struct_declaration, cp_parser_omp_for_loop_init):
288 Adjust.
289 * decl.c (grokdeclarator): Fix handling of friend declared in
290 namespace scope (g++.dg/parse/friend10.C).
291
292 2014-06-10 Jan Hubicka <hubicka@ucw.cz>
293
294 * vtable-class-hierarchy.c: Use symtab_get_node (var_decl)
295 ->implicit_section.
296 * optimize.c (cdtor_comdat_group): Fix handling of aliases.
297 (maybe_clone_body): Move symbol across comdat groups.
298 * method.c (use_thunk): Copy implicit section flag.
299
300 2014-06-09 Paolo Carlini <paolo.carlini@oracle.com>
301
302 PR c++/22556
303 * name-lookup.c (pushdecl_maybe_friend_1): Use comptypes.
304
305 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
306
307 * method.c (use_thunk): Use set_decl_section_name.
308 * optimize.c (maybe_clone_body): Use set_decl_section_name.
309 * decl.c (duplicate_decls): Likewise.
310 * vtable-class-hierarchy.c: Likewise.
311
312 2014-06-06 Paolo Carlini <paolo.carlini@oracle.com>
313
314 PR c++/60184
315 * class.c (check_field_decls): In C++11 mode do not reject
316 static data members and reference-type members in unions.
317
318 2014-06-05 Jason Merrill <jason@redhat.com>
319
320 PR c++/43453
321 * decl.c (check_initializer): Collapse a TREE_LIST here.
322 * typeck2.c (store_init_value): Not here.
323
324 2014-06-05 Richard Biener <rguenther@suse.de>
325 Paolo Carlini <paolo.carlini@oracle.com>
326
327 PR c++/56961
328 * cp-gimplify.c (cp_gimplify_expr, [MODIFY_EXPR]): Rework
329 handling of empty classes.
330
331 2014-06-04 Jason Merrill <jason@redhat.com>
332
333 * parser.c (cp_parser_diagnose_invalid_type_name): Give helpful note
334 for noexcept and thread_local, too.
335
336 PR c++/61343
337 * decl.c (check_initializer): Maybe clear
338 DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P.
339
340 2014-06-05 Richard Biener <rguenther@suse.de>
341
342 PR c++/61004
343 * typeck.c (cp_build_indirect_ref): Do not emit strict-aliasing
344 warnings for accessing empty classes.
345
346 2014-06-05 Marek Polacek <polacek@redhat.com>
347
348 PR c/49706
349 * parser.c (cp_parser_binary_expression): Warn when logical not is
350 used on the left hand side operand of a comparison.
351
352 2014-06-04 Paolo Carlini <paolo.carlini@oracle.com>
353
354 PR c++/43453
355 * typeck.c (cp_build_modify_expr): Handle array of characters
356 initialized by a string literal.
357 * decl.c (check_initializer): Handle parenthesized string literal
358 as initializer.
359 * typeck2.c (store_init_value): Remove redundant check.
360
361 2014-06-04 Jason Merrill <jason@redhat.com>
362
363 PR c++/51253
364 PR c++/61382
365 * cp-gimplify.c (cp_gimplify_expr): Handle CALL_EXPR_LIST_INIT_P here.
366 * semantics.c (simplify_aggr_init_expr): Not here, just copy it.
367
368 2014-06-04 Igor Zamyatin <igor.zamyatin@intel.com>
369
370 PR c/58942
371 * cp-array-notation.c (expand_sec_reduce_builtin): Handle the case
372 with a pointer.
373
374 2014-06-03 Paolo Carlini <paolo.carlini@oracle.com>
375
376 DR 1423
377 PR c++/52174
378 * call.c (standard_conversion): Convert nullptr to bool only
379 in case of direct-initialization.
380 (convert_like_real): Provide informative error message.
381
382 2014-06-03 Marek Polacek <polacek@redhat.com>
383
384 PR c/60439
385 * semantics.c (finish_switch_cond): Warn if switch condition has
386 boolean value.
387
388 2014-06-03 Jason Merrill <jason@redhat.com>
389
390 PR c++/60992
391 * pt.c (tsubst_copy) [VAR_DECL]: Try lookup first. Add a new
392 variable to local_specializations.
393
394 PR c++/60848
395 * call.c (is_std_init_list): Check CLASSTYPE_TEMPLATE_INFO.
396
397 2014-06-02 Jason Merrill <jason@redhat.com>
398
399 PR c++/61046
400 * decl.c (reshape_init_class): Handle un-folded
401 constant-expressions.
402
403 PR c++/61134
404 * pt.c (pack_deducible_p): Handle canonicalization.
405
406 2014-06-02 Paolo Carlini <paolo.carlini@oracle.com>
407
408 * pt.c (tsubst_function_type): Initialize arg_types.
409
410 2014-06-02 Siva Chandra Reddy <sivachandra@google.com>
411
412 PR debug/57519
413 * class.c (handle_using_decl): Pass the correct scope to
414 cp_emit_debug_info_for_using.
415
416 2014-06-02 Ville Voutilainen <ville.voutilainen@gmail.com>
417
418 PR c++/59483
419 PR c++/61148
420 * search.c (accessible_p): Use current_nonlambda_class_type.
421 * semantics.c (check_accessibility_of_qualified_id): Likewise.
422
423 2014-06-02 Andrew MacLeod <amacleod@redhat.com>
424
425 * decl.c: Include builtins.h.
426 * semantics.c: Likewise.
427
428 2014-05-31 Paolo Carlini <paolo.carlini@oracle.com>
429
430 DR 1227
431 PR c++/57543
432 * cp-tree.h (TYPE_HAS_LATE_RETURN_TYPE): Add.
433 * pt.c (tsubst_function_type): Inject the this parameter; do the
434 substitutions in the order mandated by the DR.
435 (copy_default_args_to_explicit_spec): Copy TYPE_HAS_LATE_RETURN_TYPE.
436 * decl.c (grokdeclarator): Maybe set TYPE_HAS_LATE_RETURN_TYPE.
437 (static_fn_type): Copy it.
438 * decl2.c (build_memfn_type, change_return_type,
439 cp_reconstruct_complex_type): Likewise.
440 * parser.c (cp_parser_lambda_declarator_opt): Likewise.
441 * tree.c (strip_typedefs): Likewise.
442 * typeck.c (merge_types): Likewise.
443
444 2014-05-30 Jason Merrill <jason@redhat.com>
445
446 PR c++/56947
447 * pt.c (instantiate_decl): Check that defer_ok is not set for
448 local class members.
449
450 PR c++/60992
451 * pt.c (tsubst_init): Split out from...
452 (tsubst_expr) [DECL_EXPR]: Here.
453 (tsubst_copy) [VAR_DECL]: Use it.
454 * semantics.c (finish_id_expression): Return the decl for static/const.
455
456 2014-05-28 Jason Merrill <jason@redhat.com>
457
458 PR c++/47202
459 * decl.c (cxx_comdat_group): Return a decl.
460 * optimize.c (cdtor_comdat_group): Get its DECL_ASSEMBLER_NAME.
461
462 * pt.c (tsubst) [ARRAY_TYPE]: Check for array of array of unknown
463 bound.
464
465 PR c++/61242
466 * call.c (build_aggr_conv): Ignore passed in flags.
467 (build_array_conv, build_complex_conv): Likewise.
468
469 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
470
471 * optimize.c (maybe_thunk_body): Use set_comdat_group.
472 (maybe_clone_body): Likewise.
473 * decl.c (duplicate_decls): Update code duplicating comdat group;
474 do not copy symtab pointer; before freeing newdecl remove it
475 from symtab.
476 * decl2.c (constrain_visibility): Use set_comdat_group.
477
478 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
479
480 * rtti.c: Include tm_p.h
481 (emit_tinfo_decl): Force RTTI data to be aligned to required
482 ABI alignment only.
483
484 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
485
486 * class.c (build_vtable): Align vtables to TARGET_VTABLE_ENTRY_ALIGN
487 ignoring other target adjustments.
488
489 2014-05-23 Thomas Schwinge <thomas@codesourcery.com>
490
491 * semantics.c (finish_omp_clauses): Remove duplicated variable
492 initialization.
493
494 * parser.c (cp_parser_omp_target): Return bool values.
495
496 2014-05-22 Paolo Carlini <paolo.carlini@oracle.com>
497
498 PR c++/61088
499 * lambda.c (add_capture): Enforce that capture by value requires
500 complete type.
501 * typeck2.c (cxx_incomplete_type_inform): Early return if
502 TYPE_MAIN_DECL is null.
503
504 2014-05-21 Jonathan Wakely <jwakely@redhat.com>
505
506 PR c/61271
507 * cp-array-notation.c (cilkplus_an_triplet_types_ok_p): Fix condition.
508
509 2014-05-21 Ville Voutilainen <ville.voutilainen@gmail.com>
510
511 PR c++/61133
512 * lambda.c (build_capture_proxy, add_capture): Treat normal
513 captures and init-captures identically.
514
515 2014-05-21 Mark Wielaard <mjw@redhat.com>
516
517 PR debug/16063
518 * cp-lang.c (cxx_enum_underlying_base_type): New function.
519 (LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): Define.
520
521 2014-05-21 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
522
523 * cvt.c (convert_to_void): Use void_node instead of void_zero_node.
524 * cp-array-notation.c (replace_invariant_exprs): Likewise.
525 (expand_array_notation): Handle VOID_CST.
526 * error.c (dump_expr): Likewise.
527 * cxx-pretty-print.c (cxx_pretty_printer::primary_expression)
528 (cxx_pretty_printer::expression): Likewise.
529 (pp_cxx_new_expression): Use void_node instead of void_zero_node.
530 * decl.c (register_dtor_fn): Likewise.
531 * init.c (build_raw_new_expr, build_new_1, build_vec_init)
532 (build_delete, push_base_cleanups): Likewise.
533 * mangle.c (write_expression): Likewise.
534 * semantics.c (finish_break_stmt, empty_expr_stmt_p): Likewise.
535 * pt.c (tsubst_decl, tsubst_copy_and_build): Likewise.
536 (tsubst, tsubst_copy, build_non_dependent_expr): Handle VOID_CST.
537 * tree.c (cp_tree_equal): Likewise.
538 (build_dummy_object, is_dummy_object, stabilize_expr): Use void_node
539 instead of void_zero_node.
540 * typeck.c (check_return_expr): Likewise.
541 * typeck2.c (build_functional_cast): Likewise.
542
543 2014-05-21 Igor Zamyatin <igor.zamyatin@intel.com>
544
545 PR c/60189
546 * parser.c (cp_parser_postfix_expression): Move handling of cilk_sync
547 from here to...
548 (cp_parser_statement): ...here. Make sure only semicolon can go after
549 Cilk_sync.
550
551 2014-05-20 Paolo Carlini <paolo.carlini@oracle.com>
552
553 PR c++/58753
554 PR c++/58930
555 PR c++/58704
556 * typeck2.c (digest_nsdmi_init): New.
557 * parser.c (cp_parser_late_parse_one_default_arg): Use it.
558 * init.c (get_nsdmi): Likewise.
559 * cp-tree.h (digest_nsdmi_init): Declare.
560
561 2014-05-20 Jason Merrill <jason@redhat.com>
562
563 * typeck.c (get_member_function_from_ptrfunc): Don't try to look
564 up a virtual function in a dummy object.
565
566 2014-05-20 Paolo Carlini <paolo.carlini@oracle.com>
567
568 PR c++/60373
569 * decl.c (duplicate_decls): Replace pair of warning_at with
570 warning_at + inform.
571 (maybe_commonize_var): Likewise.
572
573 2014-05-20 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
574
575 PR bootstrap/61210
576 * pt.c (tsubst_copy, tsubst_omp_for_iterator, tsubst_expr)
577 (tsubst_copy_and_build): Perform recursive substitutions in a
578 deterministic order.
579
580 2014-05-20 Paolo Carlini <paolo.carlini@oracle.com>
581
582 PR c++/58664
583 * typeck2.c (cxx_incomplete_type_inform): New.
584 (cxx_incomplete_type_diagnostic): Use it.
585 * decl.c (grokdeclarator): Check the element type of an
586 incomplete array type; call the above.
587 * cp-tree.h (cxx_incomplete_type_inform): Declare.
588
589 2014-05-19 Jason Merrill <jason@redhat.com>
590
591 PR c++/58761
592 * pt.c (tsubst_copy): Don't check at_function_scope_p.
593 (instantiate_class_template_1): Don't push_to_top_level in an nsdmi.
594
595 2014-05-19 Paolo Carlini <paolo.carlini@oracle.com>
596
597 * typeck2.c (cxx_incomplete_type_diagnostic): Use inform.
598 * parser.c (cp_parser_enum_specifier): Likewise.
599
600 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
601
602 * class.c (sorted_fields_type_new): Adjust.
603 * cp-cilkplus.c (cilk_install_body_with_frame_cleanup): Likewise.
604 * cp-objcp-common.c (decl_shadowed_for_var_insert): Likewise.
605 * cp-tree.h: Remove usage of variable_size gty attribute.
606 * decl.c (make_label_decl): Adjust.
607 (check_goto): Likewise.
608 (start_preparsed_function): Likewise.
609 (save_function_data): Likewise.
610 * lex.c (init_reswords): Likewise.
611 (retrofit_lang_decl): Likewise.
612 (cxx_dup_lang_specific_decl): Likewise.
613 (copy_lang_type): Likewise.
614 (cxx_make_type): Likewise.
615 * name-lookup.c (binding_entry_make): Likewise.
616 (binding_table_construct): Likewise.
617 (binding_table_new): Likewise.
618 (cxx_binding_make): Likewise.
619 (pushdecl_maybe_friend_1): Likewise.
620 (begin_scope): Likewise.
621 (push_to_top_level): Likewise.
622 * parser.c (cp_lexer_alloc): Likewise.
623 (cp_lexer_new_from_tokens): Likewise.
624 (cp_token_cache_new): Likewise.
625 (cp_parser_context_new): Likewise.
626 (cp_parser_new): Likewise.
627 (cp_parser_nested_name_specifier_opt): Likewise.
628 (cp_parser_template_id): Likewise.
629 * pt.c (maybe_process_partial_specialization): Likewise.
630 (register_specialization): Likewise.
631 (add_pending_template): Likewise.
632 (lookup_template_class_1): Likewise.
633 (push_tinst_level): Likewise.
634 * semantics.c (register_constexpr_fundef): Likewise.
635 (cxx_eval_call_expression): Likewise.
636 * typeck2.c (abstract_virtuals_error_sfinae): Likewise.
637
638 2014-05-16 Paolo Carlini <paolo.carlini@oracle.com>
639
640 PR c++/51640
641 * parser.c (cp_parser_diagnose_invalid_type_name): Early return
642 when cp_parser_lookup_name sets ambiguous_decls.
643
644 2014-05-15 Jason Merrill <jason@redhat.com>
645
646 * call.c (print_conversion_rejection): Use loc consistently.
647
648 2014-05-14 Paolo Carlini <paolo.carlini@oracle.com>
649
650 * cp-tree.h (DIRECT_LIST_INIT_P): Add.
651 * call.c (convert_like_real, build_new_method_call_1): Use it.
652 * decl2.c (grokfield): Likewise.
653 * init.c (perform_member_init, build_aggr_init, expand_default_init,
654 build_new_1): Likewise.
655 * mangle.c (write_expression): Likewise.
656 * parser.c (cp_parser_late_parse_one_default_arg): Likewise.
657
658 2014-05-14 Jason Merrill <jason@redhat.com>
659
660 PR c++/20332
661 PR c++/21631
662 * call.c (reference_binding): Treat lvalue/rvalue mismatch and
663 dropped cv-quals as a bad conversion.
664 (convert_like_real) [ck_ref_bind]: Explain them.
665 (compare_ics): Check badness before stripping reference
666 bindings. Handle comparing bad reference bindings.
667 * typeck.c (comp_cv_qualification): Add overload that just takes
668 integers.
669 * cp-tree.h: Declare it.
670
671 * call.c (struct conversion_info): Rename 'from_type' to 'from'.
672 (arg_conversion_rejection, bad_arg_conversion_rejection)
673 (explicit_conversion_rejection, template_conversion_rejection): Adjust.
674 (add_function_candidate): Pass actual argument, rather than type, to
675 bad_arg_conversion_rejection.
676 (print_conversion_rejection): Explain what's wrong with the conversion.
677 (print_z_candidates): Say "candidate:" before each candidate.
678 (splice_viable): Be strict if we see a viable or template candidate.
679 (build_user_type_conversion_1): Pass false to strict parameter.
680 (perform_overload_resolution, build_conditional_expr_1): Likewise.
681 (build_new_op_1, build_new_method_call_1): Likewise.
682 (build_op_call_1): Pass true to strict parameter.
683
684 2014-05-13 Jason Merrill <jason@redhat.com>
685
686 * call.c (print_error_for_call_failure): Say "no match" rather
687 than "ambiguous" if there were no strict matches.
688 (build_new_method_call_1): Likewise.
689
690 PR c++/61151
691 * semantics.c (is_this_parameter): Allow capture proxies too.
692
693 2014-05-12 Jason Merrill <jason@redhat.com>
694
695 * call.c (maybe_print_user_conv_context): New.
696 (convert_like_real): Use it. Print call context for bad
697 user-defined conversion.
698 (build_over_call): Print call context for bad 'this' conversion.
699
700 * call.c (convert_like_real): Use inform for identifying the
701 declaration point.
702
703 2014-05-12 Paolo Carlini <paolo.carlini@oracle.com>
704
705 * cvt.c (cp_convert_to_pointer): Don't call error_at if
706 complain & tf_error is false.
707
708 * decl.c (make_unbound_class_template): Prefer inform for
709 "declared here"-type message.
710
711 2014-05-09 Momchil Velikov <momchil.velikov@gmail.com>
712
713 PR c++/60463
714 PR c++/60755
715 * lambda.c (lambda_expr_this_capture): Add new parameter
716 add_capture_p controlling whether the functions will try to
717 capture 'this' via the default capture.
718 (maybe_resolve_dummy): Likewise.
719 * cp-tree.h: Adjust prototypes.
720 * call.c, semantics.c: Change callers of these functions.
721 * call.c (build_new_method_call_1): Use the actual 'this' that
722 would be potentially captured for the overload resolution, instead
723 of the dummy object.
724
725 2014-05-09 Paolo Carlini <paolo.carlini@oracle.com>
726
727 * pt.c (convert_nontype_argument_function): Add tsubst_flags_t
728 parameter.
729 (convert_nontype_argument): Adjust calls.
730 (coerce_template_parameter_pack): Add missing complain & tf_error
731 check.
732
733 2014-05-09 Jason Merrill <jason@redhat.com>
734
735 DR 587
736 PR c++/51317
737 * call.c (build_conditional_expr_1, conditional_conversion): Handle
738 non-class lvalues and xvalues that differ only in cv-qualifiers.
739
740 DR 5
741 PR c++/60019
742 * call.c (build_user_type_conversion_1): The copy-init temporary
743 is cv-unqualified.
744
745 PR c++/58714
746 * tree.c (stabilize_expr): A stabilized prvalue is an xvalue.
747
748 PR c++/54348
749 * call.c (build_conditional_expr_1): If overload resolution finds
750 no match, just say "different types".
751
752 PR c++/32019
753 * call.c (build_conditional_expr_1): Improve ambiguity diagnostic.
754
755 PR c++/22434
756 * call.c (build_conditional_expr_1): Don't try to pool cv-quals
757 if we didn't find a conversion.
758 Don't accept a bad conversion too early.
759
760 2014-05-08 Paolo Carlini <paolo.carlini@oracle.com>
761
762 PR c++/13981
763 * typeck.c (convert_for_assignment): Provide an inform for pointers
764 to incomplete class types.
765
766 2014-05-07 Paolo Carlini <paolo.carlini@oracle.com>
767
768 PR c++/61083
769 * pt.c (convert_nontype_argument): Protect all the error calls
770 with complain & tf_error.
771
772 2014-05-07 Paolo Carlini <paolo.carlini@oracle.com>
773
774 PR c++/61080
775 * pt.c (instantiate_decl): Avoid generating the body of a
776 deleted function.
777
778 2014-05-06 Paolo Carlini <paolo.carlini@oracle.com>
779
780 PR c++/60999
781 * pt.c (maybe_begin_member_template_processing): Use
782 uses_template_parms.
783
784 2014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com>
785 Mike Stump <mikestump@comcast.net>
786 Richard Sandiford <rdsandiford@googlemail.com>
787
788 * call.c: Include wide-int.h.
789 (type_passed_as): Use tree_int_cst_lt instead of INT_CST_LT_UNSIGNED.
790 (convert_for_arg_passing): Likewise.
791 * class.c: Include wide-int.h.
792 (walk_subobject_offsets): Use tree_int_cst_lt instead of INT_CST_LT.
793 (end_of_class): Use tree_int_cst_lt instead of INT_CST_LT_UNSIGNED.
794 (include_empty_classes): Likewise
795 (layout_class_type): Use tree_int_cst_lt instead of INT_CST_LT.
796 * cvt.c: Include wide-int.h.
797 (ignore_overflows): Use wide_int_to_tree.
798 * decl.c: Include wide-int.h.
799 (check_array_designated_initializer): Use wide-int interfaces.
800 (compute_array_index_type): Use tree_int_cst_lt instead of INT_CST_LT.
801 (finish_enum_value_list): Use signop.
802 (build_enumerator): Use wide-int interfaces.
803 * init.c: Include wide-int.h.
804 (build_new_1): Use wide-int interfaces.
805 * mangle.c: Include wide-int.h.
806 (write_integer_cst): Use wide-int interfaces.
807 (write_array_type): Likewise.
808 * tree.c: Include wide-int.h.
809 (cp_tree_equal): Use tree_int_cst_equal.
810 * typeck2.c: Include wide-int.h.
811 (process_init_constructor_array): Use wide-int interfaces.
812
813 2014-05-03 Paolo Carlini <paolo.carlini@oracle.com>
814
815 PR c++/58582
816 * decl.c (grokfndecl): Check duplicate_decls return value for
817 error_mark_node.
818 * pt.c (instantiate_decl): A deleted function is defined.
819
820 2014-05-02 Jason Merrill <jason@redhat.com>
821
822 * decl2.c (vague_linkage_p): Local statics have vague linkage.
823
824 PR c++/60992
825 * lambda.c (lambda_capture_field_type): Wrap anything dependent
826 other than 'this'.
827 (add_capture): Check for VLA before calling it.
828 * semantics.c (is_this_parameter): Accept any 'this' parameter, not
829 just the current one. Make non-static.
830 * cp-tree.h: Declare it.
831 * pt.c (tsubst_copy) [VAR_DECL]: Also build a new VAR_DECL if
832 the operand was static or constant.
833
834 2014-05-02 Marek Polacek <polacek@redhat.com>
835
836 * typeck.c (maybe_warn_about_returning_address_of_local): Separate
837 warning_at calls.
838
839 2014-05-01 Marek Polacek <polacek@redhat.com>
840
841 PR c/43395
842 * typeck.c (maybe_warn_about_returning_address_of_local): Distinguish
843 between label and variable when warning about returning local address.
844
845 2014-04-30 Jason Merrill <jason@redhat.com>
846
847 PR c++/60980
848 * init.c (build_value_init): Don't try to call an array constructor.
849
850 PR c++/60951
851 * typeck2.c (massage_init_elt): Use maybe_constant_init.
852
853 2014-04-30 Marek Polacek <polacek@redhat.com>
854
855 * typeck.c (cp_build_binary_op): Call ubsan_instrument_division
856 even when SANITIZE_FLOAT_DIVIDE is on. Set doing_div_or_mod even
857 for non-integer types.
858
859 2014-04-29 Jason Merrill <jason@redhat.com>
860
861 DR 1351
862 Represent the unevaluated exception specification of an implicitly
863 declared or deleted function with a simple placeholder, not a list
864 of functions.
865 * cp-tree.h (UNEVALUATED_NOEXCEPT_SPEC_P): New.
866 * except.c (unevaluated_noexcept_spec): New.
867 * class.c (deduce_noexcept_on_destructor): Use it.
868 * decl.c (check_redeclaration_exception_specification): Call
869 maybe_instantiate_noexcept.
870 (duplicate_decls): Call it before merge_types.
871 (start_preparsed_function): Call maybe_instantiate_noexcept.
872 * decl2.c (mark_used): Call maybe_instantiate_noexcept earlier.
873 * init.c (get_nsdmi): Factor out of perform_member_init.
874 * method.c (process_subob_fn): Call maybe_instantiate_noexcept.
875 (walk_field_subobs): Consider NSDMI for EH spec.
876 (get_defaulted_eh_spec): New.
877 (implicitly_declare_fn): Use unevaluated_noexcept_spec.
878 (defaulted_late_check): Defer EH checking in non-template classes.
879 (after_nsdmi_defaulted_late_checks): New.
880 * parser.c (cp_parser_class_specifier_1): Use it.
881 (unparsed_classes): New macro.
882 * parser.h (cp_unparsed_functions_entry_d): Add classes field.
883 * pt.c (maybe_instantiate_noexcept): Use get_defaulted_eh_spec.
884 Remove list-of-functions handling.
885 * typeck2.c (merge_exception_specifiers): Remove list-of-functions
886 handling and FN parameter.
887 * typeck.c (merge_types): Adjust.
888
889 2014-04-28 Paolo Carlini <paolo.carlini@oracle.com>
890
891 PR c++/59120
892 * parser.c (cp_parser_alias_declaration): Check return value of
893 cp_parser_require.
894
895 2014-04-24 Jakub Jelinek <jakub@redhat.com>
896
897 * parser.c (cp_parser_omp_atomic): Allow seq_cst before
898 atomic-clause, allow comma in between atomic-clause and
899 seq_cst.
900
901 2014-04-24 Marc Glisse <marc.glisse@inria.fr>
902
903 PR libstdc++/43622
904 * rtti.c (emit_support_tinfos): Do not iterate on
905 registered_builtin_types (partial revert).
906
907 2014-04-23 Dinar Temirbulatov <dtemirbulatov@gmail.com>
908
909 PR c++/57958
910 * semantics.c (apply_deduced_return_type): Complete non-void type
911 before estimating whether the type is aggregate.
912
913 2014-04-22 Marc Glisse <marc.glisse@inria.fr>
914
915 PR libstdc++/43622
916 * rtti.c (emit_support_tinfo_1): New function, extracted from
917 emit_support_tinfos.
918 (emit_support_tinfos): Call it and iterate on registered_builtin_types.
919
920 2014-04-22 Jakub Jelinek <jakub@redhat.com>
921
922 PR c/59073
923 * parser.c (cp_parser_omp_parallel): If cp_parser_omp_for
924 fails, don't set OM_PARALLEL_COMBINED and return NULL.
925
926 2014-04-18 Jason Merrill <jason@redhat.com>
927
928 DR 1571
929 * call.c (reference_binding): Recurse on user-defined conversion.
930
931 PR c++/60872
932 * call.c (standard_conversion): Don't try to apply restrict to void.
933
934 2014-04-16 Marc Glisse <marc.glisse@inria.fr>
935
936 * decl.c (reshape_init_r): Handle a single element of vector type.
937
938 2014-04-16 Patrick Palka <patrick@parcs.ath.cx>
939
940 PR c++/60765
941 * decl2.c (cplus_decl_attributes): Handle
942 pointer-to-member-function declarations.
943
944 2014-04-16 Patrick Palka <patrick@parcs.ath.cx>
945
946 PR c++/60764
947 * call.c (build_user_type_coversion): Use build_dummy_object
948 to create the placeholder object for a constructor method call.
949 (build_special_member_call): Likewise.
950 (build_over_call): Check for the placeholder object with
951 is_dummy_object.
952 (build_new_method_call_1): Likewise. Don't attempt to resolve
953 a dummy object for a constructor method call.
954
955 2014-04-16 Paul Pluzhnikov <ppluzhnikov@google.com>
956
957 PR c++/59295
958 * friend.c (add_friend, make_friend_class): Move repeated friend
959 warning under Wredundant_decls.
960
961 2014-04-15 Paolo Carlini <paolo.carlini@oracle.com>
962
963 * decl.c (duplicate_decls): Remove redundant TYPE_NAME use.
964 * name-lookup.c (pushdecl_maybe_friend_1): Likewise.
965 (do_class_using_decl): Likewise.
966 * mangle.c (dump_substitution_candidates): Use TYPE_NAME_STRING.
967
968 2014-04-15 Jakub Jelinek <jakub@redhat.com>
969
970 PR plugins/59335
971 * Make-lang.h (CP_PLUGIN_HEADERS): Add type-utils.h.
972
973 2014-04-14 Paolo Carlini <paolo.carlini@oracle.com>
974
975 * cp-tree.h (TYPE_IDENTIFIER): Remove declaration.
976
977 2014-04-14 Paolo Carlini <paolo.carlini@oracle.com>
978
979 * pt.c (mark_template_parm): Use template_parm_level_and_index.
980
981 2014-04-11 Jason Merrill <jason@redhat.com>
982
983 * parser.h (struct cp_token): Rename ambiguous_p to error_reported.
984 * parser.c: Adjust.
985 (cp_lexer_get_preprocessor_token): Always clear it.
986 (cp_parser_lambda_expression): Use it to avoid duplicate diagnostics.
987
988 DR 1467
989 PR c++/51747
990 * decl.c (reshape_init_r): Handle a single element of class type.
991
992 DR 1338
993 * decl.c (cxx_init_decl_processing): Set DECL_IS_MALLOC on
994 built-in operator new.
995
996 2014-04-11 Paolo Carlini <paolo.carlini@oracle.com>
997
998 PR c++/58600
999 * name-lookup.c (parse_using_directive): Return early if the
1000 attribs argument is error_mark_node; use get_attribute_name.
1001
1002 2014-04-11 Jason Merrill <jason@redhat.com>
1003
1004 DR 1030
1005 PR c++/51253
1006 * cp-tree.h (CALL_EXPR_LIST_INIT_P): New.
1007 * call.c (struct z_candidate): Add flags field.
1008 (add_candidate): Add flags parm.
1009 (add_function_candidate, add_conv_candidate, build_builtin_candidate)
1010 (add_template_candidate_real): Pass it.
1011 (build_over_call): Set CALL_EXPR_LIST_INIT_P.
1012 * tree.c (build_aggr_init_expr): Copy it.
1013 * semantics.c (simplify_aggr_init_expr): Preevaluate args if it's set.
1014
1015 2014-04-10 Richard Biener <rguenther@suse.de>
1016 Jakub Jelinek <jakub@redhat.com>
1017
1018 PR ipa/60761
1019 * error.c (dump_decl) <case FUNCTION_DECL>: If
1020 DECL_LANG_SPECIFIC is NULL, but DECL_ABSTRACT_ORIGIN is not,
1021 recurse on DECL_ABSTRACT_ORIGIN instead of printing
1022 <built-in>.
1023
1024 2014-04-09 Fabien Chêne <fabien@gcc.gnu.org>
1025
1026 * pt.c (check_template_variable): Check for the return of pedwarn
1027 before emitting a note.
1028 * parser.c (cp_parser_lambda_introducer): Likewise.
1029
1030 2014-04-08 Paolo Carlini <paolo.carlini@oracle.com>
1031
1032 PR c++/59115
1033 * pt.c (process_template_parm): For an invalid non-type parameter
1034 only set TREE_TYPE to error_mark_node.
1035 (push_inline_template_parms_recursive, comp_template_parms,
1036 redeclare_class_template, coerce_template_template_parm,
1037 coerce_template_template_parms, unify): Use error_operand_p.
1038
1039 2014-04-08 Nathan Sidwell <nathan@codesourcery.com>
1040
1041 * class.c (check_bases_and_members): Warn about non-virtual dtors
1042 in public bases only. Check warn_ecpp before complaining about
1043 non-polymorphic bases.
1044
1045 2014-04-04 Fabien Chêne <fabien@gcc.gnu.org>
1046
1047 * decl.c (duplicate_decls): Check for the return of warning_at
1048 before emitting a note.
1049 (warn_misplaced_attr_for_class_type): Likewise.
1050 (check_tag_decl): Likewise.
1051
1052 2014-04-04 Paolo Carlini <paolo.carlini@oracle.com>
1053
1054 PR c++/58207
1055 * semantics.c (sort_constexpr_mem_initializers): Robustify loop.
1056
1057 2014-04-04 Patrick Palka <patrick@parcs.ath.cx>
1058
1059 PR c++/44613
1060 * semantics.c (add_stmt): Set STATEMENT_LIST_HAS_LABEL.
1061 * decl.c (cp_finish_decl): Create a new BIND_EXPR before
1062 instantiating a variable-sized type.
1063
1064 PR c++/21113
1065 * decl.c (decl_jump_unsafe): Consider variably-modified decls.
1066
1067 2014-04-04 Fabien Chêne <fabien@gcc.gnu.org>
1068
1069 * class.c (find_abi_tags_r): Check for the return of warning
1070 before emitting a note.
1071 (one_inherited_ctor): Likewise.
1072
1073 2014-04-04 Fabien Chêne <fabien@gcc.gnu.org>
1074
1075 * decl.c (duplicate_decls): Check for the return of permerror
1076 before emitting a note.
1077
1078 2014-04-03 Nathan Sidwell <nathan@codesourcery.com>
1079
1080 * class.c (accessible_nvdtor_p): New.
1081 (check_bases): Don't check base destructor here ...
1082 (check_bases_and_members): ... check them here. Trigger on
1083 Wnon-virtual-dtor flag.
1084 (finish_struct_1): Use accessible_nvdtor_p.
1085
1086 2014-04-01 Jason Merrill <jason@redhat.com>
1087
1088 * pt.c (process_partial_specialization): Say "not deducible"
1089 rather than "not used". Use inform.
1090
1091 PR c++/60374
1092 * pt.c (coerce_template_parms): Check that the pack expansion
1093 pattern works with the first matching parameter.
1094
1095 2014-04-01 Fabien Chêne <fabien@gcc.gnu.org>
1096
1097 * init.c (perform_member_init): Homogenize uninitialized
1098 diagnostics.
1099
1100 2014-04-01 Jason Merrill <jason@redhat.com>
1101
1102 PR c++/60708
1103 * call.c (build_array_conv): Call complete_type.
1104
1105 PR c++/60713
1106 * typeck2.c (PICFLAG_SIDE_EFFECTS): New.
1107 (picflag_from_initializer): Return it.
1108 (process_init_constructor): Handle it.
1109
1110 PR c++/60642
1111 * decl2.c (is_late_template_attribute): Don't defer abi_tag.
1112 * mangle.c (write_unqualified_name): Fix abi_tag on templates.
1113 * pt.c (get_template_info): Handle NAMESPACE_DECL.
1114 (most_general_template): Handle more kinds of template.
1115 * tree.c (handle_abi_tag_attribute): Ignore abi_tag on template
1116 instantiations and specializations.
1117
1118 2014-03-31 Patrick Palka <patrick@parcs.ath.cx>
1119
1120 PR c++/44859
1121 * typeck.c (maybe_warn_about_returning_address_of_local): Unwrap
1122 COMPONENT_REFs and ARRAY_REFs sooner.
1123
1124 2014-03-29 Adam Butcher <adam@jessamine.co.uk>
1125
1126 PR c++/60626
1127 * parser.c (cp_parser_init_declarator): Handle erroneous generic type
1128 usage in non-functions with pushed scope.
1129
1130 2014-03-28 Adam Butcher <adam@jessamine.co.uk>
1131
1132 PR c++/60573
1133 * name-lookup.h (cp_binding_level): New transient field defining_class_p
1134 to indicate whether a scope is in the process of defining a class.
1135 * semantics.c (begin_class_definition): Set defining_class_p.
1136 * name-lookup.c (leave_scope): Reset defining_class_p.
1137 * parser.c (synthesize_implicit_template_parm): Use cp_binding_level::
1138 defining_class_p rather than TYPE_BEING_DEFINED as the predicate for
1139 unwinding to class-defining scope to handle the erroneous definition of
1140 a generic function of an arbitrarily nested class within an enclosing
1141 class.
1142
1143 2014-03-26 Fabien Chêne <fabien@gcc.gnu.org>
1144
1145 PR c++/52369
1146 * method.c (walk_field_subobs): Improve the diagnostic
1147 locations for both REFERENCE_TYPEs and non-static const members.
1148 * init.c (diagnose_uninitialized_cst_or_ref_member): Use %q#D
1149 instead of %qD to be consistent with the c++11 diagnostic.
1150
1151 2014-03-25 Jason Merrill <jason@redhat.com>
1152
1153 PR c++/60566
1154 PR c++/58678
1155 * class.c (build_vtbl_initializer): Handle abstract dtors here.
1156 * search.c (get_pure_virtuals): Not here.
1157
1158 PR c++/60375
1159 * parser.c (cp_parser_lambda_expression): Don't parse the body of
1160 a lambda in unevaluated context.
1161
1162 PR c++/60628
1163 * decl.c (create_array_type_for_decl): Complain about array of auto.
1164
1165 2014-03-25 Jakub Jelinek <jakub@redhat.com>
1166
1167 PR c++/60331
1168 * semantics.c (potential_constant_expression_1): Handle
1169 DECL_EXPR.
1170
1171 2014-03-24 Adam Butcher <adam@jessamine.co.uk>
1172
1173 PR c++/60627
1174 * parser.c (cp_parser_parameter_declaration_clause): Prevent 'auto' from
1175 introducing an implicit function template parameter within an explicit
1176 instantiation.
1177
1178 2014-03-22 Jason Merrill <jason@redhat.com>
1179
1180 PR c++/60574
1181 * decl.c (grokdeclarator): Change permerror about 'virtual auto'
1182 to error.
1183
1184 2014-03-21 Paolo Carlini <paolo.carlini@oracle.com>
1185
1186 PR c++/60384
1187 * name-lookup.c (push_class_level_binding_1): Check identifier_p
1188 on the name argument.
1189
1190 2014-03-20 Jakub Jelinek <jakub@redhat.com>
1191
1192 PR c++/60572
1193 * init.c (build_zero_init_1): Ignore fields with error_mark_node
1194 type.
1195
1196 2014-03-19 Paolo Carlini <paolo.carlini@oracle.com>
1197
1198 PR c++/51474
1199 * call.c (build_new_method_call_1): Handle pure virtuals called by
1200 NSDMIs too.
1201
1202 2014-03-17 Adam Butcher <adam@jessamine.co.uk>
1203
1204 PR c++/60390
1205 * parser.c (cp_parser_member_declaration): Don't allow
1206 finish_fully_implicit_template to consider friend declarations to be
1207 class member templates.
1208 (synthesize_implicit_template_parm): Handling winding back through class
1209 scope to the class being defined in order to inject a template argument
1210 list.
1211
1212 PR c++/60391
1213 * parser.c (cp_parser_skip_to_end_of_block_or_statement): Unwind generic
1214 function scope as per cp_parser_skip_to_end_of_statement.
1215
1216 2014-03-17 Paolo Carlini <paolo.carlini@oracle.com>
1217
1218 PR c++/59571
1219 * typeck2.c (check_narrowing): Use fold_non_dependent_expr_sfinae.
1220
1221 2014-03-14 Jason Merrill <jason@redhat.com>
1222
1223 PR c++/60532
1224 PR c++/58678
1225 * search.c (get_pure_virtuals): Handle abstract dtor here.
1226 (dfs_get_pure_virtuals): Not here.
1227
1228 PR c++/58678
1229 * search.c (dfs_get_pure_virtuals): Treat the destructor of an
1230 abstract class as pure.
1231
1232 2014-03-13 Paolo Carlini <paolo.carlini@oracle.com>
1233
1234 PR c++/60383
1235 * pt.c (maybe_process_partial_specialization): Check return value
1236 of check_specialization_namespace.
1237
1238 2014-03-13 Paolo Carlini <paolo.carlini@oracle.com>
1239
1240 PR c++/60254
1241 * semantics.c (finish_static_assert): Call cxx_constant_value only
1242 if require_potential_rvalue_constant_expression returns true.
1243
1244 2014-03-11 Paolo Carlini <paolo.carlini@oracle.com>
1245
1246 PR c++/60389
1247 * method.c (get_inherited_ctor): New.
1248 * cp-tree.h (get_inherited_ctor): Declare it.
1249 * semantics.c (is_valid_constexpr_fn): Use it.
1250
1251 2014-03-10 Jason Merrill <jason@redhat.com>
1252
1253 PR c++/60367
1254 * call.c (convert_default_arg): Remove special handling for
1255 CONSTRUCTOR.
1256
1257 PR c++/53492
1258 * parser.c (cp_parser_class_head): Also check PRIMARY_TEMPLATE_P
1259 when deciding whether to call push_template_decl for a member class.
1260 * pt.c (push_template_decl_real): Return after wrong levels error.
1261
1262 2014-03-08 Adam Butcher <adam@jessamine.co.uk>
1263
1264 PR c++/60033
1265 * pt.c (tsubst_copy): When retrieving a capture pack from a generic
1266 lambda, remove the lambda's own template argument list prior to fetching
1267 the specialization.
1268
1269 PR c++/60393
1270 * parser.c (cp_parser_parameter_declaration_clause): Move generic
1271 function template unwinding on error into a more general location, ...
1272 (cp_parser_skip_to_end_of_statement): ... here.
1273
1274 2014-03-07 Jason Merrill <jason@redhat.com>
1275
1276 * Make-lang.in (check_g++_parallelize): Split dg.exp.
1277
1278 * parser.c (cp_parser_type_id_1): Only allow 'auto' in C++1y if
1279 we're in a trailing return type.
1280
1281 * typeck.c (comp_template_parms_position): 'auto' and
1282 'decltype(auto)' are different from real template parms.
1283
1284 * parser.c (cp_parser_using_declaration): Consume the semicolon
1285 after bare parameter pack error.
1286
1287 * cp-tree.h (REF_PARENTHESIZED_P): New.
1288 * semantics.c (force_paren_expr): Set it.
1289 * pt.c (do_auto_deduction): Check it.
1290 (tsubst) [COMPONENT_REF]: Copy it.
1291 * typeck.c (maybe_warn_about_useless_cast): Don't strip dereference.
1292
1293 * decl.c (create_array_type_for_decl): Only warn about invalid
1294 C++1y VLA if flag_iso or warn_vla>0.
1295 (grokdeclarator): Likewise.
1296 * pt.c (tsubst): Likewise.
1297 * semantics.c (finish_decltype_type): Likewise.
1298 * typeck.c (cxx_sizeof_or_alignof_type): Likewise.
1299 (cp_build_addr_expr_1): Likewise.
1300 * init.c (build_new_1): Improve diagnostics.
1301
1302 2014-03-07 Paolo Carlini <paolo.carlini@oracle.com>
1303
1304 PR c++/58609
1305 * decl.c (check_initializer): Return NULL_TREE after error;
1306 consistently use inform.
1307
1308 2014-03-07 Paolo Carlini <paolo.carlini@oracle.com>
1309
1310 * decl.c (check_initializer): Remove dead code.
1311
1312 2014-03-06 Marek Polacek <polacek@redhat.com>
1313
1314 PR c/60197
1315 * typeck.c (check_return_expr): Call contains_cilk_spawn_stmt instead
1316 of checking tree code.
1317
1318 2014-03-06 Paolo Carlini <paolo.carlini@oracle.com>
1319
1320 * parser.c (cp_lexer_set_source_position): New.
1321 (cp_parser_mem_initializer): Use it.
1322 (cp_parser_postfix_open_square_expression): Likewise.
1323 (cp_parser_parenthesized_expression_list): Likewise.
1324 (cp_parser_new_initializer): Likewise.
1325 (cp_parser_jump_statement): Likewise.
1326 (cp_parser_initializer): Likewise.
1327 (cp_parser_functional_cast): Likewise.
1328
1329 2014-03-05 Jason Merrill <jason@redhat.com>
1330
1331 PR c++/60409
1332 * semantics.c (force_paren_expr): Only add a PAREN_EXPR to a
1333 dependent expression.
1334
1335 PR c++/60361
1336 * parser.c (cp_parser_template_id): Don't set up a CPP_TEMPLATE_ID
1337 if re-parsing might succeed.
1338 * semantics.c (finish_id_expression): Use of a parameter outside
1339 the function body is a parse error.
1340
1341 * parser.c (cp_parser_mem_initializer): Set input_location
1342 properly for init-list warning.
1343 (cp_parser_postfix_open_square_expression): Likewise.
1344 (cp_parser_parenthesized_expression_list): Likewise.
1345 (cp_parser_new_initializer): Likewise.
1346 (cp_parser_jump_statement): Likewise.
1347 (cp_parser_initializer): Likewise.
1348 (cp_parser_functional_cast): Likewise.
1349
1350 2014-03-04 Jason Merrill <jason@redhat.com>
1351
1352 PR c++/60417
1353 * typeck2.c (process_init_constructor_record): Set
1354 CONSTRUCTOR_IS_DIRECT_INIT on {} for omitted initializers.
1355
1356 PR c++/60415
1357 PR c++/54359
1358 * parser.c (cp_parser_direct_declarator): Set declarator to
1359 cp_error_declarator on invalid qualified-id.
1360
1361 2014-03-04 Paolo Carlini <paolo.carlini@oracle.com>
1362
1363 PR c++/60376
1364 * parser.c (cp_parser_using_declaration): Early return when
1365 cp_parser_nested_name_specifier errors out.
1366
1367 2014-03-01 Adam Butcher <adam@jessamine.co.uk>
1368
1369 PR c++/60377
1370 * parser.c (cp_parser_parameter_declaration_clause): Unwind generic
1371 function scope on parse error in function parameter list.
1372
1373 2014-03-01 Paolo Carlini <paolo.carlini@oracle.com>
1374
1375 * method.c (implicitly_declare_fn): Remove redundant
1376 DECL_TEMPLATE_RESULT and STRIP_TEMPLATE uses.
1377 * semantics.c (is_instantiation_of_constexpr): Likewise.
1378 * error.c (dump_function_decl): Likewise.
1379
1380 2014-03-01 Jason Merrill <jason@redhat.com>
1381
1382 PR c++/60379
1383 * semantics.c (begin_maybe_infinite_loop): Use
1384 fold_non_dependent_expr_sfinae.
1385
1386 2014-02-28 Jason Merrill <jason@redhat.com>
1387
1388 PR c++/58845
1389 * typeck.c (cp_build_binary_op): Sorry on vector&&vector.
1390
1391 2014-02-28 Paolo Carlini <paolo.carlini@oracle.com>
1392
1393 PR c++/58610
1394 * cp-tree.h (DECL_DELETED_FN): Use LANG_DECL_FN_CHECK.
1395 * call.c (print_z_candidate): Remove STRIP_TEMPLATE use.
1396 * lambda.c (maybe_add_lambda_conv_op): Likewise.
1397
1398 2014-02-27 Paolo Carlini <paolo.carlini@oracle.com>
1399
1400 PR c++/60253
1401 * call.c (convert_arg_to_ellipsis): Return error_mark_node after
1402 error_at.
1403
1404 2014-02-27 Jason Merrill <jason@redhat.com>
1405
1406 PR c++/60353
1407 PR c++/55877
1408 * decl2.c (tentative_decl_linkage): Don't mess with functions that
1409 are not yet defined.
1410
1411 2014-02-26 Jason Merrill <jason@redhat.com>
1412
1413 PR c++/60347
1414 PR lto/53808
1415 * class.c (clone_function_decl): Don't note_vague_linkage_fn.
1416 * init.c (build_vtbl_address): Do it here.
1417
1418 PR c++/59231
1419 PR c++/11586
1420 PR c++/14710
1421 PR c++/57132
1422 * pt.c (struct warning_sentinel): New.
1423 (tsubst_copy_and_build): Use it instead of
1424 c_inhibit_evaluation_warnings.
1425 * typeck.c (maybe_warn_about_useless_cast): Remove
1426 c_inhibit_evaluation_warnings check.
1427
1428 PR c++/54440
1429 * pt.c (get_template_parm_index): New.
1430 (fixed_parameter_pack_p_1, fixed_parameter_pack_p): New.
1431 (process_template_parm): Allow bare packs in template template
1432 parm template parms.
1433 (coerce_template_parameter_pack): Handle fixed template template
1434 parm packs and fixed packs not at the end of the parm list.
1435 (coerce_template_parms): Handle template parm packs not at the end
1436 of the parm list.
1437 (gen_elem_of_pack_expansion_instantiation): Handle a decl expansion.
1438
1439 PR c++/60182
1440 * pt.c (unify): Ignore alias templates when deducing a template
1441 template parameter.
1442
1443 PR c++/60345
1444 Revert:
1445 DR 1571
1446 * call.c (reference_binding): Recurse on user-defined conversion.
1447 (convert_like_real) [ck_ref_bind]: Explain cv-qual mismatch.
1448
1449 2014-02-25 Jason Merrill <jason@redhat.com>
1450
1451 DR 1571
1452 * call.c (reference_binding): Recurse on user-defined conversion.
1453 (convert_like_real) [ck_ref_bind]: Explain cv-qual mismatch.
1454
1455 * call.c (print_conversion_rejection): Handle n_arg of -2.
1456 (build_user_type_conversion_1): Pass it.
1457
1458 PR c++/55877
1459 * decl2.c (no_linkage_error): Handle C++98 semantics.
1460 (reset_type_linkage): Move from decl.c.
1461 (reset_type_linkage_1, reset_type_linkage_2, bt_reset_linkage_1)
1462 (bt_reset_linkage_2, reset_decl_linkage): New.
1463 (tentative_decl_linkage): Factor out of expand_or_defer_fn_1.
1464 (cp_write_global_declarations): Move condition into no_linkage_error.
1465 * decl.c (grokfndecl, grokvardecl): Use no_linkage_error.
1466 * semantics.c (expand_or_defer_fn_1): Factor out
1467 tentative_decl_linkage.
1468 * cp-tree.h: Adjust.
1469
1470 * decl2.c (finish_static_data_member_decl): Diagnose static data
1471 member in unnamed class.
1472 * class.c (finish_struct_anon_r): Avoid redundant diagnostic.
1473
1474 PR lto/53808
1475 * class.c (clone_function_decl): Call note_vague_linkage_fn for
1476 defaulted virtual dtor.
1477
1478 DR 1286
1479 PR c++/60328
1480 * pt.c (get_underlying_template): Fix equivalence calculation.
1481
1482 2014-02-25 Adam Butcher <adam@jessamine.co.uk>
1483
1484 PR c++/60311
1485 * parser.c (function_being_declared_is_template_p): Return false when
1486 processing a template parameter list.
1487 (cp_parser_parameter_declaration_clause): Don't set
1488 auto_is_implicit_function_template_parm_p when processing a
1489 template parameter list.
1490
1491 * parser.c (synthesize_implicit_template_parm): Inject new template
1492 argument list appropriately when a generic member function
1493 of a class template is declared out-of-line.
1494
1495 PR c++/60065
1496 * parser.c (cp_parser_direct_declarator): Don't save and
1497 restore num_template_parameter_lists around call to
1498 cp_parser_parameter_declaration_list.
1499 (function_being_declared_is_template_p): New predicate.
1500 (cp_parser_parameter_declaration_list): Use
1501 function_being_declared_is_template_p as predicate for
1502 inspecting current function template parameter list length
1503 rather than num_template_parameter_lists.
1504
1505 2014-02-24 Jason Merrill <jason@redhat.com>
1506
1507 PR c++/60146
1508 * pt.c (tsubst_omp_for_iterator): Don't let substitution of the
1509 DECL_EXPR initialize a non-class iterator.
1510
1511 PR c++/60312
1512 * parser.c (cp_parser_template_type_arg): Check for invalid 'auto'.
1513
1514 2014-02-21 Jason Merrill <jason@redhat.com>
1515
1516 PR c++/58170
1517 * parser.c (cp_parser_type_name): Always check dependency.
1518 (cp_parser_type_specifier_seq): Call
1519 cp_parser_parse_and_diagnose_invalid_type_name.
1520
1521 PR c++/60108
1522 * semantics.c (expand_or_defer_fn_1): Check DECL_DEFAULTED_FN.
1523
1524 PR c++/60185
1525 * parser.c (cp_parser_default_argument): Clear
1526 current_class_ptr/current_class_ref like tsubst_default_argument.
1527
1528 PR c++/60252
1529 * lambda.c (maybe_resolve_dummy): Check lambda_function rather
1530 than current_binding_level.
1531
1532 PR c++/60186
1533 * typeck2.c (massage_init_elt): Call fold_non_dependent_expr_sfinae.
1534
1535 PR c++/60187
1536 * parser.c (cp_parser_enum_specifier): Call
1537 check_for_bare_parameter_packs.
1538
1539 PR c++/59347
1540 * pt.c (tsubst_decl) [TYPE_DECL]: Don't try to instantiate an
1541 erroneous typedef.
1542
1543 PR c++/60241
1544 * pt.c (lookup_template_class_1): Update DECL_TEMPLATE_INSTANTIATIONS
1545 of the partial instantiation, not the most general template.
1546 (maybe_process_partial_specialization): Reassign everything on
1547 that list.
1548
1549 PR c++/60216
1550 * pt.c (register_specialization): Copy DECL_DELETED_FN to clones.
1551 (check_explicit_specialization): Don't clone.
1552
1553 PR c++/60219
1554 * pt.c (coerce_template_parms): Bail if argument packing fails.
1555
1556 PR c++/60224
1557 * decl.c (cp_complete_array_type, maybe_deduce_size_from_array_init):
1558 Don't get confused by a CONSTRUCTOR that already has a type.
1559
1560 PR c++/60227
1561 * call.c (build_array_conv): Don't crash on VLA.
1562
1563 PR c++/60248
1564 * mangle.c (mangle_decl): Don't make an alias for a TYPE_DECL.
1565
1566 PR c++/60252
1567 * lambda.c (maybe_resolve_dummy): Don't try to capture this
1568 in declaration context.
1569
1570 DR 1591
1571 PR c++/60051
1572 * pt.c (unify): Only unify if deducible. Handle 0-length list.
1573
1574 PR c++/60250
1575 * parser.c (cp_parser_direct_declarator): Don't wrap a
1576 type-dependent expression in a NOP_EXPR.
1577
1578 PR c++/60251
1579 * lambda.c (is_normal_capture_proxy): Handle VLA capture.
1580
1581 PR c++/60167
1582 PR c++/60222
1583 PR c++/58606
1584 * parser.c (cp_parser_template_argument): Restore dereference.
1585 * pt.c (template_parm_to_arg): Dereference non-pack expansions too.
1586 (process_partial_specialization): Handle deref.
1587 (unify): Likewise.
1588
1589 2014-02-21 Adam Butcher <adam@jessamine.co.uk>
1590
1591 PR c++/60052
1592 PR c++/60053
1593 * parser.c (cp_parser_parameter_declaration_list): Correctly reset
1594 implicit_template_scope upon leaving an out-of-line generic member
1595 function definition.
1596
1597 2014-02-20 Kai Tietz <ktietz@redhat.com>
1598
1599 PR c++/58873
1600 * parser.c (cp_parser_functional_cast): Treat NULL_TREE
1601 valued type argument as error_mark_node.
1602
1603 PR c++/58835
1604 * semantics.c (finish_fname): Handle error_mark_node.
1605
1606 2014-02-19 Jason Merrill <jason@redhat.com>
1607
1608 PR c++/60046
1609 * pt.c (maybe_instantiate_noexcept): Don't instantiate exception
1610 spec from template context.
1611
1612 2014-02-19 Jakub Jelinek <jakub@redhat.com>
1613
1614 PR debug/56563
1615 * cp-objcp-common.c (cp_function_decl_explicit_p): Remove
1616 FUNCTION_FIRST_USER_PARMTYPE (decl) != void_list_node check.
1617
1618 PR c++/60267
1619 * pt.c (tsubst_expr): Handle ANNOTATE_EXPR.
1620
1621 2014-02-18 Paolo Carlini <paolo.carlini@oracle.com>
1622
1623 PR c++/60225
1624 * semantics.c (ensure_literal_type_for_constexpr_object): Use
1625 strip_array_types.
1626
1627 2014-02-18 Paolo Carlini <paolo.carlini@oracle.com>
1628
1629 PR c++/60215
1630 * semantics.c (cxx_eval_constant_expression, [COMPONENT_REF]):
1631 During error recovery allow_non_constant may be false.
1632
1633 2014-02-18 Adam Butcher <adam@jessamine.co.uk>
1634
1635 PR c++/60190
1636 * parser.c (cp_parser_lambda_declarator_opt): Pop template parameter
1637 scope whenever a template parameter list has been started, independent
1638 of whether the function call operator was well-formed or not.
1639
1640 PR c++/60064
1641 * parser.c (cp_parser_member_declaration): Pop fully implicit template
1642 scope for generic friend declarations as well as for non-friends.
1643
1644 2014-02-12 Paolo Carlini <paolo.carlini@oracle.com>
1645
1646 PR c++/60047
1647 * method.c (implicitly_declare_fn): A constructor of a class with
1648 virtual base classes isn't constexpr (7.1.5p4).
1649
1650 2014-02-05 Jan Hubicka <hubicka@ucw.cz
1651
1652 * parser.c (synthesize_implicit_template_parm): Use grow_tree_vec.
1653
1654 2014-02-05 Jakub Jelinek <jakub@redhat.com>
1655
1656 PR c++/58703
1657 * parser.c (cp_parser_omp_declare_reduction): Save and free
1658 declarator_obstack.
1659
1660 2014-02-03 Marc Glisse <marc.glisse@inria.fr>
1661
1662 PR c++/53017
1663 PR c++/59211
1664 * tree.c (handle_init_priority_attribute): Call default_conversion on
1665 the attribute argument.
1666
1667 2014-02-03 Paolo Carlini <paolo.carlini@oracle.com>
1668
1669 PR c++/58871
1670 * method.c (synthesized_method_walk): If vbases is non-null but
1671 is_empty is true, likewise don't worry about the virtual bases.
1672
1673 2014-02-01 Paolo Carlini <paolo.carlini@oracle.com>
1674
1675 PR c++/51219
1676 * typeck2.c (process_init_constructor_record): Just skip unnamed
1677 bit-fields.
1678
1679 2014-01-31 Jason Merrill <jason@redhat.com>
1680
1681 PR c++/59469
1682 * pt.c (mark_decl_instantiated): Call mark_needed.
1683
1684 PR c++/58672
1685 * decl2.c (handle_tls_init): Handle null init fn.
1686
1687 PR c++/55800
1688 * decl2.c (get_tls_init_fn): Copy DECL_EXTERNAL from the variable.
1689
1690 2014-01-31 Paolo Carlini <paolo.carlini@oracle.com>
1691
1692 PR c++/59082
1693 * class.c (build_vfield_ref): Early return error_mark_node if
1694 TYPE_VFIELD (type) is null.
1695 (build_base_path): Check return value of build_vfield_ref.
1696
1697 2014-01-31 Jason Merrill <jason@redhat.com>
1698
1699 PR c++/59646
1700 * call.c (convert_like_real) [ck_aggr]: Set TARGET_EXPR_LIST_INIT_P.
1701 [ck_list]: Check for error_mark_node.
1702 (build_aggr_conv): Set LOOKUP_NO_NARROWING and check_narrowing.
1703
1704 PR c++/57043
1705 * pt.c (fn_type_unification): Don't do DEDUCE_EXACT check
1706 during partial ordering.
1707
1708 2014-01-31 Marek Polacek <polacek@redhat.com>
1709
1710 PR c/59963
1711 * typeck.c (build_function_call_vec): Add dummy arg_loc parameter.
1712
1713 2014-01-30 Jason Merrill <jason@redhat.com>
1714
1715 PR c++/57899
1716 * cp-tree.h (struct saved_scope): Add x_local_specializations.
1717 (local_specializations): New macro.
1718 * pt.c (local_specializations): Remove variable.
1719
1720 2014-01-30 Richard Sandiford <rdsandiford@googlemail.com>
1721
1722 PR c++/58708
1723 * parser.c (make_string_pack): Use double_int::from_buffer.
1724
1725 2014-01-30 Marek Polacek <polacek@redhat.com>
1726
1727 PR c/59940
1728 * typeck.c (build_ptrmemfunc1): Call convert_and_check with
1729 input_location.
1730 * cvt.c (cp_convert_and_check): Call warnings_for_convert_and_check
1731 with input_location.
1732 * call.c (build_conditional_expr_1): Call unsafe_conversion_p with
1733 loc parameter.
1734
1735 2014-01-30 Paolo Carlini <paolo.carlini@oracle.com>
1736
1737 PR c++/58843
1738 * typeck.c (lookup_destructor): Check dtor_type for error_mark_node.
1739
1740 2014-01-30 Paolo Carlini <paolo.carlini@oracle.com>
1741
1742 PR c++/58649
1743 * pt.c (lookup_template_class_1): Check start_enum return value
1744 for error_mark_node.
1745
1746 2014-01-30 Paolo Carlini <paolo.carlini@oracle.com>
1747
1748 * decl.c (duplicate_decls, typename_hash, typename_compare):
1749 Use TYPE_IDENTIFIER.
1750 * error.c (dump_type): Likewise.
1751 * mangle.c (dump_substitution_candidates): Likewise.
1752
1753 2014-01-30 Jason Merrill <jason@redhat.com>
1754
1755 PR c++/59633
1756 * decl2.c (attributes_naming_typedef_ok): New.
1757 * cp-tree.h: Declare it.
1758 * decl.c (grokdeclarator): Check it.
1759 * tree.c (no_linkage_check): Handle VECTOR_TYPE.
1760
1761 2014-01-29 Jason Merrill <jason@redhat.com>
1762
1763 PR c++/59707
1764 * call.c (add_builtin_candidate): Catch dependent types.
1765
1766 PR c++/59989
1767 * pt.c (expand_template_argument_pack): Correct
1768 non_default_args_count calculation.
1769
1770 PR c++/58466
1771 * pt.c (unify_pack_expansion): Call expand_template_argument_pack.
1772
1773 PR c++/59956
1774 * friend.c (do_friend): Pass the TEMPLATE_DECL to add_friend if we
1775 have a friend template in a class template.
1776 * pt.c (tsubst_friend_function): Look through it.
1777 (push_template_decl_real): A friend member template is
1778 primary.
1779
1780 2014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
1781
1782 PR c++/58846
1783 * decl.c (get_dso_handle_node): Don't crash if dso_handle_node
1784 == error_mark_node.
1785
1786 2014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
1787
1788 PR c++/58674
1789 * pt.c (instantiate_template_1): Check for error_mark_node the second
1790 argument too.
1791
1792 2014-01-29 Jason Merrill <jason@redhat.com>
1793
1794 PR c++/59916
1795 * optimize.c (maybe_thunk_body): Build a RETURN_EXPR for
1796 cdtor_returns_this case.
1797
1798 PR c++/59315
1799 * decl.c (cxx_maybe_build_cleanup): Call mark_used.
1800
1801 2014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
1802
1803 PR c++/58702
1804 * semantics.c (finish_omp_reduction_clause): Check type for
1805 error_mark_node.
1806
1807 2014-01-28 Jason Merrill <jason@redhat.com>
1808
1809 PR c++/59791
1810 * pt.c (tsubst_decl) [VAR_DECL]: Allow in unevaluated context.
1811 (tsubst_copy): Use it if lookup fails.
1812
1813 PR c++/59818
1814 * pt.c (tsubst_function_type): Make sure we keep the same function
1815 quals.
1816
1817 PR c++/58701
1818 * semantics.c (build_anon_member_initialization): Stop walking
1819 when we run out of COMPONENT_REFs.
1820
1821 PR c++/58632
1822 * decl.c (lookup_and_check_tag): Ignore template parameters if
1823 scope == ts_current.
1824 * pt.c (check_template_shadow): Don't complain about the injected
1825 class name.
1826
1827 * decl.c (duplicate_decls): Tweak.
1828
1829 PR c++/53756
1830 * mangle.c (write_unqualified_name): Handle operator auto.
1831
1832 2014-01-27 Jason Merrill <jason@redhat.com>
1833
1834 PR c++/59823
1835 Core DR 1138
1836 * call.c (reference_binding): Pass LOOKUP_NO_TEMP_BIND for
1837 list-initialization. A conversion to rvalue ref that involves
1838 an lvalue-rvalue conversion is bad.
1839 (convert_like_real): Give helpful error message.
1840
1841 PR c++/54652
1842 * decl.c (duplicate_decls): Always use oldtype for TYPE_DECL.
1843
1844 PR c++/58504
1845 * pt.c (tsubst_copy_and_build) [TRAIT_EXPR]: Use tsubst for
1846 types.
1847
1848 PR c++/58606
1849 * pt.c (template_parm_to_arg): Call convert_from_reference.
1850 (tsubst_template_arg): Don't strip reference refs.
1851
1852 PR c++/58639
1853 * call.c (build_aggr_conv): Reject value-initialization of reference.
1854
1855 PR c++/58812
1856 PR c++/58651
1857 * call.c (convert_like_real): Give helpful error about excess braces
1858 for ck_rvalue of scalar type.
1859
1860 Core DR 1288
1861 * call.c (reference_binding): Only elide braces if the single
1862 element is reference-related.
1863
1864 PR c++/58814
1865 * typeck.c (cp_build_modify_expr): Make the RHS an rvalue before
1866 stabilizing.
1867
1868 PR c++/58837
1869 * typeck.c (cp_truthvalue_conversion): Use explicit comparison for
1870 FUNCTION_DECL.
1871
1872 PR c++/59097
1873 * decl.c (compute_array_index_type): Don't call
1874 maybe_constant_value for a non-integral expression.
1875
1876 2014-01-24 Balaji V. Iyer <balaji.v.iyer@intel.com>
1877
1878 * call.c (magic_varargs_p): Replaced flag_enable_cilkplus with
1879 flag_cilkplus.
1880 * cp-gimplify.c (cp_genericize): Likewise.
1881 * decl.c (grokfndecl): Likewise.
1882 * parser.c (cp_parser_postfix_expression): Likewise.
1883 (cp_parser_postfix_open_square_expression): Likewise.
1884 (cp_parser_direct_declarator): Likewise.
1885 (is_cilkplus_vector_p): Likewise.
1886 (cp_parser_omp_clause_name): Likewise.
1887 (cp_parser_omp_all_clauses): Likewise.
1888 * pt.c (apply_late_template_attributes): Likewise.
1889 * typeck.c (cp_build_array_ref): Likewise.
1890 (cp_build_compound_expr): Likewise.
1891 (check_return_expr): Likewise.
1892
1893 2014-01-24 Jason Merrill <jason@redhat.com>
1894
1895 PR c++/58550
1896 * decl.c (grokdeclarator): Turn pedwarn about auto return type in
1897 c++11 into error.
1898
1899 PR c++/59886
1900 PR c++/59659
1901 * typeck2.c (process_init_constructor_array): Don't create
1902 RANGE_EXPR yet.
1903
1904 2014-01-24 Jakub Jelinek <jakub@redhat.com>
1905
1906 * typeck2.c (split_nonconstant_init_1): Fix num_split_elts
1907 handling for RANGE_ARRAY case.
1908
1909 2014-01-24 Paolo Carlini <paolo.carlini@oracle.com>
1910
1911 PR c++/57524
1912 * name-lookup.c (push_using_directive): Use timevar_cond_start.
1913
1914 2014-01-23 Marek Polacek <polacek@redhat.com>
1915
1916 PR c/59846
1917 * typeck.c (cp_build_binary_op): Pass location to shorten_compare.
1918
1919 2014-01-23 Marek Polacek <polacek@redhat.com>
1920
1921 PR c/58346
1922 * typeck.c (pointer_diff): Give an error on arithmetic on pointer to
1923 an empty aggregate.
1924
1925 2014-01-23 Jason Merrill <jason@redhat.com>
1926
1927 PR c++/55189
1928 * cp-tree.h (struct language_function): Add infinite_loop and
1929 infinite_loops.
1930 (current_function_infinite_loop): New.
1931 * semantics.c (begin_maybe_infinite_loop, end_maybe_infinite_loop)
1932 (break_maybe_infinite_loop): New.
1933 (finish_while_stmt_cond, finish_while_stmt, begin_do_stmt)
1934 (finish_do_stmt, finish_for_cond, finish_for_stmt)
1935 (begin_range_for_stmt): Use them.
1936 * decl.c (finish_function): Don't warn about missing return
1937 if current_function_infinite_loop.
1938 * pt.c (instantiate_decl): Copy current_function_infinite_loop.
1939 * parser.c (cp_parser_jump_statement): Call break_maybe_infinite_loop.
1940
1941 * call.c (build_op_delete_call): Use make_tree_vector and
1942 release_tree_vector.
1943
1944 2014-01-23 Paolo Carlini <paolo.carlini@oracle.com>
1945
1946 PR c++/58980
1947 * parser.c (cp_parser_enum_specifier): Handle TYPENAME_TYPE as
1948 nested_name_specifier.
1949
1950 2014-01-23 Balaji V. Iyer <balaji.v.iyer@intel.com>
1951
1952 * parser.c (cp_parser_direct_declarator): When Cilk Plus is enabled
1953 see if there is an attribute after function decl. If so, then
1954 parse them now.
1955 (cp_parser_late_return_type_opt): Handle parsing of Cilk Plus SIMD
1956 enabled function late parsing.
1957 (cp_parser_gnu_attribute_list): Parse all the tokens for the vector
1958 attribute for a SIMD-enabled function.
1959 (cp_parser_omp_all_clauses): Skip parsing to the end of pragma when
1960 the function is used by SIMD-enabled function (indicated by NULL
1961 pragma token). Added 3 new clauses: PRAGMA_CILK_CLAUSE_MASK,
1962 PRAGMA_CILK_CLAUSE_NOMASK and PRAGMA_CILK_CLAUSE_VECTORLENGTH
1963 (cp_parser_cilk_simd_vectorlength): Modified this function to handle
1964 vectorlength clause in SIMD-enabled function and #pragma SIMD's
1965 vectorlength clause. Added a new bool parameter to differentiate
1966 between the two.
1967 (cp_parser_cilk_simd_fn_vector_attrs): New function.
1968 (is_cilkplus_vector_p): Likewise.
1969 (cp_parser_late_parsing_elem_fn_info): Likewise.
1970 (cp_parser_omp_clause_name): Added a check for "mask", "nomask"
1971 and "vectorlength" clauses when Cilk Plus is enabled.
1972 (cp_parser_omp_clause_linear): Added a new parameter of type bool
1973 and emit a sorry message when step size is a parameter.
1974 * parser.h (cp_parser::cilk_simd_fn_info): New field.
1975 * decl.c (grokfndecl): Added flag_enable_cilkplus along with
1976 flag_openmp.
1977 * pt.c (apply_late_template_attributes): Likewise.
1978
1979 2014-01-23 Jakub Jelinek <jakub@redhat.com>
1980
1981 PR middle-end/58809
1982 * semantics.c (finish_omp_reduction_clause): Reject
1983 BIT_AND_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR on COMPLEX_TYPEs.
1984
1985 2014-01-22 Ville Voutilainen <ville.voutilainen@gmail.com>
1986
1987 PR c++/59482
1988 * parser.c (cp_parser_class_head): Push the class before parsing
1989 the base-clause, pop after it.
1990
1991 2014-01-20 Eric Botcazou <ebotcazou@adacore.com>
1992
1993 * decl2.c (cpp_check): Revert prototype change.
1994
1995 2014-01-17 Paolo Carlini <paolo.carlini@oracle.com>
1996
1997 PR c++/59270
1998 PR c++/58811
1999 * init.c (build_value_init_noctor): Don't pass error_mark_node to
2000 build_value_init.
2001
2002 2014-01-17 Paolo Carlini <paolo.carlini@oracle.com>
2003
2004 PR c++/59269
2005 * init.c (build_value_init_noctor): Assert !TYPE_HAS_COMPLEX_DFLT
2006 only when errorcount == 0.
2007
2008 2014-01-17 Marek Polacek <polacek@redhat.com>
2009
2010 PR c++/59838
2011 * cvt.c (ocp_convert): Don't segfault on non-existing
2012 ENUM_UNDERLYING_TYPE.
2013
2014 2014-01-16 Jason Merrill <jason@redhat.com>
2015
2016 PR c++/59821
2017 * tree.c (bot_manip): Update the location of builtin_LINE and
2018 builtin_FILE calls.
2019
2020 2014-01-14 Jason Merrill <jason@redhat.com>
2021
2022 PR c++/59659
2023 * typeck2.c (massage_init_elt): New.
2024 (process_init_constructor_record)
2025 (process_init_constructor_union): Use it.
2026 (process_init_constructor_array): Use it. Use RANGE_EXPR.
2027 (split_nonconstant_init_1): Handle it.
2028 * semantics.c (cxx_eval_vec_init_1): Use force_rvalue.
2029
2030 2014-01-09 Balaji V. Iyer <balaji.v.iyer@intel.com>
2031
2032 PR c++/59631
2033 * parser.c (cp_parser_postfix_expression): Added a new if-statement
2034 and replaced an existing if-statement with else-if statement.
2035 Changed an existing error message wording to match the one from the C
2036 parser.
2037
2038 2014-01-08 Jason Merrill <jason@redhat.com>
2039
2040 PR c++/59614
2041 * class.c (abi_tag_data): Add tags field.
2042 (check_abi_tags): Initialize it.
2043 (find_abi_tags_r): Support collecting missing tags.
2044 (mark_type_abi_tags): Don't look at template args.
2045 (inherit_targ_abi_tags): New.
2046 (check_bases_and_members): Use it.
2047 * cp-tree.h (ABI_TAG_IMPLICIT): New.
2048 * mangle.c (write_abi_tags): Check it.
2049
2050 2014-01-07 Jason Merrill <jason@redhat.com>
2051
2052 PR c++/58856
2053 * pt.c (num_innermost_template_parms): New.
2054 (get_underlying_template): Use it.
2055
2056 PR c++/58965
2057 * mangle.c (write_guarded_var_name): Handle null DECL_NAME.
2058
2059 2014-01-07 Paolo Carlini <paolo.carlini@oracle.com>
2060
2061 * semantics.c (trait_expr_value, [CPTK_IS_BASE_OF]): Implement
2062 the letter of 20.11.6 about Base and Derived naming the same
2063 class type modulo cv-qualifiers.
2064
2065 2014-01-06 Adam Butcher <adam@jessamine.co.uk>
2066
2067 PR c++/59635
2068 * lambda.c (maybe_add_lambda_conv_op): Handle marking conversion
2069 function as unimplemented for generic lambdas with varargs.
2070
2071 PR c++/59636
2072 * parser.c (cp_parser_template_parameter): Early out with
2073 error_mark_node if parameter declaration was not parsed.
2074
2075 PR c++/59629
2076 * parser.c (cp_parser_lambda_expression): Save/reset/restore
2077 auto_is_implicit_function_template_parm_p around lambda body.
2078
2079 PR c++/59638
2080 * parser.c (cp_parser_init_declarator): Undo fully implicit
2081 template parameter list when declarator is not a function.
2082
2083 2014-01-03 Marc Glisse <marc.glisse@inria.fr>
2084
2085 PR c++/58950
2086 * cvt.c (convert_to_void): Handle VEC_PERM_EXPR and VEC_COND_EXPR.
2087
2088 2014-01-03 Tobias Burnus <burnus@net-b.de>
2089
2090 PR c++/58567
2091 * pt.c (tsubst_omp_for_iterator): Early return for error_mark_node.
2092
2093 2014-01-03 Paolo Carlini <paolo.carlini@oracle.com>
2094
2095 Core DR 1442
2096 PR c++/59165
2097 * parser.c (cp_parser_perform_range_for_lookup): Don't pass true
2098 as include_std to perform_koenig_lookup.
2099 (cp_parser_postfix_expression): Adjust.
2100 * pt.c (tsubst_copy_and_build): Likewise.
2101 * semantics.c (perform_koenig_lookup): Remove bool parameter.
2102 (omp_reduction_lookup): Adjust.
2103 * name-lookup.c (lookup_arg_dependent_1): Remove bool parameter.
2104 (lookup_arg_dependent): Likewise.
2105 (lookup_function_nonclass): Adjust.
2106 * name-lookup.h: Adjust declaration.
2107 * cp-tree.h: Likewise.
2108
2109 2014-01-02 Marc Glisse <marc.glisse@inria.fr>
2110
2111 PR c++/59087
2112 * parser.c (cp_parser_userdef_numeric_literal): Mention
2113 -fext-numeric-literals in the message.
2114
2115 2014-01-02 Marc Glisse <marc.glisse@inria.fr>
2116
2117 PR c++/59641
2118 * call.c (build_conditional_expr_1): Check the return value of
2119 force_rvalue.
2120
2121 2014-01-02 Marc Glisse <marc.glisse@inria.fr>
2122
2123 * call.c (convert_like_real): Check complain.
2124
2125 2014-01-02 Marc Glisse <marc.glisse@inria.fr>
2126
2127 PR c++/59378
2128 * typeck.c (build_x_vec_perm_expr): Handle non-dependent arguments
2129 in templates.
2130
2131 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
2132
2133 Update copyright years
2134
2135 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
2136
2137 * cp-array-notation.c, cp-cilkplus.c, vtable-class-hierarchy.c: Use
2138 the standard form for the copyright notice.
2139 \f
2140 Copyright (C) 2014 Free Software Foundation, Inc.
2141
2142 Copying and distribution of this file, with or without modification,
2143 are permitted in any medium without royalty provided the copyright
2144 notice and this notice are preserved.