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