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