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