gcc/
[official-gcc.git] / gcc / cp / ChangeLog
blobfe312364ccc884a05197cd8e0ac90c347047bcb1
1 2014-09-15  Jakub Jelinek  <jakub@redhat.com>
3         * Make-lang.in (check_g++_parallelize): Change to just an upper bound
4         number.
6 2014-09-13  Marek Polacek  <polacek@redhat.com>
8         PR c++/60862
9         * parser.c (cp_parser_postfix_expression) <case CPP_OPEN_PAREN>: Set
10         location of a call expression.
12 2014-09-11  Jason Merrill  <jason@redhat.com>
14         PR c++/63201
15         * decl.c (start_decl): Handle specialization of member variable
16         template.
17         * pt.c (check_explicit_specialization): Adjust error.
19 2014-09-11  Paolo Carlini  <paolo.carlini@oracle.com>
21         PR c++/61489
22         * typeck2.c (process_init_constructor_record): Do not warn about
23         missing field initializer if EMPTY_CONSTRUCTOR_P (init).
25 2014-09-11  Jason Merrill  <jason@redhat.com>
27         PR c++/63139
28         * pt.c (tsubst_pack_expansion): Simplify substitution into T....
29         (tsubst): Don't throw away PACK_EXPANSION_EXTRA_ARGS.
31 2014-09-10  Jason Merrill  <jason@redhat.com>
33         PR c++/61659
34         * decl.c (grokfndecl): Don't set DECL_COMDAT on static inlines.
35         (duplicate_decls, start_decl): Likewise.
36         * pt.c (check_explicit_specialization): Likewise.
37         (push_template_decl_real): Or static templates.
39 2014-09-08  Jason Merrill  <jason@redhat.com>
41         * typeck.c (build_class_member_access_expr): Move
42         -Winvalid-offsetof code...
43         * semantics.c (finish_offsetof): ...here.
44         * parser.c (cp_parser_builtin_offsetof): Remember the location of
45         the type argument.
46         * pt.c (tsubst_copy_and_build) [OFFSETOF_EXPR]: Preserve it.
48         PR c++/62255
49         * pt.c (instantiate_decl): Handle recursive instantiation of
50         static data member.
52 2014-09-05  Jason Merrill  <jason@redhat.com>
54         PR c++/62659
55         * semantics.c (potential_constant_expression_1): Handle un-folded
56         pointer to member constants.
58 2014-09-04  Markus Trippelsdorf  <markus@trippelsdorf.de>
60         PR ipa/61659
61         * decl.c (duplicate_decls): Check DECL_DECLARED_INLINE_P on
62         newdecl, not olddecl.
64 2014-09-02  Paolo Carlini  <paolo.carlini@oracle.com>
66         DR 1453
67         * class.c (check_field_decls): A class of literal type cannot have
68         volatile non-static data members and base classes.
69         (explain_non_literal_class): Update.
71 2014-09-02  Jakub Jelinek  <jakub@redhat.com>
72             Balaji V. Iyer  <balaji.v.iyer@intel.com>
73             Igor Zamyatin  <igor.zamyatin@intel.com>
75         * cp-cilkplus.c (cpp_validate_cilk_plus_loop_aux): Loc definition
76         simplified.
77         * parser.c (cp_parser_cilk_for): New function.
78         (cp_parser_cilk_grainsize): Likewise.
79         (cp_parser_statement): Added RID_CILK_FOR case.
80         (cp_parser_omp_for_cond): Added CILK_FOR check.
81         (cp_parser_omp_for_loop_init): Change function argument to accept
82         tree_code instead just a bool flag; change the check to use that
83         tree_code; check for initialization declaration in case of Cilk_for.
84         (cp_parser_omp_for_loop): Added checks for CILK_FOR and RID_CILK_FOR;
85         changed call to cp_parser_omp_for_loop_init according new arguments'
86         list.
87         (cp_parser_pragma): Added PRAGMA_CILK_GRAINSIZE case.
88         * pt.c (tsubst_expr): Added CILK_FOR case.
89         * semantics.c: Include convert.h.
90         (finish_omp_clauses): Properly handle OMP_CLAUSE_SCHEDULE_CILKFOR
91         case; added OMP_CLAUSE__CILK_FOR_COUNT_.
92         (handle_omp_for_class_iterator): New argument lastp and its usage;
93         added NE_EXPR case.
94         (finish_omp_for): Changed call to handle_omp_for_class_iterator
95         according new arguments' list; in case of Cilk_for save very first
96         decl and create empty stmt_list block; use block to build correct
97         statement tree.
99 2014-08-31  Jason Merrill  <jason@redhat.com>
101         PR c++/62302
102         * optimize.c (cdtor_comdat_group): Just look at the
103         DECL_ASSEMBLER_NAME of the 'tors.
105 2014-08-27  Paolo Carlini  <paolo.carlini@oracle.com>
107         PR c++/52892
108         * semantics.c (cxx_eval_call_expression): Use STRIP_NOPS on the
109         result of cxx_eval_constant_expression.
111 2014-08-26  Jason Merrill  <jason@redhat.com>
113         PR c++/58624
114         * pt.c (tsubst_decl) [VAR_DECL]: Copy TLS model.
115         (tsubst_copy_and_build) [VAR_DECL]: Use TLS wrapper.
116         * semantics.c (finish_id_expression): Don't call TLS wrapper in a
117         template.
119 2014-08-25  Jason Merrill  <jason@redhat.com>
121         * pt.c (check_explicit_specialization): Don't complain about
122         non-template variable.
123         (template_for_substitution): Allow variable templates.
124         (check_template_variable): Fix logic for member var template.
125         * decl.c (start_decl): Don't complain about extra template header
126         here.
128         * decl.c (start_decl): Look through member variable template.
129         * pt.c (tsubst_decl) [VAR_DECL]: Handle member variable templates.
130         * decl2.c (grokfield): Set DECL_CONTEXT earlier on
131         variables.
133 2014-08-25  Paolo Carlini  <paolo.carlini@oracle.com>
135         PR c++/34938
136         * cp-tree.h (TFF_POINTER): Add.
137         * cxx-pretty-print.h (pp_cxx_cv_qualifiers): Forward the third
138         argument too.
139         * error.c (dump_type_suffix): Actually print the const and noreturn
140         attribute when appropriate.
142 2014-08-23  Edward Smith-Rowland  <3dw4rd@verizon.net>
144         * decl.c (compute_array_index_type, grokdeclarator,
145         undeduced_auto_decl): Change from cxx1y to cxx14.
146         *lambda.c(add_capture()): Change error message from C++1y to C++14.
147         * parser.c (cp_parser_unqualified_id, cp_parser_pseudo_destructor_name,
148         cp_parser_lambda_introducer, cp_parser_lambda_declarator_opt,
149         cp_parser_decltype, cp_parser_conversion_type_id,
150         cp_parser_simple_type_specifier, cp_parser_type_id_1,
151         cp_parser_template_type_arg, cp_parser_std_attribute,
152         cp_parser_template_declaration_after_export): Ditto.
153         * pt.c (tsubst): Ditto.
154         * semantics.c (force_paren_expr, finish_decltype_type): Ditto.
155         * tree.c: Change comment.
156         * typeck.c (comp_template_parms_position, cxx_sizeof_or_alignof_type,
157         cp_build_addr_expr_1, maybe_warn_about_useless_cast): Ditto.
159 2014-08-23  Jason Merrill  <jason@redhat.com>
161         Allow non-constexpr variable templates.
162         * decl2.c (note_variable_template_instantiation): New.
163         * cp-tree.h: Declare it.
164         * pt.c (instantiate_decl): Call it.
165         (push_template_decl_real): Allow non-constexpr variable templates.
166         * semantics.c (finish_id_expression): Mark the variable template
167         instantiation as used.
168         * mangle.c (write_mangled_name): Variable template instantiations
169         are mangled.
170         * parser.c (cp_parser_init_declarator): Complain about
171         non-function implicit templates.
173 2014-08-22  Marek Polacek  <polacek@redhat.com>
175         PR c++/62199
176         * parser.c (cp_parser_binary_expression): Check each LHS if it's
177         preceded with logical not.  Adjust call to
178         warn_logical_not_parentheses.
180 2014-08-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
182         PR c++/57709
183         * name-lookup.c (pushdecl_maybe_friend_1): Do not warn if a
184         declaration shadows a function declaration, unless the former
185         declares a function, pointer to function or pointer to member
186         function, because this is a common and valid case in real-world
187         code.
188         * cp-tree.h (TYPE_PTRFN_P,TYPE_REFFN_P,TYPE_PTRMEMFUNC_P):
189         Improve description.
191 2014-08-22  Jason Merrill  <jason@redhat.com>
193         PR c++/62129
194         * class.c (outermost_open_class): Fix logic.
195         * decl.c (complete_vars): Fix logic.
197 2014-08-22  Jason Merrill  <jason@redhat.com>
199         PR c++/62129
200         * class.c (outermost_open_class): New.
201         * cp-tree.h: Declare it.
202         * decl.c (maybe_register_incomplete_var): Use it.
203         (complete_vars): Handle any constant variable.
204         * expr.c (cplus_expand_constant): Handle CONSTRUCTOR.
206 2014-08-22  Igor Zamyatin  <igor.zamyatin@intel.com>
208         PR other/62008
209         * cp-array-notation.c (build_array_notation_ref): Added correct
210         handling of case with incorrect array.
212 2014-08-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
214         PR fortran/44054
215         * error.c (cp_diagnostic_finalizer): Delete.
216         (init_error): Do not set diagnostic_finalizer here.
218 2014-08-19  Marek Polacek  <polacek@redhat.com>
220         PR c++/62153
221         * call.c (build_new_op_1): Remember the type of arguments for
222         a comparison.  If either operand of a comparison is a boolean
223         expression, call maybe_warn_bool_compare.
225 2014-08-19  Jason Merrill  <jason@redhat.com>
227         PR tree-optimization/62091
228         * decl2.c (decl_needed_p): Return true for virtual functions when
229         devirtualizing.
231         PR lto/53808
232         PR c++/61659
233         * decl.c (maybe_commonize_var): Don't use DECL_COMDAT to trigger
234         comdat_linkage.
236 2014-08-19  Gerald Pfeifer  <gerald@pfeifer.com>
238         * class.c (contains_empty_class_p): Remove.
240 2014-08-18  Paolo Carlini  <paolo.carlini@oracle.com>
242         * parser.c (cp_parser_expression): Add default arguments.
243         (cp_parser_primary_expression, cp_parser_postfix_expression,
244         cp_parser_array_notation, cp_parser_postfix_open_square_expression,
245         cp_parser_unary_expression, cp_parser_direct_new_declarator,
246         cp_parser_question_colon_clause, cp_parser_assignment_operator_opt,
247         cp_parser_lambda_body, cp_parser_expression_statement,
248         cp_parser_condition, cp_parser_c_for, cp_parser_range_for,
249         cp_parser_iteration_statement, cp_parser_jump_statement,
250         cp_parser_decltype_expr, cp_parser_noexcept_specification_opt,
251         cp_parser_asm_operand_list, cp_parser_objc_message_receiver,
252         cp_parser_objc_synchronized_statement, cp_parser_objc_throw_statement,
253         cp_parser_omp_var_list_no_open, cp_parser_omp_clause_num_threads,
254         cp_parser_omp_clause_num_teams, cp_parser_omp_clause_thread_limit,
255         cp_parser_omp_clause_linear, cp_parser_omp_clause_device,
256         cp_parser_omp_atomic, cp_parser_omp_for_loop_init,
257         cp_parser_omp_for_loop, cp_parser_omp_declare_reduction_exprs,
258         cp_parser_transaction_expression): Adjust.
260 2014-08-15  Jason Merrill  <jason@redhat.com>
262         PR c++/61566
263         * pt.c (lookup_template_class_1): Revert recent change.
264         * mangle.c (CLASSTYPE_TEMPLATE_ID_P): Revert recent change.
266         PR c++/61566
267         * pt.c (instantiate_class_template_1): Ignore lambda on
268         CLASSTYPE_DECL_LIST.
269         (push_template_decl_real): A lambda is not primary.
270         (lookup_template_class_1): Don't look for a lambda partial
271         instantiation.
272         * lambda.c (maybe_add_lambda_conv_op): Distinguish between being
273         currently in a function and the lambda living in a function.
274         * mangle.c (CLASSTYPE_TEMPLATE_ID_P): False for lambda.
276 2014-08-15  Richard Biener  <rguenther@suse.de>
277             Jason Merrill  <jason@redhat.com>
279         PR bootstrap/62077
280         * tree.c (build_min_array_type, set_array_type_canon): Split out...
281         (build_cplus_array_type): ...from here.  Only call build_array_type
282         for main variants.
284 2014-08-15  Paolo Carlini  <paolo.carlini@oracle.com>
286         PR c++/62072
287         Revert:
288         2014-07-09  Paolo Carlini  <paolo.carlini@oracle.com>
290         DR 1584
291         PR c++/57466
292         * pt.c (check_cv_quals_for_unify): Implement resolution, disregard
293         cv-qualifiers of function types.
295 2014-08-15  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
297         * call.c (build_conditional_expr_1): Use OPT_Wextra in warning.
299 2014-08-14  Paolo Carlini  <paolo.carlini@oracle.com>
301         * typeck.c (composite_pointer_type, cxx_sizeof_or_alignof_type,
302         cp_build_array_ref, cp_build_function_call_vec): When a
303         pedwarn is suppressed under SFINAE, return error_mark_node.
305         * typeck.c (cxx_sizeof_or_alignof_type): Fix complain &
306         tf_warning_or_error, where complain is a bool, glitch.
308 2014-08-14  Ville Voutilainen  <ville.voutilainen@gmail.com>
310         PR c++/62101
311         * decl.c (grokdeclarator): Move the check for friend initializers..
312         * decl2.c (grokfield) ..here. Postpone early return for friends
313         until after the initializer check.
315 2014-08-14  Paolo Carlini  <paolo.carlini@oracle.com>
317         PR c++/54377
318         * pt.c (coerce_template_parms): Improve error message vs default
319         arguments.
321 2014-08-14  Paolo Carlini  <paolo.carlini@oracle.com>
323         * parser.c (cp_parser_init_declarator): Remove redundant check of
324         decl_specifiers->type.
326 2014-08-13  Jason Merrill  <jason@redhat.com>
328         * call.c (build_x_va_arg): Support passing non-POD through ....
329         (convert_arg_to_ellipsis): Likewise.
331 2014-08-13  Andrew Sutton  <andrew.n.sutton@gmail.com>
333         * pt.c (lookup_template_variable): Make dependent variable templates
334         have unknown type.
336 2014-08-13  Paolo Carlini  <paolo.carlini@oracle.com>
338         * parser.c (cp_parser_elaborated_type_specifier): Handle
339         specially cp_parser_template_id returning a BASELINK.
341 2014-08-13  Paolo Carlini  <paolo.carlini@oracle.com>
343         * parser.c (cp_parser_diagnose_invalid_type_name,
344         cp_parser_make_typename_type): Remove scope parameter.
345         (cp_parser_parse_and_diagnose_invalid_type_name,
346         cp_parser_elaborated_type_specifier): Adjust calls.
348 2014-08-12  Ville Voutilainen  <ville.voutilainen@gmail.com>
350         Reject virt-specifiers on friends and member templates
351         * friend.c (do_friend): Diagnose virt-specifiers.
352         * pt.c (push_template_decl_real): Diagnose virt-specifiers.
354 2014-08-09  Paolo Carlini  <paolo.carlini@oracle.com>
356         * typeck2.c (check_narrowing): Add tsubst_flags_t parameter, change
357         return type to bool; in C++11 for constants give errors, not pedwarns.
358         * cp-tree.h (check_narrowing): Adjust declaration.
359         * call.c (convert_like_real): Update calls.
360         * semantics.c (finish_compound_literal): Likewise.
362 2014-08-08  Jason Merrill  <jason@redhat.com>
364         * pt.c (lookup_template_class_1): Copy abi_tag.
366 2014-08-08  Kai Tietz  <ktietz@redhat.com>
368         * semantics.c (expand_or_defer_fn_1): Check for keep-inline-dllexport
369         that we operate on a true inline.
371 2014-08-07  Trevor Saunders  <tsaunders@mozilla.com>
373         * class.c, cp-gimplify.c, decl.c, decl2.c, error.c, method.c,
374         optimize.c, pt.c, semantics.c: Remove includes of pointer-set.h.
376 2014-08-07  Paolo Carlini  <paolo.carlini@oracle.com>
378         PR c++/51312
379         * decl.c (build_enumerator): Handle class types with conversion
380         operators via perform_implicit_conversion_flags and
381         build_expr_type_conversion.
383         * cvt.c (build_expr_type_conversion): Replace pair of errors
384         with error + inform.
386 2014-08-07  Jason Merrill  <jason@redhat.com>
388         PR c++/62043
389         * parser.c (c_parse_file): Change sorry to fatal_error.
391         PR c++/61959
392         * semantics.c (cxx_eval_bare_aggregate): Handle POINTER_PLUS_EXPR.
394 2014-08-07  Trevor Saunders  <tsaunders@mozilla.com>
396         * cp-tree.h, pt.c: Use hash_map instead of pointer_map.
398 2014-08-06  Jason Merrill  <jason@redhat.com>
400         * init.c (build_vec_init): Fix constant initialization of
401         trailing elements.
402         (build_value_init_noctor): Call maybe_constant_init.
403         * semantics.c (maybe_constant_init): See through EXPR_STMT and
404         conversion to void.
406         PR c++/60417
407         * init.c (build_vec_init): Reorganize earlier change a bit.
409         PR c++/61994
410         * init.c (build_vec_init): Leave atype an ARRAY_TYPE
411         if we're just returning an INIT_EXPR.
413 2014-08-06  Jason Merrill  <jason@redhat.com>
414             Braden Obrzut  <admin@maniacsvault.net>
416         * pt.c (check_explicit_specialization): Don't test
417         DECL_DECLARED_INLINE_P for a variable template.
419 2014-08-06  Paolo Carlini  <paolo.carlini@oracle.com>
421         PR c++/43906
422         * typeck.c (cp_build_binary_op): Extend to more cases the
423         -Waddress warning.
425 2014-08-01  Braden Obrzut  <admin@maniacsvault.net>
427         Implement constexpr variable templates
428         * decl.c (grokvardecl): Handle specializations of variable templates.
429         (grokdeclarator): Handle variable template id expressions and NULL_TREE
430         return from grokvardecl.
431         * decl2.c (check_member_template): Allow declaration of template member
432         variables.
433         * parser.c (cp_parser_template_id): Build a TEMPLATE_ID_EXPR for
434         variable templates.
435         * pt.c (check_template_variable): Accept variable temploids at
436         non-class scope.
437         (push_template_decl_real): The current instantiation of a template
438         can be a VAR_DECL.
439         (determine_specialization): Accept variable templates.
440         (check_explicit_specialization): Handle and check for malformed
441         variable template specializations.
442         (lookup_template_variable): New.
443         (tsubst_decl): Handle variable template specializations.
444         (do_decl_instantiation): Handle template variables.
445         (instantiate_decl): Handle template variables.
446         * semantics.c (finish_template_variable): New.
447         (finish_id_expression): Instantiate variable templates.
448         * cp-tree.h (variable_template_p): New.
450 2014-08-02  Paolo Carlini  <paolo.carlini@oracle.com>
452         PR c++/15339
453         * decl.c (check_redeclaration_no_default_args): New.
454         (duplicate_decls): Use it, handle default arguments
455         in redeclarations of function templates.
457 2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
459         * optimize.c, semantics.c: Use hash_map instead of pointer_map.
461 2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
463         * class.c, cp-gimplify.c, cp-tree.h, decl.c, decl2.c, error.c,
464         method.c, name-lookup.c, pt.c, semantics.c, tree.c: Use hash_set
465         instead of pointer_set.
467 2014-08-01  Jason Merrill  <jason@redhat.com>
469         PR c++/60417
470         * init.c (build_vec_init): Set CONSTRUCTOR_IS_DIRECT_INIT on
471         init-list for trailing elements.
472         * typeck2.c (process_init_constructor_array): Likewise.
474 2014-08-01  Paolo Carlini  <paolo.carlini@oracle.com>
476         DR 217 again
477         * decl.c (duplicate_decls): Handle static member functions too.
479 2014-08-01  Igor Zamyatin  <igor.zamyatin@intel.com>
481         * cp-array-notation.c (expand_an_in_modify_expr): Fix the misprint
482         in error output.
484 2014-08-01  Igor Zamyatin  <igor.zamyatin@intel.com>
486         PR other/61963
487         * parser.c (cp_parser_array_notation): Added check for array_type.
489 2014-08-01  Igor Zamyatin  <igor.zamyatin@intel.com>
491         PR middle-end/61455
492         * cp-array-notation.c (expand_array_notation_exprs): Handling of
493         DECL_EXPR improved. Changed handling for INIT_EXPR.
495 2014-08-01  Paolo Carlini  <paolo.carlini@oracle.com>
497         * pt.c (lookup_template_class_1): Use DECL_TYPE_TEMPLATE_P.
499 2014-08-01  Jakub Jelinek  <jakub@redhat.com>
501         * cp-gimplify.c (cp_genericize_r): For -fsanitize=null and/or
502         -fsanitize=alignment call ubsan_maybe_instrument_reference
503         for casts to REFERENCE_TYPE and ubsan_maybe_instrument_member_call
504         for calls to member functions.
506 2014-07-31  Marc Glisse  <marc.glisse@inria.fr>
508         PR c++/60517
509         * typeck.c (maybe_warn_about_returning_address_of_local): Return
510         whether it is returning the address of a local variable.
511         (check_return_expr): Return 0 instead of the address of a local
512         variable.
514 2014-07-30  Jason Merrill  <jason@redhat.com>
516         PR lto/53808
517         PR c++/61659
518         * pt.c (push_template_decl_real): Don't set DECL_COMDAT on friends.
520 2014-07-30  Paolo Carlini  <paolo.carlini@oracle.com>
522         PR c++/57397
523         * pt.c (unify_arity): Add boolean parameter.
524         (unify_too_few_arguments): Likewise.
525         (type_unification_real): Diagnose correctly insufficient
526         arguments in the presence of trailing variadic parameters;
527         deducing multiple trailing packs as empty is fine.
529 2014-07-30  Jason Merrill  <jason@redhat.com>
531         PR c++/61659
532         PR c++/61687
533         Revert:
534         * decl2.c (mark_all_virtuals): New variable.
535         (maybe_emit_vtables): Check it instead of flag_devirtualize.
536         (cp_write_global_declarations): Set it and give helpful diagnostic
537         if it introduces errors.
538         * class.c (finish_struct_1): Check it.
540         PR lto/53808
541         PR c++/61659
542         * pt.c (push_template_decl_real): Set DECL_COMDAT on templates.
543         (check_explicit_specialization): Clear it on specializations.
544         * decl.c (duplicate_decls, start_decl): Likewise.
545         (grokmethod, grokfndecl): Set DECL_COMDAT on inlines.
546         * method.c (implicitly_declare_fn): Set DECL_COMDAT.  Determine
547         linkage after setting the appropriate flags.
548         * tree.c (decl_linkage): Don't check DECL_COMDAT.
549         * decl2.c (mark_needed): Mark clones.
550         (import_export_decl): Not here.
552 2014-07-25  Edward Smith-Rowland  <3dw4rd@verizon.net>
554         Implement N4051 - Allow typename in a template template parameter
555         * parser.c (cp_parser_type_parameter_key): New funtion;
556         (cp_parser_token_is_type_parameter_key): Ditto;
557         (cp_parser_type_parameter): Look for type-parameter-key for all versions
558         but pedwarn for less than cxx1z.
560 2014-07-17  Paolo Carlini  <paolo.carlini@oracle.com>
562         PR c++/50961
563         * call.c (standard_conversion): Use resolve_nondeduced_context
564         for type_unknown_p (EXPR) && TREE_CODE (TO) == BOOLEAN_TYPE.
566 2014-07-17  Paolo Carlini  <paolo.carlini@oracle.com>
568         PR c++/61804
569         * parser.c (cp_parser_tokens_start_cast_expression): Return -1
570         for '++' and '--'.
572 2014-07-15  Jason Merrill  <jason@redhat.com>
574         PR c++/61811
575         * decl2.c (maybe_emit_vtables): Return true for -fuse-all-virtuals.
577         PR c++/60848
578         PR c++/61723
579         * call.c (is_std_init_list): Don't check CLASSTYPE_TEMPLATE_INFO.
580         * class.c (finish_struct): Reject invalid definition of
581         std::initializer_list.
583 2014-07-15  Paolo Carlini  <paolo.carlini@oracle.com>
585         * call.c (convert_like_real): Call print_z_candidate and inform only
586         if permerror returns true.
588 2014-07-14  Jan Hubicka  <hubicka@ucw.cz>
590         * class.c (build_clone): Do not clear assembler names of
591         templates.
592         * decl.c (cp_tree_node_structure): Add TEMPLATE_DECL.
593         * cp-objcp-common.c (cp_tree_size): Add TEMPLATE_DECL
594         as a special case return sizeof (struct tree_decl_non_common)
595         for other decls.
596         (cp_common_init_ts): Do not initialize NAMESPACE_DECL;
597         initialize TEMPLATE_DECL as MARK_TS_DECL_COMMON.
598         * cp/cp-tree.h (tree_template_decl): New structure.
599         (cp_tree_node_structure_enum): Add TS_CP_TEMPLATE_DECL.
600         (union cp_lang_tree_node): Add template_decl.
601         (DECL_TEMPLATE_PARMS, DECL_TEMPLATE_RESULT): Update.
603 2014-07-14  Jason Merrill  <jason@redhat.com>
605         PR c++/61445
606         PR c++/56947
607         * pt.c (instantiate_decl): Don't check defer_ok for local class
608         members.
610 2014-07-14  Jakub Jelinek  <jakub@redhat.com>
612         PR middle-end/61294
613         * cp-tree.h (LITERAL_ZERO_P): Define.
614         * parser.c (cp_parser_parenthesized_expression_list): Add
615         want_literal_zero_p argument, if true, for literal zeros
616         insert INTEGER_CSTs with LITERAL_ZERO_P flag set.
617         (cp_parser_postfix_expression): Adjust
618         cp_parser_parenthesized_expression_list caller, handle
619         -Wmemset-transposed-args.
620         (literal_zeros): New variable.
622 2014-07-13  Jason Merrill  <jason@redhat.com>
624         PR c++/58511
625         * semantics.c (is_instantiation_of_constexpr): Return true for
626         defaulted functions, too.
627         (explain_invalid_constexpr_fn): Only use
628         explain_implicit_non_constexpr if !DECL_DECLARED_CONSTEXPR_P.
629         * method.c (explain_implicit_non_constexpr): Pass
630         DECL_INHERITED_CTOR_BASE to explain_implicit_non_constexpr.
632         PR c++/58611
633         * decl.c (check_initializer): Don't finish_compound_literal
634         on erroneous constexpr init.
636         PR c++/58612
637         * tree.c (bot_replace): Only replace a dummy 'this' parm.
639         PR c++/60628
640         * decl.c (create_array_type_for_decl): Only check for auto once.
642         PR c++/58636
643         * call.c (build_list_conv): Don't try to build a list of references.
645 2014-07-13  Edward Smith-Rowland  <3dw4rd@verizon.net>
647         PR C++/60209 - Declaration of user-defined literal operator cause error
648         * parser.c (cp_parser_operator): Fold treatment of strings
649         and user-defined string literals.  Use the full string parser.
650         (cp_parser_string_literal): Add flag to not look for literal operator.
652 2014-07-11  Jason Merrill  <jason@redhat.com>
654         PR c++/22434
655         PR c++/61288
656         * call.c (build_conditional_expr_1): Avoid reading freed memory.
658 2014-07-11  Paolo Carlini  <paolo.carlini@oracle.com>
660         PR c++/53159
661         * call.c (build_user_type_conversion_1): Copy LOOKUP_NO_NARROWING
662         into convflags.
663         * decl.c (check_initializer): Don't call check_narrowing here,
664         set LOOKUP_NO_NARROWING.
665         * typeck2.c (digest_init_r): Likewise.
667 2014-07-10  Jason Merrill  <jason@redhat.com>
669         PR c++/61661
670         * semantics.c (reduced_constant_expression_p): Handle CONSTRUCTOR.
672         PR c++/61659
673         PR c++/61687
674         * decl2.c (mark_all_virtuals): New variable.
675         (maybe_emit_vtables): Check it instead of flag_devirtualize.
676         (cp_write_global_declarations): Set it and give helpful diagnostic
677         if it introduces errors.
678         * class.c (finish_struct_1): Check it.
679         * decl.c (grokdeclarator): Clear virtualp after 'virtual auto' error.
681 2014-07-09  Paolo Carlini  <paolo.carlini@oracle.com>
683         PR c++/60686
684         * decl.c (grokdeclarator): Adjust error messages about 'explicit'
685         outside class declaration, in friend declaration, and neither on
686         constructor nor conversion operator.
688 2014-07-09  Paolo Carlini  <paolo.carlini@oracle.com>
690         DR 1584
691         PR c++/57466
692         * pt.c (check_cv_quals_for_unify): Implement resolution, disregard
693         cv-qualifiers of function types.
695 2014-07-09  Andrew Sutton  <andrew.n.sutton@gmail.com>
696             Paolo Carlini  <paolo.carlini@oracle.com>
698         PR c++/59361
699         * parser.c (cp_parser_tokens_start_cast_expression): Return 0 for
700         CPP_ELLIPSIS too.
702 2014-07-07  Paolo Carlini  <paolo.carlini@oracle.com>
704         * class.c (check_for_override): Wrap the 'final' and 'override'
705         keywords in %< and %>.
707 2014-07-06  Marek Polacek  <polacek@redhat.com>
709         PR c/6940
710         * cp-tree.h (DECL_ARRAY_PARAMETER_P): Define.
711         * decl.c (grokdeclarator): Set DECL_ARRAY_PARAMETER_P.
712         * typeck.c (cxx_sizeof_expr): Warn when using sizeof on an array
713         function parameter.
715 2014-07-02  Paolo Carlini  <paolo.carlini@oracle.com>
717         * pt.c (convert_template_argument): Use inform instead of error in
718         three places.
720 2014-06-30  Edward Smith-Rowland  <3dw4rd@verizon.net>
722         PR c++/58781
723         PR c++/60249
724         PR c++/59867
725         * parser.c (cp_parser_userdef_string_literal): Take a tree
726         not a cp_token*.
727         (cp_parser_string_literal): Don't hack the token stream.
729 2014-06-30  Jason Merrill  <jason@redhat.com>
731         PR c++/61659
732         PR lto/53808
733         * decl2.c (maybe_emit_vtables): Mark all vtable entries if
734         devirtualizing.
735         * init.c (build_vtbl_address): Don't mark destructor.
736         * class.c (finish_struct_1): Add all classes to keyed_classes
737         if devirtualizing.
739         PR c++/61647
740         * pt.c (type_dependent_expression_p): Check BASELINK_OPTYPE.
742         PR c++/61566
743         * mangle.c (decl_mangling_context): Look through a TEMPLATE_DECL.
745         * decl.c (build_ptrmemfunc_type): Don't give a PMF RECORD_TYPE
746         TYPE_BINFO or TYPE_LANG_SPECIFIC.
747         * cp-tree.h (TYPE_PTRMEMFUNC_FLAG): Use TYPE_LANG_FLAG_2.
748         (TYPE_PTRMEMFUNC_P): Don't expect TYPE_LANG_SPECIFIC.
749         * typeck.c (build_ptrmemfunc_access_expr): Don't use lookup_member.
750         * pt.c (unify): Also check whether the argument is a PMF.
752 2014-06-30  Paolo Carlini  <paolo.carlini@oracle.com>
754         PR c++/54891
755         * parser.c (cp_parser_tokens_start_cast_expression): In C++11
756         a '[' can also start a primary-expression.
757         (cp_parser_cast_expression): Parse a cast-expression only tentatively
758         when cp_parser_tokens_start_cast_expression returns -1.
760 2014-06-30  Jason Merrill  <jason@redhat.com>
762         PR c++/61539
763         * pt.c (unify_one_argument): Type/expression mismatch just causes
764         deduction failure.
766         * semantics.c (simplify_aggr_init_expr): Remove remnants of
767         2014-04-11 change.
769 2014-06-30  Marek Polacek  <polacek@redhat.com>
771         * cp-gimplify.c (cp_genericize): Don't instrument returns if the
772         function has no_sanitize_undefined attribute.
773         * decl.c (compute_array_index_type): Don't instrument VLAs if the
774         function has no_sanitize_undefined attribute.
776 2014-06-30  Igor Zamyatin  <igor.zamyatin@intel.com>
778         PR middle-end/57541
779         * cp-array-notation.c (expand_sec_reduce_builtin):
780         Check that bultin argument is correct.
781         * call.c (build_cxx_call): Check for 0 arguments in builtin call.
783 2014-06-28  Jonathan Wakely  <jwakely@redhat.com>
785         DR 1579
786         PR c++/58051
787         * typeck.c (check_return_expr): Lookup as an rvalue even when the
788         types aren't the same.
790 2014-06-27  Jason Merrill  <jason@redhat.com>
792         PR c++/61433
793         * error.c (dump_template_bindings): Don't tsubst in a clone.
795 2014-06-27  Paolo Carlini  <paolo.carlini@oracle.com>
797         PR c++/61614
798         * semantics.c (finish_compound_literal): Revert r204228.
800 2014-06-27  Paolo Carlini  <paolo.carlini@oracle.com>
802         * parser.c (cp_parser_compound_literal_p): New.
803         (cp_parser_postfix_expression, cp_parser_sizeof_operand): Use it.
805 2014-06-26  Jason Merrill  <jason@redhat.com>
807         * parser.c (cp_parser_for_init_statement): Change range-for error
808         to pedwarn.
810         N3994 Ranged-based for-loops: The Next Generation
811         * parser.c (cp_lexer_nth_token_is): New.
812         (cp_parser_for_init_statement): Allow "for (id : init)".
814 2014-06-26  Teresa Johnson  <tejohnson@google.com>
816         * class.c (dump_class_hierarchy): Use saved dump files.
817         (dump_vtable): Ditto.
818         (dump_vtt): Ditto.
820 2014-06-26  Adam Butcher  <adam@jessamine.co.uk>
822         PR c++/61537
823         * parser.c (cp_parser_elaborated_type_specifier): Only consider template
824         parameter lists outside of function parameter scope.
826 2014-06-25  Paolo Carlini  <paolo.carlini@oracle.com>
828         DR 178
829         PR c++/49132
830         * typeck2.c (process_init_constructor_record): Do not complain about
831         uninitialized const members, because within aggregate-initialization,
832         members without explicit initializers are value-initialized.
834 2014-06-25  Jakub Jelinek  <jakub@redhat.com>
836         * semantics.c (finish_omp_clauses): Make sure
837         OMP_CLAUSE_LINEAR_STEP has correct type.
839 2014-06-24  Jan Hubicka  <hubicka@ucw.cz>
841         * class.c (check_methods, create_vtable_ptr, determine_key_method,
842         add_vcall_offset_vtbl_entries_1): Guard VINDEX checks by
843         FUNCTION_DECL check.
844         * cp-tree.h (lang_decl_ns): Add ns_using and ns_users.
845         (DECL_NAMESPACE_USING, DECL_NAMESPACE_USERS): Use lang_decl_ns.
846         (DECL_NAMESPACE_ASSOCIATIONS): Use DECL_INITIAL.
847         (DECL_TEMPLATE_INSTANTIATIONS): Use DECL_SIZE_UNIT.
849 2014-06-24  Paolo Carlini  <paolo.carlini@oracle.com>
851         PR c++/33972
852         * decl.c (grokdeclarator): Do not early check for operator-function-id
853         as non-function.
855 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
857         * class.c, semantics.c, tree.c, vtable-class-hierarchy.c:
858         Adjust.
860 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
862         * parser.c (cp_parser_omp_for_loop): For
863         #pragma omp parallel for simd move lastprivate clause from parallel
864         to for rather than simd.
866 2014-06-23  Paolo Carlini  <paolo.carlini@oracle.com>
868         DR 577
869         PR c++/33101
870         * decl.c (grokparms): Accept a single parameter of type 'void'.
872 2014-06-20  Jason Merrill  <jason@redhat.com>
874         PR c++/59296
875         * call.c (add_function_candidate): Avoid special 'this' handling
876         if we have a ref-qualifier.
878         PR c++/61556
879         * call.c (build_over_call): Call build_this in template path.
881 2014-06-19  Jason Merrill  <jason@redhat.com>
883         PR c++/59296
884         * call.c (add_function_candidate): Also set LOOKUP_NO_TEMP_BIND.
886 2014-06-18  Jason Merrill  <jason@redhat.com>
888         PR c++/59296
889         * call.c (add_function_candidate): Set LOOKUP_NO_RVAL_BIND for
890         ref-qualifier handling.
892         PR c++/61507
893         * pt.c (resolve_overloaded_unification): Preserve
894         ARGUMENT_PACK_EXPLICIT_ARGS.
896 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
898         * cp-gimplify.c (cxx_omp_finish_clause): Add a gimple_seq *
899         argument.
900         * cp-tree.h (cxx_omp_finish_clause): Adjust prototype.
902 2014-06-17  Jason Merrill  <jason@redhat.com>
904         PR c++/60605
905         * pt.c (check_default_tmpl_args): Check DECL_LOCAL_FUNCTION_P.
907 2014-06-15  Jason Merrill  <jason@redhat.com>
909         PR c++/61488
910         * pt.c (check_valid_ptrmem_cst_expr): Fix for template context.
912         PR c++/61500
913         * tree.c (lvalue_kind): Handle MEMBER_REF and DOTSTAR_EXPR.
915 2014-06-15  Jan Hubicka  <hubicka@ucw.cz>
917         * decl.c (grokvardecl): Fix pasto in previous patch.
919 2014-06-15  Jan Hubicka  <hubicka@ucw.cz>
921         * decl.c (duplicate_decls): Use set_decl_tls_model.
922         (grokdeclarator): Likewise.
923         * semantics.c (finish_id_expression): Check TLS only for
924         static variables.
925         (finish_omp_threadprivate): Use decl_default_tls_model.
926         * decl2.c (get_guard): Likewise.
927         * call.c (make_temporary_var_for_ref_to_temp): Likewise.
929 2014-06-14  Paolo Carlini  <paolo.carlini@oracle.com>
931         PR c++/33101
932         * decl.c (grokparms): Improve error message about void parameters.
933         * error.c (type_to_string): Fix aka cut off code.
935 2014-06-12  Jason Merrill  <jason@redhat.com>
937         * call.c (convert_arg_to_ellipsis): Use abi_version_crosses.
938         * cvt.c (type_promotes_to): Likewise.
939         * mangle.c (write_type, write_expression): Likewise.
940         (write_name, write_template_arg): Likewise.
941         (mangle_decl): Make alias based on flag_abi_compat_version.
942         Emit -Wabi warning here.
943         (finish_mangling_internal): Not here.  Drop warn parm.
944         (finish_mangling_get_identifier, finish_mangling): Adjust.
945         (mangle_type_string, mangle_special_for_type): Adjust.
946         (mangle_ctor_vtbl_for_type, mangle_thunk): Adjust.
947         (mangle_guard_variable, mangle_tls_init_fn): Adjust.
948         (mangle_tls_wrapper_fn, mangle_ref_init_variable): Adjust.
950         * call.c (build_operator_new_call): Remove -fabi-version=1 support.
951         * class.c (walk_subobject_offsets, include_empty_classes): Likewise.
952         (layout_nonempty_base_or_field, end_of_class): Likewise.
953         (layout_empty_base, build_base_field, layout_class_type): Likewise.
954         (is_empty_class, add_vcall_offset_vtbl_entries_1): Likewise.
955         (layout_virtual_bases): Likewise.
956         * decl.c (compute_array_index_type): Likewise.
957         * mangle.c (write_mangled_name, write_prefix): Likewise.
958         (write_template_prefix, write_integer_cst, write_expression): Likewise.
959         (write_template_arg, write_array_type): Likewise.
960         * method.c (lazily_declare_fn): Likewise.
961         * rtti.c (get_pseudo_ti_index): Likewise.
962         * typeck.c (comp_array_types): Likewise.
964 2014-06-11  Jan Hubicka  <hubicka@ucw.cz>
966         * vtable-class-hierarchy.c: Update handling for section names
967         that are no longer trees.
968         * decl.c (duplicate_decls): Likewise.
970 2014-06-11  Paolo Carlini  <paolo.carlini@oracle.com>
972         PR c++/19200
973         * parser.c (cp_parser_init_declarator): Actually pass friend_p
974         to cp_parser_declarator.
976 2014-06-11  Paolo Carlini  <paolo.carlini@oracle.com>
978         PR c++/60265
979         * parser.c (cp_parser_using_declaration): Handle unscoped enums.
980         * name-lookup.c (validate_nonmember_using_decl): Adjust error
981         message.
983 2014-06-11  Paolo Carlini  <paolo.carlini@oracle.com>
985         PR c++/19200
986         * parser.c (cp_parser_declarator): Add bool parameter.
987         (cp_parser_direct_declarator): Likewise, use it.
988         (cp_parser_member_declaration): Pass friend_p to cp_parser_declarator.
989         (cp_parser_condition, cp_parser_explicit_instantiation,
990         cp_parser_init_declarator, cp_parser_type_id_1,
991         cp_parser_parameter_declaration, cp_parser_exception_declaration,
992         cp_parser_cache_defarg, cp_parser_objc_class_ivars,
993         cp_parser_objc_struct_declaration, cp_parser_omp_for_loop_init):
994         Adjust.
995         * decl.c (grokdeclarator): Fix handling of friend declared in
996         namespace scope (g++.dg/parse/friend10.C).
998 2014-06-10  Jan Hubicka  <hubicka@ucw.cz>
1000         * vtable-class-hierarchy.c: Use symtab_get_node (var_decl)
1001         ->implicit_section.
1002         * optimize.c (cdtor_comdat_group): Fix handling of aliases.
1003         (maybe_clone_body): Move symbol across comdat groups.
1004         * method.c (use_thunk): Copy implicit section flag.
1006 2014-06-09  Paolo Carlini  <paolo.carlini@oracle.com>
1008         PR c++/22556
1009         * name-lookup.c (pushdecl_maybe_friend_1): Use comptypes.
1011 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
1013         * method.c (use_thunk): Use set_decl_section_name.
1014         * optimize.c (maybe_clone_body): Use set_decl_section_name.
1015         * decl.c (duplicate_decls): Likewise.
1016         * vtable-class-hierarchy.c: Likewise.
1018 2014-06-06  Paolo Carlini  <paolo.carlini@oracle.com>
1020         PR c++/60184
1021         * class.c (check_field_decls): In C++11 mode do not reject
1022         static data members and reference-type members in unions.
1024 2014-06-05  Jason Merrill  <jason@redhat.com>
1026         PR c++/43453
1027         * decl.c (check_initializer): Collapse a TREE_LIST here.
1028         * typeck2.c (store_init_value): Not here.
1030 2014-06-05  Richard Biener  <rguenther@suse.de>
1031             Paolo Carlini  <paolo.carlini@oracle.com>
1033         PR c++/56961
1034         * cp-gimplify.c (cp_gimplify_expr, [MODIFY_EXPR]): Rework
1035         handling of empty classes.
1037 2014-06-04  Jason Merrill  <jason@redhat.com>
1039         * parser.c (cp_parser_diagnose_invalid_type_name): Give helpful note
1040         for noexcept and thread_local, too.
1042         PR c++/61343
1043         * decl.c (check_initializer): Maybe clear
1044         DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P.
1046 2014-06-05  Richard Biener  <rguenther@suse.de>
1048         PR c++/61004
1049         * typeck.c (cp_build_indirect_ref): Do not emit strict-aliasing
1050         warnings for accessing empty classes.
1052 2014-06-05  Marek Polacek  <polacek@redhat.com>
1054         PR c/49706
1055         * parser.c (cp_parser_binary_expression): Warn when logical not is
1056         used on the left hand side operand of a comparison.
1058 2014-06-04  Paolo Carlini  <paolo.carlini@oracle.com>
1060         PR c++/43453
1061         * typeck.c (cp_build_modify_expr): Handle array of characters
1062         initialized by a string literal.
1063         * decl.c (check_initializer): Handle parenthesized string literal
1064         as initializer.
1065         * typeck2.c (store_init_value): Remove redundant check.
1067 2014-06-04  Jason Merrill  <jason@redhat.com>
1069         PR c++/51253
1070         PR c++/61382
1071         * cp-gimplify.c (cp_gimplify_expr): Handle CALL_EXPR_LIST_INIT_P here.
1072         * semantics.c (simplify_aggr_init_expr): Not here, just copy it.
1074 2014-06-04  Igor Zamyatin  <igor.zamyatin@intel.com>
1076         PR c/58942
1077         * cp-array-notation.c (expand_sec_reduce_builtin): Handle the case
1078         with a pointer.
1080 2014-06-03  Paolo Carlini  <paolo.carlini@oracle.com>
1082         DR 1423
1083         PR c++/52174
1084         * call.c (standard_conversion): Convert nullptr to bool only
1085         in case of direct-initialization.
1086         (convert_like_real): Provide informative error message.
1088 2014-06-03  Marek Polacek  <polacek@redhat.com>
1090         PR c/60439
1091         * semantics.c (finish_switch_cond): Warn if switch condition has
1092         boolean value.
1094 2014-06-03  Jason Merrill  <jason@redhat.com>
1096         PR c++/60992
1097         * pt.c (tsubst_copy) [VAR_DECL]: Try lookup first.  Add a new
1098         variable to local_specializations.
1100         PR c++/60848
1101         * call.c (is_std_init_list): Check CLASSTYPE_TEMPLATE_INFO.
1103 2014-06-02  Jason Merrill  <jason@redhat.com>
1105         PR c++/61046
1106         * decl.c (reshape_init_class): Handle un-folded
1107         constant-expressions.
1109         PR c++/61134
1110         * pt.c (pack_deducible_p): Handle canonicalization.
1112 2014-06-02  Paolo Carlini  <paolo.carlini@oracle.com>
1114         * pt.c (tsubst_function_type): Initialize arg_types.
1116 2014-06-02  Siva Chandra Reddy  <sivachandra@google.com>
1118         PR debug/57519
1119         * class.c (handle_using_decl): Pass the correct scope to
1120         cp_emit_debug_info_for_using.
1122 2014-06-02  Ville Voutilainen  <ville.voutilainen@gmail.com>
1124         PR c++/59483
1125         PR c++/61148
1126         * search.c (accessible_p): Use current_nonlambda_class_type.
1127         * semantics.c (check_accessibility_of_qualified_id): Likewise.
1129 2014-06-02  Andrew MacLeod  <amacleod@redhat.com>
1131         * decl.c: Include builtins.h.
1132         * semantics.c: Likewise.
1134 2014-05-31  Paolo Carlini  <paolo.carlini@oracle.com>
1136         DR 1227
1137         PR c++/57543
1138         * cp-tree.h (TYPE_HAS_LATE_RETURN_TYPE): Add.
1139         * pt.c (tsubst_function_type): Inject the this parameter; do the
1140         substitutions in the order mandated by the DR.
1141         (copy_default_args_to_explicit_spec): Copy TYPE_HAS_LATE_RETURN_TYPE.
1142         * decl.c (grokdeclarator): Maybe set TYPE_HAS_LATE_RETURN_TYPE.
1143         (static_fn_type): Copy it.
1144         * decl2.c (build_memfn_type, change_return_type,
1145         cp_reconstruct_complex_type): Likewise.
1146         * parser.c (cp_parser_lambda_declarator_opt): Likewise.
1147         * tree.c (strip_typedefs): Likewise.
1148         * typeck.c (merge_types): Likewise.
1150 2014-05-30  Jason Merrill  <jason@redhat.com>
1152         PR c++/56947
1153         * pt.c (instantiate_decl): Check that defer_ok is not set for
1154         local class members.
1156         PR c++/60992
1157         * pt.c (tsubst_init): Split out from...
1158         (tsubst_expr) [DECL_EXPR]: Here.
1159         (tsubst_copy) [VAR_DECL]: Use it.
1160         * semantics.c (finish_id_expression): Return the decl for static/const.
1162 2014-05-28  Jason Merrill  <jason@redhat.com>
1164         PR c++/47202
1165         * decl.c (cxx_comdat_group): Return a decl.
1166         * optimize.c (cdtor_comdat_group): Get its DECL_ASSEMBLER_NAME.
1168         * pt.c (tsubst) [ARRAY_TYPE]: Check for array of array of unknown
1169         bound.
1171         PR c++/61242
1172         * call.c (build_aggr_conv): Ignore passed in flags.
1173         (build_array_conv, build_complex_conv): Likewise.
1175 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
1177         * optimize.c (maybe_thunk_body): Use set_comdat_group.
1178         (maybe_clone_body): Likewise.
1179         * decl.c (duplicate_decls): Update code duplicating comdat group;
1180         do not copy symtab pointer; before freeing newdecl remove it
1181         from symtab.
1182         * decl2.c (constrain_visibility): Use set_comdat_group.
1184 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
1186         * rtti.c: Include tm_p.h
1187         (emit_tinfo_decl): Force RTTI data to be aligned to required
1188         ABI alignment only.
1190 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
1192         * class.c (build_vtable): Align vtables to TARGET_VTABLE_ENTRY_ALIGN
1193         ignoring other target adjustments.
1195 2014-05-23  Thomas Schwinge  <thomas@codesourcery.com>
1197         * semantics.c (finish_omp_clauses): Remove duplicated variable
1198         initialization.
1200         * parser.c (cp_parser_omp_target): Return bool values.
1202 2014-05-22  Paolo Carlini  <paolo.carlini@oracle.com>
1204         PR c++/61088
1205         * lambda.c (add_capture): Enforce that capture by value requires
1206         complete type.
1207         * typeck2.c (cxx_incomplete_type_inform): Early return if
1208         TYPE_MAIN_DECL is null.
1210 2014-05-21  Jonathan Wakely  <jwakely@redhat.com>
1212         PR c/61271
1213         * cp-array-notation.c (cilkplus_an_triplet_types_ok_p): Fix condition.
1215 2014-05-21  Ville Voutilainen  <ville.voutilainen@gmail.com>
1217         PR c++/61133
1218         * lambda.c (build_capture_proxy, add_capture): Treat normal
1219         captures and init-captures identically.
1221 2014-05-21  Mark Wielaard  <mjw@redhat.com>
1223         PR debug/16063
1224         * cp-lang.c (cxx_enum_underlying_base_type): New function.
1225         (LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): Define.
1227 2014-05-21  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
1229         * cvt.c (convert_to_void): Use void_node instead of void_zero_node.
1230         * cp-array-notation.c (replace_invariant_exprs): Likewise.
1231         (expand_array_notation): Handle VOID_CST.
1232         * error.c (dump_expr): Likewise.
1233         * cxx-pretty-print.c (cxx_pretty_printer::primary_expression)
1234         (cxx_pretty_printer::expression): Likewise.
1235         (pp_cxx_new_expression): Use void_node instead of void_zero_node.
1236         * decl.c (register_dtor_fn): Likewise.
1237         * init.c (build_raw_new_expr, build_new_1, build_vec_init)
1238         (build_delete, push_base_cleanups): Likewise.
1239         * mangle.c (write_expression): Likewise.
1240         * semantics.c (finish_break_stmt, empty_expr_stmt_p): Likewise.
1241         * pt.c (tsubst_decl, tsubst_copy_and_build): Likewise.
1242         (tsubst, tsubst_copy, build_non_dependent_expr): Handle VOID_CST.
1243         * tree.c (cp_tree_equal): Likewise.
1244         (build_dummy_object, is_dummy_object, stabilize_expr): Use void_node
1245         instead of void_zero_node.
1246         * typeck.c (check_return_expr): Likewise.
1247         * typeck2.c (build_functional_cast): Likewise.
1249 2014-05-21  Igor Zamyatin  <igor.zamyatin@intel.com>
1251         PR c/60189
1252         * parser.c (cp_parser_postfix_expression): Move handling of cilk_sync
1253         from here to...
1254         (cp_parser_statement): ...here. Make sure only semicolon can go after
1255         Cilk_sync.
1257 2014-05-20  Paolo Carlini  <paolo.carlini@oracle.com>
1259         PR c++/58753
1260         PR c++/58930
1261         PR c++/58704
1262         * typeck2.c (digest_nsdmi_init): New.
1263         * parser.c (cp_parser_late_parse_one_default_arg): Use it.
1264         * init.c (get_nsdmi): Likewise.
1265         * cp-tree.h (digest_nsdmi_init): Declare.
1267 2014-05-20  Jason Merrill  <jason@redhat.com>
1269         * typeck.c (get_member_function_from_ptrfunc): Don't try to look
1270         up a virtual function in a dummy object.
1272 2014-05-20  Paolo Carlini  <paolo.carlini@oracle.com>
1274         PR c++/60373
1275         * decl.c (duplicate_decls): Replace pair of warning_at with
1276         warning_at + inform.
1277         (maybe_commonize_var): Likewise.
1279 2014-05-20  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
1281         PR bootstrap/61210
1282         * pt.c (tsubst_copy, tsubst_omp_for_iterator, tsubst_expr)
1283         (tsubst_copy_and_build): Perform recursive substitutions in a
1284         deterministic order.
1286 2014-05-20  Paolo Carlini  <paolo.carlini@oracle.com>
1288         PR c++/58664
1289         * typeck2.c (cxx_incomplete_type_inform): New.
1290         (cxx_incomplete_type_diagnostic): Use it.
1291         * decl.c (grokdeclarator): Check the element type of an
1292         incomplete array type; call the above.
1293         * cp-tree.h (cxx_incomplete_type_inform): Declare.
1295 2014-05-19  Jason Merrill  <jason@redhat.com>
1297         PR c++/58761
1298         * pt.c (tsubst_copy): Don't check at_function_scope_p.
1299         (instantiate_class_template_1): Don't push_to_top_level in an nsdmi.
1301 2014-05-19  Paolo Carlini  <paolo.carlini@oracle.com>
1303         * typeck2.c (cxx_incomplete_type_diagnostic): Use inform.
1304         * parser.c (cp_parser_enum_specifier): Likewise.
1306 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
1308         * class.c (sorted_fields_type_new): Adjust.
1309         * cp-cilkplus.c (cilk_install_body_with_frame_cleanup): Likewise.
1310         * cp-objcp-common.c (decl_shadowed_for_var_insert): Likewise.
1311         * cp-tree.h: Remove usage of variable_size gty attribute.
1312         * decl.c (make_label_decl): Adjust.
1313         (check_goto): Likewise.
1314         (start_preparsed_function): Likewise.
1315         (save_function_data): Likewise.
1316         * lex.c (init_reswords): Likewise.
1317         (retrofit_lang_decl): Likewise.
1318         (cxx_dup_lang_specific_decl): Likewise.
1319         (copy_lang_type): Likewise.
1320         (cxx_make_type): Likewise.
1321         * name-lookup.c (binding_entry_make): Likewise.
1322         (binding_table_construct): Likewise.
1323         (binding_table_new): Likewise.
1324         (cxx_binding_make): Likewise.
1325         (pushdecl_maybe_friend_1): Likewise.
1326         (begin_scope): Likewise.
1327         (push_to_top_level): Likewise.
1328         * parser.c (cp_lexer_alloc): Likewise.
1329         (cp_lexer_new_from_tokens): Likewise.
1330         (cp_token_cache_new): Likewise.
1331         (cp_parser_context_new): Likewise.
1332         (cp_parser_new): Likewise.
1333         (cp_parser_nested_name_specifier_opt): Likewise.
1334         (cp_parser_template_id): Likewise.
1335         * pt.c (maybe_process_partial_specialization): Likewise.
1336         (register_specialization): Likewise.
1337         (add_pending_template): Likewise.
1338         (lookup_template_class_1): Likewise.
1339         (push_tinst_level): Likewise.
1340         * semantics.c (register_constexpr_fundef): Likewise.
1341         (cxx_eval_call_expression): Likewise.
1342         * typeck2.c (abstract_virtuals_error_sfinae): Likewise.
1344 2014-05-16  Paolo Carlini  <paolo.carlini@oracle.com>
1346         PR c++/51640
1347         * parser.c (cp_parser_diagnose_invalid_type_name): Early return
1348         when cp_parser_lookup_name sets ambiguous_decls.
1350 2014-05-15  Jason Merrill  <jason@redhat.com>
1352         * call.c (print_conversion_rejection): Use loc consistently.
1354 2014-05-14  Paolo Carlini  <paolo.carlini@oracle.com>
1356         * cp-tree.h (DIRECT_LIST_INIT_P): Add.
1357         * call.c (convert_like_real, build_new_method_call_1): Use it.
1358         * decl2.c (grokfield): Likewise.
1359         * init.c (perform_member_init, build_aggr_init, expand_default_init,
1360         build_new_1): Likewise.
1361         * mangle.c (write_expression): Likewise.
1362         * parser.c (cp_parser_late_parse_one_default_arg): Likewise.
1364 2014-05-14  Jason Merrill  <jason@redhat.com>
1366         PR c++/20332
1367         PR c++/21631
1368         * call.c (reference_binding): Treat lvalue/rvalue mismatch and
1369         dropped cv-quals as a bad conversion.
1370         (convert_like_real) [ck_ref_bind]: Explain them.
1371         (compare_ics): Check badness before stripping reference
1372         bindings.  Handle comparing bad reference bindings.
1373         * typeck.c (comp_cv_qualification): Add overload that just takes
1374         integers.
1375         * cp-tree.h: Declare it.
1377         * call.c (struct conversion_info): Rename 'from_type' to 'from'.
1378         (arg_conversion_rejection, bad_arg_conversion_rejection)
1379         (explicit_conversion_rejection, template_conversion_rejection): Adjust.
1380         (add_function_candidate): Pass actual argument, rather than type, to
1381         bad_arg_conversion_rejection.
1382         (print_conversion_rejection): Explain what's wrong with the conversion.
1383         (print_z_candidates): Say "candidate:" before each candidate.
1384         (splice_viable): Be strict if we see a viable or template candidate.
1385         (build_user_type_conversion_1): Pass false to strict parameter.
1386         (perform_overload_resolution, build_conditional_expr_1): Likewise.
1387         (build_new_op_1, build_new_method_call_1): Likewise.
1388         (build_op_call_1): Pass true to strict parameter.
1390 2014-05-13  Jason Merrill  <jason@redhat.com>
1392         * call.c (print_error_for_call_failure): Say "no match" rather
1393         than "ambiguous" if there were no strict matches.
1394         (build_new_method_call_1): Likewise.
1396         PR c++/61151
1397         * semantics.c (is_this_parameter): Allow capture proxies too.
1399 2014-05-12  Jason Merrill  <jason@redhat.com>
1401         * call.c (maybe_print_user_conv_context): New.
1402         (convert_like_real): Use it.  Print call context for bad
1403         user-defined conversion.
1404         (build_over_call): Print call context for bad 'this' conversion.
1406         * call.c (convert_like_real): Use inform for identifying the
1407         declaration point.
1409 2014-05-12  Paolo Carlini  <paolo.carlini@oracle.com>
1411         * cvt.c (cp_convert_to_pointer): Don't call error_at if
1412         complain & tf_error is false.
1414         * decl.c (make_unbound_class_template): Prefer inform for
1415         "declared here"-type message.
1417 2014-05-09  Momchil Velikov  <momchil.velikov@gmail.com>
1419         PR c++/60463
1420         PR c++/60755
1421         * lambda.c (lambda_expr_this_capture): Add new parameter
1422         add_capture_p controlling whether the functions will try to
1423         capture 'this' via the default capture.
1424         (maybe_resolve_dummy): Likewise.
1425         * cp-tree.h: Adjust prototypes.
1426         * call.c, semantics.c: Change callers of these functions.
1427         * call.c (build_new_method_call_1): Use the actual 'this' that
1428         would be potentially captured for the overload resolution, instead
1429         of the dummy object.
1431 2014-05-09  Paolo Carlini  <paolo.carlini@oracle.com>
1433         * pt.c (convert_nontype_argument_function): Add tsubst_flags_t
1434         parameter.
1435         (convert_nontype_argument): Adjust calls.
1436         (coerce_template_parameter_pack): Add missing complain & tf_error
1437         check.
1439 2014-05-09  Jason Merrill  <jason@redhat.com>
1441         DR 587
1442         PR c++/51317
1443         * call.c (build_conditional_expr_1, conditional_conversion): Handle
1444         non-class lvalues and xvalues that differ only in cv-qualifiers.
1446         DR 5
1447         PR c++/60019
1448         * call.c (build_user_type_conversion_1): The copy-init temporary
1449         is cv-unqualified.
1451         PR c++/58714
1452         * tree.c (stabilize_expr): A stabilized prvalue is an xvalue.
1454         PR c++/54348
1455         * call.c (build_conditional_expr_1): If overload resolution finds
1456         no match, just say "different types".
1458         PR c++/32019
1459         * call.c (build_conditional_expr_1): Improve ambiguity diagnostic.
1461         PR c++/22434
1462         * call.c (build_conditional_expr_1): Don't try to pool cv-quals
1463         if we didn't find a conversion.
1464         Don't accept a bad conversion too early.
1466 2014-05-08  Paolo Carlini  <paolo.carlini@oracle.com>
1468         PR c++/13981
1469         * typeck.c (convert_for_assignment): Provide an inform for pointers
1470         to incomplete class types.
1472 2014-05-07  Paolo Carlini  <paolo.carlini@oracle.com>
1474         PR c++/61083
1475         * pt.c (convert_nontype_argument): Protect all the error calls
1476         with complain & tf_error.
1478 2014-05-07  Paolo Carlini  <paolo.carlini@oracle.com>
1480         PR c++/61080
1481         * pt.c (instantiate_decl): Avoid generating the body of a
1482         deleted function.
1484 2014-05-06  Paolo Carlini  <paolo.carlini@oracle.com>
1486         PR c++/60999
1487         * pt.c (maybe_begin_member_template_processing): Use
1488         uses_template_parms.
1490 2014-05-06  Kenneth Zadeck  <zadeck@naturalbridge.com>
1491             Mike Stump  <mikestump@comcast.net>
1492             Richard Sandiford  <rdsandiford@googlemail.com>
1494         * call.c: Include wide-int.h.
1495         (type_passed_as): Use tree_int_cst_lt instead of INT_CST_LT_UNSIGNED.
1496         (convert_for_arg_passing): Likewise.
1497         * class.c: Include wide-int.h.
1498         (walk_subobject_offsets): Use tree_int_cst_lt instead of INT_CST_LT.
1499         (end_of_class): Use tree_int_cst_lt instead of INT_CST_LT_UNSIGNED.
1500         (include_empty_classes): Likewise
1501         (layout_class_type): Use tree_int_cst_lt instead of INT_CST_LT.
1502         * cvt.c: Include wide-int.h.
1503         (ignore_overflows): Use wide_int_to_tree.
1504         * decl.c: Include wide-int.h.
1505         (check_array_designated_initializer): Use wide-int interfaces.
1506         (compute_array_index_type): Use tree_int_cst_lt instead of INT_CST_LT.
1507         (finish_enum_value_list): Use signop.
1508         (build_enumerator): Use wide-int interfaces.
1509         * init.c: Include wide-int.h.
1510         (build_new_1): Use wide-int interfaces.
1511         * mangle.c: Include wide-int.h.
1512         (write_integer_cst): Use wide-int interfaces.
1513         (write_array_type): Likewise.
1514         * tree.c: Include wide-int.h.
1515         (cp_tree_equal): Use tree_int_cst_equal.
1516         * typeck2.c: Include wide-int.h.
1517         (process_init_constructor_array): Use wide-int interfaces.
1519 2014-05-03  Paolo Carlini  <paolo.carlini@oracle.com>
1521         PR c++/58582
1522         * decl.c (grokfndecl): Check duplicate_decls return value for
1523         error_mark_node.
1524         * pt.c (instantiate_decl): A deleted function is defined.
1526 2014-05-02  Jason Merrill  <jason@redhat.com>
1528         * decl2.c (vague_linkage_p): Local statics have vague linkage.
1530         PR c++/60992
1531         * lambda.c (lambda_capture_field_type): Wrap anything dependent
1532         other than 'this'.
1533         (add_capture): Check for VLA before calling it.
1534         * semantics.c (is_this_parameter): Accept any 'this' parameter, not
1535         just the current one.  Make non-static.
1536         * cp-tree.h: Declare it.
1537         * pt.c (tsubst_copy) [VAR_DECL]: Also build a new VAR_DECL if
1538         the operand was static or constant.
1540 2014-05-02  Marek Polacek  <polacek@redhat.com>
1542         * typeck.c (maybe_warn_about_returning_address_of_local): Separate
1543         warning_at calls.
1545 2014-05-01  Marek Polacek  <polacek@redhat.com>
1547         PR c/43395
1548         * typeck.c (maybe_warn_about_returning_address_of_local): Distinguish
1549         between label and variable when warning about returning local address.
1551 2014-04-30  Jason Merrill  <jason@redhat.com>
1553         PR c++/60980
1554         * init.c (build_value_init): Don't try to call an array constructor.
1556         PR c++/60951
1557         * typeck2.c (massage_init_elt): Use maybe_constant_init.
1559 2014-04-30  Marek Polacek  <polacek@redhat.com>
1561         * typeck.c (cp_build_binary_op): Call ubsan_instrument_division
1562         even when SANITIZE_FLOAT_DIVIDE is on.  Set doing_div_or_mod even
1563         for non-integer types.
1565 2014-04-29  Jason Merrill  <jason@redhat.com>
1567         DR 1351
1568         Represent the unevaluated exception specification of an implicitly
1569         declared or deleted function with a simple placeholder, not a list
1570         of functions.
1571         * cp-tree.h (UNEVALUATED_NOEXCEPT_SPEC_P): New.
1572         * except.c (unevaluated_noexcept_spec): New.
1573         * class.c (deduce_noexcept_on_destructor): Use it.
1574         * decl.c (check_redeclaration_exception_specification): Call
1575         maybe_instantiate_noexcept.
1576         (duplicate_decls): Call it before merge_types.
1577         (start_preparsed_function): Call maybe_instantiate_noexcept.
1578         * decl2.c (mark_used): Call maybe_instantiate_noexcept earlier.
1579         * init.c (get_nsdmi): Factor out of perform_member_init.
1580         * method.c (process_subob_fn): Call maybe_instantiate_noexcept.
1581         (walk_field_subobs): Consider NSDMI for EH spec.
1582         (get_defaulted_eh_spec): New.
1583         (implicitly_declare_fn): Use unevaluated_noexcept_spec.
1584         (defaulted_late_check): Defer EH checking in non-template classes.
1585         (after_nsdmi_defaulted_late_checks): New.
1586         * parser.c (cp_parser_class_specifier_1): Use it.
1587         (unparsed_classes): New macro.
1588         * parser.h (cp_unparsed_functions_entry_d): Add classes field.
1589         * pt.c (maybe_instantiate_noexcept): Use get_defaulted_eh_spec.
1590         Remove list-of-functions handling.
1591         * typeck2.c (merge_exception_specifiers): Remove list-of-functions
1592         handling and FN parameter.
1593         * typeck.c (merge_types): Adjust.
1595 2014-04-28  Paolo Carlini  <paolo.carlini@oracle.com>
1597         PR c++/59120
1598         * parser.c (cp_parser_alias_declaration): Check return value of
1599         cp_parser_require.
1601 2014-04-24  Jakub Jelinek  <jakub@redhat.com>
1603         * parser.c (cp_parser_omp_atomic): Allow seq_cst before
1604         atomic-clause, allow comma in between atomic-clause and
1605         seq_cst.
1607 2014-04-24  Marc Glisse  <marc.glisse@inria.fr>
1609         PR libstdc++/43622
1610         * rtti.c (emit_support_tinfos): Do not iterate on
1611         registered_builtin_types (partial revert).
1613 2014-04-23 Dinar Temirbulatov  <dtemirbulatov@gmail.com>
1615         PR c++/57958
1616         * semantics.c (apply_deduced_return_type): Complete non-void type
1617         before estimating whether the type is aggregate.
1619 2014-04-22  Marc Glisse  <marc.glisse@inria.fr>
1621         PR libstdc++/43622
1622         * rtti.c (emit_support_tinfo_1): New function, extracted from
1623         emit_support_tinfos.
1624         (emit_support_tinfos): Call it and iterate on registered_builtin_types.
1626 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
1628         PR c/59073
1629         * parser.c (cp_parser_omp_parallel): If cp_parser_omp_for
1630         fails, don't set OM_PARALLEL_COMBINED and return NULL.
1632 2014-04-18  Jason Merrill  <jason@redhat.com>
1634         DR 1571
1635         * call.c (reference_binding): Recurse on user-defined conversion.
1637         PR c++/60872
1638         * call.c (standard_conversion): Don't try to apply restrict to void.
1640 2014-04-16  Marc Glisse  <marc.glisse@inria.fr>
1642         * decl.c (reshape_init_r): Handle a single element of vector type.
1644 2014-04-16  Patrick Palka  <patrick@parcs.ath.cx>
1646         PR c++/60765
1647         * decl2.c (cplus_decl_attributes): Handle
1648         pointer-to-member-function declarations.
1650 2014-04-16  Patrick Palka  <patrick@parcs.ath.cx>
1652         PR c++/60764
1653         * call.c (build_user_type_coversion): Use build_dummy_object
1654         to create the placeholder object for a constructor method call.
1655         (build_special_member_call): Likewise.
1656         (build_over_call): Check for the placeholder object with
1657         is_dummy_object.
1658         (build_new_method_call_1): Likewise.  Don't attempt to resolve
1659         a dummy object for a constructor method call.
1661 2014-04-16  Paul Pluzhnikov  <ppluzhnikov@google.com>
1663         PR c++/59295
1664         * friend.c (add_friend, make_friend_class): Move repeated friend
1665         warning under Wredundant_decls.
1667 2014-04-15  Paolo Carlini  <paolo.carlini@oracle.com>
1669         * decl.c (duplicate_decls): Remove redundant TYPE_NAME use.
1670         * name-lookup.c (pushdecl_maybe_friend_1): Likewise.
1671         (do_class_using_decl): Likewise.
1672         * mangle.c (dump_substitution_candidates): Use TYPE_NAME_STRING.
1674 2014-04-15  Jakub Jelinek  <jakub@redhat.com>
1676         PR plugins/59335
1677         * Make-lang.h (CP_PLUGIN_HEADERS): Add type-utils.h.
1679 2014-04-14  Paolo Carlini  <paolo.carlini@oracle.com>
1681         * cp-tree.h (TYPE_IDENTIFIER): Remove declaration.
1683 2014-04-14  Paolo Carlini  <paolo.carlini@oracle.com>
1685         * pt.c (mark_template_parm): Use template_parm_level_and_index.
1687 2014-04-11  Jason Merrill  <jason@redhat.com>
1689         * parser.h (struct cp_token): Rename ambiguous_p to error_reported.
1690         * parser.c: Adjust.
1691         (cp_lexer_get_preprocessor_token): Always clear it.
1692         (cp_parser_lambda_expression): Use it to avoid duplicate diagnostics.
1694         DR 1467
1695         PR c++/51747
1696         * decl.c (reshape_init_r): Handle a single element of class type.
1698         DR 1338
1699         * decl.c (cxx_init_decl_processing): Set DECL_IS_MALLOC on
1700         built-in operator new.
1702 2014-04-11  Paolo Carlini  <paolo.carlini@oracle.com>
1704         PR c++/58600
1705         * name-lookup.c (parse_using_directive): Return early if the
1706         attribs argument is error_mark_node; use get_attribute_name.
1708 2014-04-11  Jason Merrill  <jason@redhat.com>
1710         DR 1030
1711         PR c++/51253
1712         * cp-tree.h (CALL_EXPR_LIST_INIT_P): New.
1713         * call.c (struct z_candidate): Add flags field.
1714         (add_candidate): Add flags parm.
1715         (add_function_candidate, add_conv_candidate, build_builtin_candidate)
1716         (add_template_candidate_real): Pass it.
1717         (build_over_call): Set CALL_EXPR_LIST_INIT_P.
1718         * tree.c (build_aggr_init_expr): Copy it.
1719         * semantics.c (simplify_aggr_init_expr): Preevaluate args if it's set.
1721 2014-04-10  Richard Biener  <rguenther@suse.de>
1722             Jakub Jelinek  <jakub@redhat.com>
1724         PR ipa/60761
1725         * error.c (dump_decl) <case FUNCTION_DECL>: If
1726         DECL_LANG_SPECIFIC is NULL, but DECL_ABSTRACT_ORIGIN is not,
1727         recurse on DECL_ABSTRACT_ORIGIN instead of printing
1728         <built-in>.
1730 2014-04-09  Fabien Chêne  <fabien@gcc.gnu.org>
1732         * pt.c (check_template_variable): Check for the return of pedwarn
1733         before emitting a note.
1734         * parser.c (cp_parser_lambda_introducer): Likewise.
1736 2014-04-08  Paolo Carlini  <paolo.carlini@oracle.com>
1738         PR c++/59115
1739         * pt.c (process_template_parm): For an invalid non-type parameter
1740         only set TREE_TYPE to error_mark_node.
1741         (push_inline_template_parms_recursive, comp_template_parms,
1742         redeclare_class_template, coerce_template_template_parm,
1743         coerce_template_template_parms, unify): Use error_operand_p.
1745 2014-04-08  Nathan Sidwell  <nathan@codesourcery.com>
1747         * class.c (check_bases_and_members): Warn about non-virtual dtors
1748         in public bases only.  Check warn_ecpp before complaining about
1749         non-polymorphic bases.
1751 2014-04-04  Fabien Chêne  <fabien@gcc.gnu.org>
1753         * decl.c (duplicate_decls): Check for the return of warning_at
1754         before emitting a note.
1755         (warn_misplaced_attr_for_class_type): Likewise.
1756         (check_tag_decl): Likewise.
1758 2014-04-04  Paolo Carlini  <paolo.carlini@oracle.com>
1760         PR c++/58207
1761         * semantics.c (sort_constexpr_mem_initializers): Robustify loop.
1763 2014-04-04  Patrick Palka  <patrick@parcs.ath.cx>
1765         PR c++/44613
1766         * semantics.c (add_stmt): Set STATEMENT_LIST_HAS_LABEL.
1767         * decl.c (cp_finish_decl): Create a new BIND_EXPR before
1768         instantiating a variable-sized type.
1770         PR c++/21113
1771         * decl.c (decl_jump_unsafe): Consider variably-modified decls.
1773 2014-04-04  Fabien Chêne  <fabien@gcc.gnu.org>
1775         * class.c (find_abi_tags_r): Check for the return of warning
1776         before emitting a note.
1777         (one_inherited_ctor): Likewise.
1779 2014-04-04  Fabien Chêne  <fabien@gcc.gnu.org>
1781         * decl.c (duplicate_decls): Check for the return of permerror
1782         before emitting a note.
1784 2014-04-03  Nathan Sidwell  <nathan@codesourcery.com>
1786         * class.c (accessible_nvdtor_p): New.
1787         (check_bases): Don't check base destructor here ...
1788         (check_bases_and_members): ... check them here.  Trigger on
1789         Wnon-virtual-dtor flag.
1790         (finish_struct_1): Use accessible_nvdtor_p.
1792 2014-04-01  Jason Merrill  <jason@redhat.com>
1794         * pt.c (process_partial_specialization): Say "not deducible"
1795         rather than "not used".  Use inform.
1797         PR c++/60374
1798         * pt.c (coerce_template_parms): Check that the pack expansion
1799         pattern works with the first matching parameter.
1801 2014-04-01  Fabien Chêne  <fabien@gcc.gnu.org>
1803         * init.c (perform_member_init): Homogenize uninitialized
1804         diagnostics.
1806 2014-04-01  Jason Merrill  <jason@redhat.com>
1808         PR c++/60708
1809         * call.c (build_array_conv): Call complete_type.
1811         PR c++/60713
1812         * typeck2.c (PICFLAG_SIDE_EFFECTS): New.
1813         (picflag_from_initializer): Return it.
1814         (process_init_constructor): Handle it.
1816         PR c++/60642
1817         * decl2.c (is_late_template_attribute): Don't defer abi_tag.
1818         * mangle.c (write_unqualified_name): Fix abi_tag on templates.
1819         * pt.c (get_template_info): Handle NAMESPACE_DECL.
1820         (most_general_template): Handle more kinds of template.
1821         * tree.c (handle_abi_tag_attribute): Ignore abi_tag on template
1822         instantiations and specializations.
1824 2014-03-31  Patrick Palka  <patrick@parcs.ath.cx>
1826         PR c++/44859
1827         * typeck.c (maybe_warn_about_returning_address_of_local): Unwrap
1828         COMPONENT_REFs and ARRAY_REFs sooner.
1830 2014-03-29  Adam Butcher  <adam@jessamine.co.uk>
1832         PR c++/60626
1833         * parser.c (cp_parser_init_declarator): Handle erroneous generic type
1834         usage in non-functions with pushed scope.
1836 2014-03-28  Adam Butcher  <adam@jessamine.co.uk>
1838         PR c++/60573
1839         * name-lookup.h (cp_binding_level): New transient field defining_class_p
1840         to indicate whether a scope is in the process of defining a class.
1841         * semantics.c (begin_class_definition): Set defining_class_p.
1842         * name-lookup.c (leave_scope): Reset defining_class_p.
1843         * parser.c (synthesize_implicit_template_parm): Use cp_binding_level::
1844         defining_class_p rather than TYPE_BEING_DEFINED as the predicate for
1845         unwinding to class-defining scope to handle the erroneous definition of
1846         a generic function of an arbitrarily nested class within an enclosing
1847         class.
1849 2014-03-26  Fabien Chêne  <fabien@gcc.gnu.org>
1851         PR c++/52369
1852         * method.c (walk_field_subobs): Improve the diagnostic
1853         locations for both REFERENCE_TYPEs and non-static const members.
1854         * init.c (diagnose_uninitialized_cst_or_ref_member): Use %q#D
1855         instead of %qD to be consistent with the c++11 diagnostic.
1857 2014-03-25  Jason Merrill  <jason@redhat.com>
1859         PR c++/60566
1860         PR c++/58678
1861         * class.c (build_vtbl_initializer): Handle abstract dtors here.
1862         * search.c (get_pure_virtuals): Not here.
1864         PR c++/60375
1865         * parser.c (cp_parser_lambda_expression): Don't parse the body of
1866         a lambda in unevaluated context.
1868         PR c++/60628
1869         * decl.c (create_array_type_for_decl): Complain about array of auto.
1871 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
1873         PR c++/60331
1874         * semantics.c (potential_constant_expression_1): Handle
1875         DECL_EXPR.
1877 2014-03-24  Adam Butcher  <adam@jessamine.co.uk>
1879         PR c++/60627
1880         * parser.c (cp_parser_parameter_declaration_clause): Prevent 'auto' from
1881         introducing an implicit function template parameter within an explicit
1882         instantiation.
1884 2014-03-22  Jason Merrill  <jason@redhat.com>
1886         PR c++/60574
1887         * decl.c (grokdeclarator): Change permerror about 'virtual auto'
1888         to error.
1890 2014-03-21  Paolo Carlini  <paolo.carlini@oracle.com>
1892         PR c++/60384
1893         * name-lookup.c (push_class_level_binding_1): Check identifier_p
1894         on the name argument.
1896 2014-03-20  Jakub Jelinek  <jakub@redhat.com>
1898         PR c++/60572
1899         * init.c (build_zero_init_1): Ignore fields with error_mark_node
1900         type.
1902 2014-03-19  Paolo Carlini  <paolo.carlini@oracle.com>
1904         PR c++/51474
1905         * call.c (build_new_method_call_1): Handle pure virtuals called by
1906         NSDMIs too.
1908 2014-03-17  Adam Butcher  <adam@jessamine.co.uk>
1910         PR c++/60390
1911         * parser.c (cp_parser_member_declaration): Don't allow
1912         finish_fully_implicit_template to consider friend declarations to be
1913         class member templates.
1914         (synthesize_implicit_template_parm): Handling winding back through class
1915         scope to the class being defined in order to inject a template argument
1916         list.
1918         PR c++/60391
1919         * parser.c (cp_parser_skip_to_end_of_block_or_statement): Unwind generic
1920         function scope as per cp_parser_skip_to_end_of_statement.
1922 2014-03-17  Paolo Carlini  <paolo.carlini@oracle.com>
1924         PR c++/59571
1925         * typeck2.c (check_narrowing): Use fold_non_dependent_expr_sfinae.
1927 2014-03-14  Jason Merrill  <jason@redhat.com>
1929         PR c++/60532
1930         PR c++/58678
1931         * search.c (get_pure_virtuals): Handle abstract dtor here.
1932         (dfs_get_pure_virtuals): Not here.
1934         PR c++/58678
1935         * search.c (dfs_get_pure_virtuals): Treat the destructor of an
1936         abstract class as pure.
1938 2014-03-13  Paolo Carlini  <paolo.carlini@oracle.com>
1940         PR c++/60383
1941         * pt.c (maybe_process_partial_specialization): Check return value
1942         of check_specialization_namespace.
1944 2014-03-13  Paolo Carlini  <paolo.carlini@oracle.com>
1946         PR c++/60254
1947         * semantics.c (finish_static_assert): Call cxx_constant_value only
1948         if require_potential_rvalue_constant_expression returns true.
1950 2014-03-11  Paolo Carlini  <paolo.carlini@oracle.com>
1952         PR c++/60389
1953         * method.c (get_inherited_ctor): New.
1954         * cp-tree.h (get_inherited_ctor): Declare it.
1955         * semantics.c (is_valid_constexpr_fn): Use it.
1957 2014-03-10  Jason Merrill  <jason@redhat.com>
1959         PR c++/60367
1960         * call.c (convert_default_arg): Remove special handling for
1961         CONSTRUCTOR.
1963         PR c++/53492
1964         * parser.c (cp_parser_class_head): Also check PRIMARY_TEMPLATE_P
1965         when deciding whether to call push_template_decl for a member class.
1966         * pt.c (push_template_decl_real): Return after wrong levels error.
1968 2014-03-08  Adam Butcher  <adam@jessamine.co.uk>
1970         PR c++/60033
1971         * pt.c (tsubst_copy): When retrieving a capture pack from a generic
1972         lambda, remove the lambda's own template argument list prior to fetching
1973         the specialization.
1975         PR c++/60393
1976         * parser.c (cp_parser_parameter_declaration_clause): Move generic
1977         function template unwinding on error into a more general location, ...
1978         (cp_parser_skip_to_end_of_statement): ... here.
1980 2014-03-07  Jason Merrill  <jason@redhat.com>
1982         * Make-lang.in (check_g++_parallelize): Split dg.exp.
1984         * parser.c (cp_parser_type_id_1): Only allow 'auto' in C++1y if
1985         we're in a trailing return type.
1987         * typeck.c (comp_template_parms_position): 'auto' and
1988         'decltype(auto)' are different from real template parms.
1990         * parser.c (cp_parser_using_declaration): Consume the semicolon
1991         after bare parameter pack error.
1993         * cp-tree.h (REF_PARENTHESIZED_P): New.
1994         * semantics.c (force_paren_expr): Set it.
1995         * pt.c (do_auto_deduction): Check it.
1996         (tsubst) [COMPONENT_REF]: Copy it.
1997         * typeck.c (maybe_warn_about_useless_cast): Don't strip dereference.
1999         * decl.c (create_array_type_for_decl): Only warn about invalid
2000         C++1y VLA if flag_iso or warn_vla>0.
2001         (grokdeclarator): Likewise.
2002         * pt.c (tsubst): Likewise.
2003         * semantics.c (finish_decltype_type): Likewise.
2004         * typeck.c (cxx_sizeof_or_alignof_type): Likewise.
2005         (cp_build_addr_expr_1): Likewise.
2006         * init.c (build_new_1): Improve diagnostics.
2008 2014-03-07  Paolo Carlini  <paolo.carlini@oracle.com>
2010         PR c++/58609
2011         * decl.c (check_initializer): Return NULL_TREE after error;
2012         consistently use inform.
2014 2014-03-07  Paolo Carlini  <paolo.carlini@oracle.com>
2016         * decl.c (check_initializer): Remove dead code.
2018 2014-03-06  Marek Polacek  <polacek@redhat.com>
2020         PR c/60197
2021         * typeck.c (check_return_expr): Call contains_cilk_spawn_stmt instead
2022         of checking tree code.
2024 2014-03-06  Paolo Carlini  <paolo.carlini@oracle.com>
2026         * parser.c (cp_lexer_set_source_position): New.
2027         (cp_parser_mem_initializer): Use it.
2028         (cp_parser_postfix_open_square_expression): Likewise.
2029         (cp_parser_parenthesized_expression_list): Likewise.
2030         (cp_parser_new_initializer): Likewise.
2031         (cp_parser_jump_statement): Likewise.
2032         (cp_parser_initializer): Likewise.
2033         (cp_parser_functional_cast): Likewise.
2035 2014-03-05  Jason Merrill  <jason@redhat.com>
2037         PR c++/60409
2038         * semantics.c (force_paren_expr): Only add a PAREN_EXPR to a
2039         dependent expression.
2041         PR c++/60361
2042         * parser.c (cp_parser_template_id): Don't set up a CPP_TEMPLATE_ID
2043         if re-parsing might succeed.
2044         * semantics.c (finish_id_expression): Use of a parameter outside
2045         the function body is a parse error.
2047         * parser.c (cp_parser_mem_initializer): Set input_location
2048         properly for init-list warning.
2049         (cp_parser_postfix_open_square_expression): Likewise.
2050         (cp_parser_parenthesized_expression_list): Likewise.
2051         (cp_parser_new_initializer): Likewise.
2052         (cp_parser_jump_statement): Likewise.
2053         (cp_parser_initializer): Likewise.
2054         (cp_parser_functional_cast): Likewise.
2056 2014-03-04  Jason Merrill  <jason@redhat.com>
2058         PR c++/60417
2059         * typeck2.c (process_init_constructor_record): Set
2060         CONSTRUCTOR_IS_DIRECT_INIT on {} for omitted initializers.
2062         PR c++/60415
2063         PR c++/54359
2064         * parser.c (cp_parser_direct_declarator): Set declarator to
2065         cp_error_declarator on invalid qualified-id.
2067 2014-03-04  Paolo Carlini  <paolo.carlini@oracle.com>
2069         PR c++/60376
2070         * parser.c (cp_parser_using_declaration): Early return when
2071         cp_parser_nested_name_specifier errors out.
2073 2014-03-01  Adam Butcher  <adam@jessamine.co.uk>
2075         PR c++/60377
2076         * parser.c (cp_parser_parameter_declaration_clause): Unwind generic
2077         function scope on parse error in function parameter list.
2079 2014-03-01  Paolo Carlini  <paolo.carlini@oracle.com>
2081         * method.c (implicitly_declare_fn): Remove redundant
2082         DECL_TEMPLATE_RESULT and STRIP_TEMPLATE uses.
2083         * semantics.c (is_instantiation_of_constexpr): Likewise.
2084         * error.c (dump_function_decl): Likewise.
2086 2014-03-01  Jason Merrill  <jason@redhat.com>
2088         PR c++/60379
2089         * semantics.c (begin_maybe_infinite_loop): Use
2090         fold_non_dependent_expr_sfinae.
2092 2014-02-28  Jason Merrill  <jason@redhat.com>
2094         PR c++/58845
2095         * typeck.c (cp_build_binary_op): Sorry on vector&&vector.
2097 2014-02-28  Paolo Carlini  <paolo.carlini@oracle.com>
2099         PR c++/58610
2100         * cp-tree.h (DECL_DELETED_FN): Use LANG_DECL_FN_CHECK.
2101         * call.c (print_z_candidate): Remove STRIP_TEMPLATE use.
2102         * lambda.c (maybe_add_lambda_conv_op): Likewise.
2104 2014-02-27  Paolo Carlini  <paolo.carlini@oracle.com>
2106         PR c++/60253
2107         * call.c (convert_arg_to_ellipsis): Return error_mark_node after
2108         error_at.
2110 2014-02-27  Jason Merrill  <jason@redhat.com>
2112         PR c++/60353
2113         PR c++/55877
2114         * decl2.c (tentative_decl_linkage): Don't mess with functions that
2115         are not yet defined.
2117 2014-02-26  Jason Merrill  <jason@redhat.com>
2119         PR c++/60347
2120         PR lto/53808
2121         * class.c (clone_function_decl): Don't note_vague_linkage_fn.
2122         * init.c (build_vtbl_address): Do it here.
2124         PR c++/59231
2125         PR c++/11586
2126         PR c++/14710
2127         PR c++/57132
2128         * pt.c (struct warning_sentinel): New.
2129         (tsubst_copy_and_build): Use it instead of
2130         c_inhibit_evaluation_warnings.
2131         * typeck.c (maybe_warn_about_useless_cast): Remove
2132         c_inhibit_evaluation_warnings check.
2134         PR c++/54440
2135         * pt.c (get_template_parm_index): New.
2136         (fixed_parameter_pack_p_1, fixed_parameter_pack_p): New.
2137         (process_template_parm): Allow bare packs in template template
2138         parm template parms.
2139         (coerce_template_parameter_pack): Handle fixed template template
2140         parm packs and fixed packs not at the end of the parm list.
2141         (coerce_template_parms): Handle template parm packs not at the end
2142         of the parm list.
2143         (gen_elem_of_pack_expansion_instantiation): Handle a decl expansion.
2145         PR c++/60182
2146         * pt.c (unify): Ignore alias templates when deducing a template
2147         template parameter.
2149         PR c++/60345
2150         Revert:
2151         DR 1571
2152         * call.c (reference_binding): Recurse on user-defined conversion.
2153         (convert_like_real) [ck_ref_bind]: Explain cv-qual mismatch.
2155 2014-02-25  Jason Merrill  <jason@redhat.com>
2157         DR 1571
2158         * call.c (reference_binding): Recurse on user-defined conversion.
2159         (convert_like_real) [ck_ref_bind]: Explain cv-qual mismatch.
2161         * call.c (print_conversion_rejection): Handle n_arg of -2.
2162         (build_user_type_conversion_1): Pass it.
2164         PR c++/55877
2165         * decl2.c (no_linkage_error): Handle C++98 semantics.
2166         (reset_type_linkage): Move from decl.c.
2167         (reset_type_linkage_1, reset_type_linkage_2, bt_reset_linkage_1)
2168         (bt_reset_linkage_2, reset_decl_linkage): New.
2169         (tentative_decl_linkage): Factor out of expand_or_defer_fn_1.
2170         (cp_write_global_declarations): Move condition into no_linkage_error.
2171         * decl.c (grokfndecl, grokvardecl): Use no_linkage_error.
2172         * semantics.c (expand_or_defer_fn_1): Factor out
2173         tentative_decl_linkage.
2174         * cp-tree.h: Adjust.
2176         * decl2.c (finish_static_data_member_decl): Diagnose static data
2177         member in unnamed class.
2178         * class.c (finish_struct_anon_r): Avoid redundant diagnostic.
2180         PR lto/53808
2181         * class.c (clone_function_decl): Call note_vague_linkage_fn for
2182         defaulted virtual dtor.
2184         DR 1286
2185         PR c++/60328
2186         * pt.c (get_underlying_template): Fix equivalence calculation.
2188 2014-02-25  Adam Butcher  <adam@jessamine.co.uk>
2190         PR c++/60311
2191         * parser.c (function_being_declared_is_template_p): Return false when
2192         processing a template parameter list.
2193         (cp_parser_parameter_declaration_clause): Don't set
2194         auto_is_implicit_function_template_parm_p when processing a
2195         template parameter list.
2197         * parser.c (synthesize_implicit_template_parm): Inject new template
2198         argument list appropriately when a generic member function
2199         of a class template is declared out-of-line.
2201         PR c++/60065
2202         * parser.c (cp_parser_direct_declarator): Don't save and
2203         restore num_template_parameter_lists around call to
2204         cp_parser_parameter_declaration_list.
2205         (function_being_declared_is_template_p): New predicate.
2206         (cp_parser_parameter_declaration_list): Use
2207         function_being_declared_is_template_p as predicate for
2208         inspecting current function template parameter list length
2209         rather than num_template_parameter_lists.
2211 2014-02-24  Jason Merrill  <jason@redhat.com>
2213         PR c++/60146
2214         * pt.c (tsubst_omp_for_iterator): Don't let substitution of the
2215         DECL_EXPR initialize a non-class iterator.
2217         PR c++/60312
2218         * parser.c (cp_parser_template_type_arg): Check for invalid 'auto'.
2220 2014-02-21  Jason Merrill  <jason@redhat.com>
2222         PR c++/58170
2223         * parser.c (cp_parser_type_name): Always check dependency.
2224         (cp_parser_type_specifier_seq): Call
2225         cp_parser_parse_and_diagnose_invalid_type_name.
2227         PR c++/60108
2228         * semantics.c (expand_or_defer_fn_1): Check DECL_DEFAULTED_FN.
2230         PR c++/60185
2231         * parser.c (cp_parser_default_argument): Clear
2232         current_class_ptr/current_class_ref like tsubst_default_argument.
2234         PR c++/60252
2235         * lambda.c (maybe_resolve_dummy): Check lambda_function rather
2236         than current_binding_level.
2238         PR c++/60186
2239         * typeck2.c (massage_init_elt): Call fold_non_dependent_expr_sfinae.
2241         PR c++/60187
2242         * parser.c (cp_parser_enum_specifier): Call
2243         check_for_bare_parameter_packs.
2245         PR c++/59347
2246         * pt.c (tsubst_decl) [TYPE_DECL]: Don't try to instantiate an
2247         erroneous typedef.
2249         PR c++/60241
2250         * pt.c (lookup_template_class_1): Update DECL_TEMPLATE_INSTANTIATIONS
2251         of the partial instantiation, not the most general template.
2252         (maybe_process_partial_specialization): Reassign everything on
2253         that list.
2255         PR c++/60216
2256         * pt.c (register_specialization): Copy DECL_DELETED_FN to clones.
2257         (check_explicit_specialization): Don't clone.
2259         PR c++/60219
2260         * pt.c (coerce_template_parms): Bail if argument packing fails.
2262         PR c++/60224
2263         * decl.c (cp_complete_array_type, maybe_deduce_size_from_array_init):
2264         Don't get confused by a CONSTRUCTOR that already has a type.
2266         PR c++/60227
2267         * call.c (build_array_conv): Don't crash on VLA.
2269         PR c++/60248
2270         * mangle.c (mangle_decl): Don't make an alias for a TYPE_DECL.
2272         PR c++/60252
2273         * lambda.c (maybe_resolve_dummy): Don't try to capture this
2274         in declaration context.
2276         DR 1591
2277         PR c++/60051
2278         * pt.c (unify): Only unify if deducible.  Handle 0-length list.
2280         PR c++/60250
2281         * parser.c (cp_parser_direct_declarator): Don't wrap a
2282         type-dependent expression in a NOP_EXPR.
2284         PR c++/60251
2285         * lambda.c (is_normal_capture_proxy): Handle VLA capture.
2287         PR c++/60167
2288         PR c++/60222
2289         PR c++/58606
2290         * parser.c (cp_parser_template_argument): Restore dereference.
2291         * pt.c (template_parm_to_arg): Dereference non-pack expansions too.
2292         (process_partial_specialization): Handle deref.
2293         (unify): Likewise.
2295 2014-02-21  Adam Butcher  <adam@jessamine.co.uk>
2297         PR c++/60052
2298         PR c++/60053
2299         * parser.c (cp_parser_parameter_declaration_list): Correctly reset
2300         implicit_template_scope upon leaving an out-of-line generic member
2301         function definition.
2303 2014-02-20  Kai Tietz  <ktietz@redhat.com>
2305         PR c++/58873
2306         * parser.c (cp_parser_functional_cast): Treat NULL_TREE
2307         valued type argument as error_mark_node.
2309         PR c++/58835
2310         * semantics.c (finish_fname): Handle error_mark_node.
2312 2014-02-19  Jason Merrill  <jason@redhat.com>
2314         PR c++/60046
2315         * pt.c (maybe_instantiate_noexcept): Don't instantiate exception
2316         spec from template context.
2318 2014-02-19  Jakub Jelinek  <jakub@redhat.com>
2320         PR debug/56563
2321         * cp-objcp-common.c (cp_function_decl_explicit_p): Remove
2322         FUNCTION_FIRST_USER_PARMTYPE (decl) != void_list_node check.
2324         PR c++/60267
2325         * pt.c (tsubst_expr): Handle ANNOTATE_EXPR.
2327 2014-02-18  Paolo Carlini  <paolo.carlini@oracle.com>
2329         PR c++/60225
2330         * semantics.c (ensure_literal_type_for_constexpr_object): Use
2331         strip_array_types.
2333 2014-02-18  Paolo Carlini  <paolo.carlini@oracle.com>
2335         PR c++/60215
2336         * semantics.c (cxx_eval_constant_expression, [COMPONENT_REF]):
2337         During error recovery allow_non_constant may be false.
2339 2014-02-18  Adam Butcher  <adam@jessamine.co.uk>
2341         PR c++/60190
2342         * parser.c (cp_parser_lambda_declarator_opt): Pop template parameter
2343         scope whenever a template parameter list has been started, independent
2344         of whether the function call operator was well-formed or not.
2346         PR c++/60064
2347         * parser.c (cp_parser_member_declaration): Pop fully implicit template
2348         scope for generic friend declarations as well as for non-friends.
2350 2014-02-12  Paolo Carlini  <paolo.carlini@oracle.com>
2352         PR c++/60047
2353         * method.c (implicitly_declare_fn): A constructor of a class with
2354         virtual base classes isn't constexpr (7.1.5p4).
2356 2014-02-05  Jan Hubicka  <hubicka@ucw.cz
2358         * parser.c (synthesize_implicit_template_parm): Use grow_tree_vec.
2360 2014-02-05  Jakub Jelinek  <jakub@redhat.com>
2362         PR c++/58703
2363         * parser.c (cp_parser_omp_declare_reduction): Save and free
2364         declarator_obstack.
2366 2014-02-03  Marc Glisse  <marc.glisse@inria.fr>
2368         PR c++/53017
2369         PR c++/59211
2370         * tree.c (handle_init_priority_attribute): Call default_conversion on
2371         the attribute argument.
2373 2014-02-03  Paolo Carlini  <paolo.carlini@oracle.com>
2375         PR c++/58871
2376         * method.c (synthesized_method_walk): If vbases is non-null but
2377         is_empty is true, likewise don't worry about the virtual bases.
2379 2014-02-01  Paolo Carlini  <paolo.carlini@oracle.com>
2381         PR c++/51219
2382         * typeck2.c (process_init_constructor_record): Just skip unnamed
2383         bit-fields.
2385 2014-01-31  Jason Merrill  <jason@redhat.com>
2387         PR c++/59469
2388         * pt.c (mark_decl_instantiated): Call mark_needed.
2390         PR c++/58672
2391         * decl2.c (handle_tls_init): Handle null init fn.
2393         PR c++/55800
2394         * decl2.c (get_tls_init_fn): Copy DECL_EXTERNAL from the variable.
2396 2014-01-31  Paolo Carlini  <paolo.carlini@oracle.com>
2398         PR c++/59082
2399         * class.c (build_vfield_ref): Early return error_mark_node if
2400         TYPE_VFIELD (type) is null.
2401         (build_base_path): Check return value of build_vfield_ref.
2403 2014-01-31  Jason Merrill  <jason@redhat.com>
2405         PR c++/59646
2406         * call.c (convert_like_real) [ck_aggr]: Set TARGET_EXPR_LIST_INIT_P.
2407         [ck_list]: Check for error_mark_node.
2408         (build_aggr_conv): Set LOOKUP_NO_NARROWING and check_narrowing.
2410         PR c++/57043
2411         * pt.c (fn_type_unification): Don't do DEDUCE_EXACT check
2412         during partial ordering.
2414 2014-01-31  Marek Polacek  <polacek@redhat.com>
2416         PR c/59963
2417         * typeck.c (build_function_call_vec): Add dummy arg_loc parameter.
2419 2014-01-30  Jason Merrill  <jason@redhat.com>
2421         PR c++/57899
2422         * cp-tree.h (struct saved_scope): Add x_local_specializations.
2423         (local_specializations): New macro.
2424         * pt.c (local_specializations): Remove variable.
2426 2014-01-30  Richard Sandiford  <rdsandiford@googlemail.com>
2428         PR c++/58708
2429         * parser.c (make_string_pack): Use double_int::from_buffer.
2431 2014-01-30  Marek Polacek  <polacek@redhat.com>
2433         PR c/59940
2434         * typeck.c (build_ptrmemfunc1): Call convert_and_check with
2435         input_location.
2436         * cvt.c (cp_convert_and_check): Call warnings_for_convert_and_check
2437         with input_location.
2438         * call.c (build_conditional_expr_1): Call unsafe_conversion_p with
2439         loc parameter.
2441 2014-01-30  Paolo Carlini  <paolo.carlini@oracle.com>
2443         PR c++/58843
2444         * typeck.c (lookup_destructor): Check dtor_type for error_mark_node.
2446 2014-01-30  Paolo Carlini  <paolo.carlini@oracle.com>
2448         PR c++/58649
2449         * pt.c (lookup_template_class_1): Check start_enum return value
2450         for error_mark_node.
2452 2014-01-30  Paolo Carlini  <paolo.carlini@oracle.com>
2454         * decl.c (duplicate_decls, typename_hash, typename_compare):
2455         Use TYPE_IDENTIFIER.
2456         * error.c (dump_type): Likewise.
2457         * mangle.c (dump_substitution_candidates): Likewise.
2459 2014-01-30  Jason Merrill  <jason@redhat.com>
2461         PR c++/59633
2462         * decl2.c (attributes_naming_typedef_ok): New.
2463         * cp-tree.h: Declare it.
2464         * decl.c (grokdeclarator): Check it.
2465         * tree.c (no_linkage_check): Handle VECTOR_TYPE.
2467 2014-01-29  Jason Merrill  <jason@redhat.com>
2469         PR c++/59707
2470         * call.c (add_builtin_candidate): Catch dependent types.
2472         PR c++/59989
2473         * pt.c (expand_template_argument_pack): Correct
2474         non_default_args_count calculation.
2476         PR c++/58466
2477         * pt.c (unify_pack_expansion): Call expand_template_argument_pack.
2479         PR c++/59956
2480         * friend.c (do_friend): Pass the TEMPLATE_DECL to add_friend if we
2481         have a friend template in a class template.
2482         * pt.c (tsubst_friend_function): Look through it.
2483         (push_template_decl_real): A friend member template is
2484         primary.
2486 2014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>
2488         PR c++/58846
2489         * decl.c (get_dso_handle_node): Don't crash if dso_handle_node
2490         == error_mark_node.
2492 2014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>
2494         PR c++/58674
2495         * pt.c (instantiate_template_1): Check for error_mark_node the second
2496         argument too.
2498 2014-01-29  Jason Merrill  <jason@redhat.com>
2500         PR c++/59916
2501         * optimize.c (maybe_thunk_body): Build a RETURN_EXPR for
2502         cdtor_returns_this case.
2504         PR c++/59315
2505         * decl.c (cxx_maybe_build_cleanup): Call mark_used.
2507 2014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>
2509         PR c++/58702
2510         * semantics.c (finish_omp_reduction_clause): Check type for
2511         error_mark_node.
2513 2014-01-28  Jason Merrill  <jason@redhat.com>
2515         PR c++/59791
2516         * pt.c (tsubst_decl) [VAR_DECL]: Allow in unevaluated context.
2517         (tsubst_copy): Use it if lookup fails.
2519         PR c++/59818
2520         * pt.c (tsubst_function_type): Make sure we keep the same function
2521         quals.
2523         PR c++/58701
2524         * semantics.c (build_anon_member_initialization): Stop walking
2525         when we run out of COMPONENT_REFs.
2527         PR c++/58632
2528         * decl.c (lookup_and_check_tag): Ignore template parameters if
2529         scope == ts_current.
2530         * pt.c (check_template_shadow): Don't complain about the injected
2531         class name.
2533         * decl.c (duplicate_decls): Tweak.
2535         PR c++/53756
2536         * mangle.c (write_unqualified_name): Handle operator auto.
2538 2014-01-27  Jason Merrill  <jason@redhat.com>
2540         PR c++/59823
2541         Core DR 1138
2542         * call.c (reference_binding): Pass LOOKUP_NO_TEMP_BIND for
2543         list-initialization.  A conversion to rvalue ref that involves
2544         an lvalue-rvalue conversion is bad.
2545         (convert_like_real): Give helpful error message.
2547         PR c++/54652
2548         * decl.c (duplicate_decls): Always use oldtype for TYPE_DECL.
2550         PR c++/58504
2551         * pt.c (tsubst_copy_and_build) [TRAIT_EXPR]: Use tsubst for
2552         types.
2554         PR c++/58606
2555         * pt.c (template_parm_to_arg): Call convert_from_reference.
2556         (tsubst_template_arg): Don't strip reference refs.
2558         PR c++/58639
2559         * call.c (build_aggr_conv): Reject value-initialization of reference.
2561         PR c++/58812
2562         PR c++/58651
2563         * call.c (convert_like_real): Give helpful error about excess braces
2564         for ck_rvalue of scalar type.
2566         Core DR 1288
2567         * call.c (reference_binding): Only elide braces if the single
2568         element is reference-related.
2570         PR c++/58814
2571         * typeck.c (cp_build_modify_expr): Make the RHS an rvalue before
2572         stabilizing.
2574         PR c++/58837
2575         * typeck.c (cp_truthvalue_conversion): Use explicit comparison for
2576         FUNCTION_DECL.
2578         PR c++/59097
2579         * decl.c (compute_array_index_type): Don't call
2580         maybe_constant_value for a non-integral expression.
2582 2014-01-24  Balaji V. Iyer  <balaji.v.iyer@intel.com>
2584         * call.c (magic_varargs_p): Replaced flag_enable_cilkplus with
2585         flag_cilkplus.
2586         * cp-gimplify.c (cp_genericize): Likewise.
2587         * decl.c (grokfndecl): Likewise.
2588         * parser.c (cp_parser_postfix_expression): Likewise.
2589         (cp_parser_postfix_open_square_expression): Likewise.
2590         (cp_parser_direct_declarator): Likewise.
2591         (is_cilkplus_vector_p): Likewise.
2592         (cp_parser_omp_clause_name): Likewise.
2593         (cp_parser_omp_all_clauses): Likewise.
2594         * pt.c (apply_late_template_attributes): Likewise.
2595         * typeck.c (cp_build_array_ref): Likewise.
2596         (cp_build_compound_expr): Likewise.
2597         (check_return_expr): Likewise.
2599 2014-01-24  Jason Merrill  <jason@redhat.com>
2601         PR c++/58550
2602         * decl.c (grokdeclarator): Turn pedwarn about auto return type in
2603         c++11 into error.
2605         PR c++/59886
2606         PR c++/59659
2607         * typeck2.c (process_init_constructor_array): Don't create
2608         RANGE_EXPR yet.
2610 2014-01-24  Jakub Jelinek  <jakub@redhat.com>
2612         * typeck2.c (split_nonconstant_init_1): Fix num_split_elts
2613         handling for RANGE_ARRAY case.
2615 2014-01-24  Paolo Carlini  <paolo.carlini@oracle.com>
2617         PR c++/57524
2618         * name-lookup.c (push_using_directive): Use timevar_cond_start.
2620 2014-01-23  Marek Polacek  <polacek@redhat.com>
2622         PR c/59846
2623         * typeck.c (cp_build_binary_op): Pass location to shorten_compare.
2625 2014-01-23  Marek Polacek  <polacek@redhat.com>
2627         PR c/58346
2628         * typeck.c (pointer_diff): Give an error on arithmetic on pointer to
2629         an empty aggregate.
2631 2014-01-23  Jason Merrill  <jason@redhat.com>
2633         PR c++/55189
2634         * cp-tree.h (struct language_function): Add infinite_loop and
2635         infinite_loops.
2636         (current_function_infinite_loop): New.
2637         * semantics.c (begin_maybe_infinite_loop, end_maybe_infinite_loop)
2638         (break_maybe_infinite_loop): New.
2639         (finish_while_stmt_cond, finish_while_stmt, begin_do_stmt)
2640         (finish_do_stmt, finish_for_cond, finish_for_stmt)
2641         (begin_range_for_stmt): Use them.
2642         * decl.c (finish_function): Don't warn about missing return
2643         if current_function_infinite_loop.
2644         * pt.c (instantiate_decl): Copy current_function_infinite_loop.
2645         * parser.c (cp_parser_jump_statement): Call break_maybe_infinite_loop.
2647         * call.c (build_op_delete_call): Use make_tree_vector and
2648         release_tree_vector.
2650 2014-01-23  Paolo Carlini  <paolo.carlini@oracle.com>
2652         PR c++/58980
2653         * parser.c (cp_parser_enum_specifier): Handle TYPENAME_TYPE as
2654         nested_name_specifier.
2656 2014-01-23  Balaji V. Iyer  <balaji.v.iyer@intel.com>
2658         * parser.c (cp_parser_direct_declarator): When Cilk Plus is enabled
2659         see if there is an attribute after function decl.  If so, then
2660         parse them now.
2661         (cp_parser_late_return_type_opt): Handle parsing of Cilk Plus SIMD
2662         enabled function late parsing.
2663         (cp_parser_gnu_attribute_list): Parse all the tokens for the vector
2664         attribute for a SIMD-enabled function.
2665         (cp_parser_omp_all_clauses): Skip parsing to the end of pragma when
2666         the function is used by SIMD-enabled function (indicated by NULL
2667         pragma token).   Added 3 new clauses: PRAGMA_CILK_CLAUSE_MASK,
2668         PRAGMA_CILK_CLAUSE_NOMASK and PRAGMA_CILK_CLAUSE_VECTORLENGTH
2669         (cp_parser_cilk_simd_vectorlength): Modified this function to handle
2670         vectorlength clause in SIMD-enabled function and #pragma SIMD's
2671         vectorlength clause.  Added a new bool parameter to differentiate
2672         between the two.
2673         (cp_parser_cilk_simd_fn_vector_attrs): New function.
2674         (is_cilkplus_vector_p): Likewise.
2675         (cp_parser_late_parsing_elem_fn_info): Likewise.
2676         (cp_parser_omp_clause_name): Added a check for "mask", "nomask"
2677         and "vectorlength" clauses when Cilk Plus is enabled.
2678         (cp_parser_omp_clause_linear): Added a new parameter of type bool
2679         and emit a sorry message when step size is a parameter.
2680         * parser.h (cp_parser::cilk_simd_fn_info): New field.
2681         * decl.c (grokfndecl): Added flag_enable_cilkplus along with
2682         flag_openmp.
2683         * pt.c (apply_late_template_attributes): Likewise.
2685 2014-01-23  Jakub Jelinek  <jakub@redhat.com>
2687         PR middle-end/58809
2688         * semantics.c (finish_omp_reduction_clause): Reject
2689         BIT_AND_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR on COMPLEX_TYPEs.
2691 2014-01-22  Ville Voutilainen  <ville.voutilainen@gmail.com>
2693         PR c++/59482
2694         * parser.c (cp_parser_class_head): Push the class before parsing
2695         the base-clause, pop after it.
2697 2014-01-20  Eric Botcazou  <ebotcazou@adacore.com>
2699         * decl2.c (cpp_check): Revert prototype change.
2701 2014-01-17  Paolo Carlini  <paolo.carlini@oracle.com>
2703         PR c++/59270
2704         PR c++/58811
2705         * init.c (build_value_init_noctor): Don't pass error_mark_node to
2706         build_value_init.
2708 2014-01-17  Paolo Carlini  <paolo.carlini@oracle.com>
2710         PR c++/59269
2711         * init.c (build_value_init_noctor): Assert !TYPE_HAS_COMPLEX_DFLT
2712         only when errorcount == 0.
2714 2014-01-17  Marek Polacek  <polacek@redhat.com>
2716         PR c++/59838
2717         * cvt.c (ocp_convert): Don't segfault on non-existing
2718         ENUM_UNDERLYING_TYPE.
2720 2014-01-16  Jason Merrill  <jason@redhat.com>
2722         PR c++/59821
2723         * tree.c (bot_manip): Update the location of builtin_LINE and
2724         builtin_FILE calls.
2726 2014-01-14  Jason Merrill  <jason@redhat.com>
2728         PR c++/59659
2729         * typeck2.c (massage_init_elt): New.
2730         (process_init_constructor_record)
2731         (process_init_constructor_union): Use it.
2732         (process_init_constructor_array): Use it.  Use RANGE_EXPR.
2733         (split_nonconstant_init_1): Handle it.
2734         * semantics.c (cxx_eval_vec_init_1): Use force_rvalue.
2736 2014-01-09  Balaji V. Iyer  <balaji.v.iyer@intel.com>
2738         PR c++/59631
2739         * parser.c (cp_parser_postfix_expression): Added a new if-statement
2740         and replaced an existing if-statement with else-if statement.
2741         Changed an existing error message wording to match the one from the C
2742         parser.
2744 2014-01-08  Jason Merrill  <jason@redhat.com>
2746         PR c++/59614
2747         * class.c (abi_tag_data): Add tags field.
2748         (check_abi_tags): Initialize it.
2749         (find_abi_tags_r): Support collecting missing tags.
2750         (mark_type_abi_tags): Don't look at template args.
2751         (inherit_targ_abi_tags): New.
2752         (check_bases_and_members): Use it.
2753         * cp-tree.h (ABI_TAG_IMPLICIT): New.
2754         * mangle.c (write_abi_tags): Check it.
2756 2014-01-07  Jason Merrill  <jason@redhat.com>
2758         PR c++/58856
2759         * pt.c (num_innermost_template_parms): New.
2760         (get_underlying_template): Use it.
2762         PR c++/58965
2763         * mangle.c (write_guarded_var_name): Handle null DECL_NAME.
2765 2014-01-07  Paolo Carlini  <paolo.carlini@oracle.com>
2767         * semantics.c (trait_expr_value, [CPTK_IS_BASE_OF]): Implement
2768         the letter of 20.11.6 about Base and Derived naming the same
2769         class type modulo cv-qualifiers.
2771 2014-01-06  Adam Butcher  <adam@jessamine.co.uk>
2773         PR c++/59635
2774         * lambda.c (maybe_add_lambda_conv_op): Handle marking conversion
2775         function as unimplemented for generic lambdas with varargs.
2777         PR c++/59636
2778         * parser.c (cp_parser_template_parameter): Early out with
2779         error_mark_node if parameter declaration was not parsed.
2781         PR c++/59629
2782         * parser.c (cp_parser_lambda_expression): Save/reset/restore
2783         auto_is_implicit_function_template_parm_p around lambda body.
2785         PR c++/59638
2786         * parser.c (cp_parser_init_declarator): Undo fully implicit
2787         template parameter list when declarator is not a function.
2789 2014-01-03  Marc Glisse  <marc.glisse@inria.fr>
2791         PR c++/58950
2792         * cvt.c (convert_to_void): Handle VEC_PERM_EXPR and VEC_COND_EXPR.
2794 2014-01-03  Tobias Burnus  <burnus@net-b.de>
2796         PR c++/58567
2797         * pt.c (tsubst_omp_for_iterator): Early return for error_mark_node.
2799 2014-01-03  Paolo Carlini  <paolo.carlini@oracle.com>
2801         Core DR 1442
2802         PR c++/59165
2803         * parser.c (cp_parser_perform_range_for_lookup): Don't pass true
2804         as include_std to perform_koenig_lookup.
2805         (cp_parser_postfix_expression): Adjust.
2806         * pt.c (tsubst_copy_and_build): Likewise.
2807         * semantics.c (perform_koenig_lookup): Remove bool parameter.
2808         (omp_reduction_lookup): Adjust.
2809         * name-lookup.c (lookup_arg_dependent_1): Remove bool parameter.
2810         (lookup_arg_dependent): Likewise.
2811         (lookup_function_nonclass): Adjust.
2812         * name-lookup.h: Adjust declaration.
2813         * cp-tree.h: Likewise.
2815 2014-01-02  Marc Glisse  <marc.glisse@inria.fr>
2817         PR c++/59087
2818         * parser.c (cp_parser_userdef_numeric_literal): Mention
2819         -fext-numeric-literals in the message.
2821 2014-01-02  Marc Glisse  <marc.glisse@inria.fr>
2823         PR c++/59641
2824         * call.c (build_conditional_expr_1): Check the return value of
2825         force_rvalue.
2827 2014-01-02  Marc Glisse  <marc.glisse@inria.fr>
2829         * call.c (convert_like_real): Check complain.
2831 2014-01-02  Marc Glisse  <marc.glisse@inria.fr>
2833         PR c++/59378
2834         * typeck.c (build_x_vec_perm_expr): Handle non-dependent arguments
2835         in templates.
2837 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
2839         Update copyright years
2841 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
2843         * cp-array-notation.c, cp-cilkplus.c, vtable-class-hierarchy.c: Use
2844         the standard form for the copyright notice.
2846 Copyright (C) 2014 Free Software Foundation, Inc.
2848 Copying and distribution of this file, with or without modification,
2849 are permitted in any medium without royalty provided the copyright
2850 notice and this notice are preserved.