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