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