PR ipa/59469
[official-gcc.git] / gcc / cp / ChangeLog
blob6bb1115fad604fde4ce5f13d0cb00ec7f9cef64b
1 2014-02-05  Jan Hubicka  <hubicka@ucw.cz
3         * parser.c (synthesize_implicit_template_parm): Use grow_tree_vec.
5 2014-02-05  Jakub Jelinek  <jakub@redhat.com>
7         PR c++/58703
8         * parser.c (cp_parser_omp_declare_reduction): Save and free
9         declarator_obstack.
11 2014-02-03  Marc Glisse  <marc.glisse@inria.fr>
13         PR c++/53017
14         PR c++/59211
15         * tree.c (handle_init_priority_attribute): Call default_conversion on
16         the attribute argument.
18 2014-02-03  Paolo Carlini  <paolo.carlini@oracle.com>
20         PR c++/58871
21         * method.c (synthesized_method_walk): If vbases is non-null but
22         is_empty is true, likewise don't worry about the virtual bases.
24 2014-02-01  Paolo Carlini  <paolo.carlini@oracle.com>
26         PR c++/51219
27         * typeck2.c (process_init_constructor_record): Just skip unnamed
28         bit-fields.
30 2014-01-31  Jason Merrill  <jason@redhat.com>
32         PR c++/59469
33         * pt.c (mark_decl_instantiated): Call mark_needed.
35         PR c++/58672
36         * decl2.c (handle_tls_init): Handle null init fn.
38         PR c++/55800
39         * decl2.c (get_tls_init_fn): Copy DECL_EXTERNAL from the variable.
41 2014-01-31  Paolo Carlini  <paolo.carlini@oracle.com>
43         PR c++/59082
44         * class.c (build_vfield_ref): Early return error_mark_node if
45         TYPE_VFIELD (type) is null.
46         (build_base_path): Check return value of build_vfield_ref.
48 2014-01-31  Jason Merrill  <jason@redhat.com>
50         PR c++/59646
51         * call.c (convert_like_real) [ck_aggr]: Set TARGET_EXPR_LIST_INIT_P.
52         [ck_list]: Check for error_mark_node.
53         (build_aggr_conv): Set LOOKUP_NO_NARROWING and check_narrowing.
55         PR c++/57043
56         * pt.c (fn_type_unification): Don't do DEDUCE_EXACT check
57         during partial ordering.
59 2014-01-31  Marek Polacek  <polacek@redhat.com>
61         PR c/59963
62         * typeck.c (build_function_call_vec): Add dummy arg_loc parameter.
64 2014-01-30  Jason Merrill  <jason@redhat.com>
66         PR c++/57899
67         * cp-tree.h (struct saved_scope): Add x_local_specializations.
68         (local_specializations): New macro.
69         * pt.c (local_specializations): Remove variable.
71 2014-01-30  Richard Sandiford  <rdsandiford@googlemail.com>
73         PR c++/58708
74         * parser.c (make_string_pack): Use double_int::from_buffer.
76 2014-01-30  Marek Polacek  <polacek@redhat.com>
78         PR c/59940
79         * typeck.c (build_ptrmemfunc1): Call convert_and_check with
80         input_location.
81         * cvt.c (cp_convert_and_check): Call warnings_for_convert_and_check
82         with input_location.
83         * call.c (build_conditional_expr_1): Call unsafe_conversion_p with
84         loc parameter.
86 2014-01-30  Paolo Carlini  <paolo.carlini@oracle.com>
88         PR c++/58843
89         * typeck.c (lookup_destructor): Check dtor_type for error_mark_node.
91 2014-01-30  Paolo Carlini  <paolo.carlini@oracle.com>
93         PR c++/58649
94         * pt.c (lookup_template_class_1): Check start_enum return value
95         for error_mark_node.
97 2014-01-30  Paolo Carlini  <paolo.carlini@oracle.com>
99         * decl.c (duplicate_decls, typename_hash, typename_compare):
100         Use TYPE_IDENTIFIER.
101         * error.c (dump_type): Likewise.
102         * mangle.c (dump_substitution_candidates): Likewise.
104 2014-01-30  Jason Merrill  <jason@redhat.com>
106         PR c++/59633
107         * decl2.c (attributes_naming_typedef_ok): New.
108         * cp-tree.h: Declare it.
109         * decl.c (grokdeclarator): Check it.
110         * tree.c (no_linkage_check): Handle VECTOR_TYPE.
112 2014-01-29  Jason Merrill  <jason@redhat.com>
114         PR c++/59707
115         * call.c (add_builtin_candidate): Catch dependent types.
117         PR c++/59989
118         * pt.c (expand_template_argument_pack): Correct
119         non_default_args_count calculation.
121         PR c++/58466
122         * pt.c (unify_pack_expansion): Call expand_template_argument_pack.
124         PR c++/59956
125         * friend.c (do_friend): Pass the TEMPLATE_DECL to add_friend if we
126         have a friend template in a class template.
127         * pt.c (tsubst_friend_function): Look through it.
128         (push_template_decl_real): A friend member template is
129         primary.
131 2014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>
133         PR c++/58846
134         * decl.c (get_dso_handle_node): Don't crash if dso_handle_node
135         == error_mark_node.
137 2014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>
139         PR c++/58674
140         * pt.c (instantiate_template_1): Check for error_mark_node the second
141         argument too.
143 2014-01-29  Jason Merrill  <jason@redhat.com>
145         PR c++/59916
146         * optimize.c (maybe_thunk_body): Build a RETURN_EXPR for
147         cdtor_returns_this case.
149         PR c++/59315
150         * decl.c (cxx_maybe_build_cleanup): Call mark_used.
152 2014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>
154         PR c++/58702
155         * semantics.c (finish_omp_reduction_clause): Check type for
156         error_mark_node.
158 2014-01-28  Jason Merrill  <jason@redhat.com>
160         PR c++/59791
161         * pt.c (tsubst_decl) [VAR_DECL]: Allow in unevaluated context.
162         (tsubst_copy): Use it if lookup fails.
164         PR c++/59818
165         * pt.c (tsubst_function_type): Make sure we keep the same function
166         quals.
168         PR c++/58701
169         * semantics.c (build_anon_member_initialization): Stop walking
170         when we run out of COMPONENT_REFs.
172         PR c++/58632
173         * decl.c (lookup_and_check_tag): Ignore template parameters if
174         scope == ts_current.
175         * pt.c (check_template_shadow): Don't complain about the injected
176         class name.
178         * decl.c (duplicate_decls): Tweak.
180         PR c++/53756
181         * mangle.c (write_unqualified_name): Handle operator auto.
183 2014-01-27  Jason Merrill  <jason@redhat.com>
185         PR c++/59823
186         Core DR 1138
187         * call.c (reference_binding): Pass LOOKUP_NO_TEMP_BIND for
188         list-initialization.  A conversion to rvalue ref that involves
189         an lvalue-rvalue conversion is bad.
190         (convert_like_real): Give helpful error message.
192         PR c++/54652
193         * decl.c (duplicate_decls): Always use oldtype for TYPE_DECL.
195         PR c++/58504
196         * pt.c (tsubst_copy_and_build) [TRAIT_EXPR]: Use tsubst for
197         types.
199         PR c++/58606
200         * pt.c (template_parm_to_arg): Call convert_from_reference.
201         (tsubst_template_arg): Don't strip reference refs.
203         PR c++/58639
204         * call.c (build_aggr_conv): Reject value-initialization of reference.
206         PR c++/58812
207         PR c++/58651
208         * call.c (convert_like_real): Give helpful error about excess braces
209         for ck_rvalue of scalar type.
211         Core DR 1288
212         * call.c (reference_binding): Only elide braces if the single
213         element is reference-related.
215         PR c++/58814
216         * typeck.c (cp_build_modify_expr): Make the RHS an rvalue before
217         stabilizing.
219         PR c++/58837
220         * typeck.c (cp_truthvalue_conversion): Use explicit comparison for
221         FUNCTION_DECL.
223         PR c++/59097
224         * decl.c (compute_array_index_type): Don't call
225         maybe_constant_value for a non-integral expression.
227 2014-01-24  Balaji V. Iyer  <balaji.v.iyer@intel.com>
229         * call.c (magic_varargs_p): Replaced flag_enable_cilkplus with
230         flag_cilkplus.
231         * cp-gimplify.c (cp_genericize): Likewise.
232         * decl.c (grokfndecl): Likewise.
233         * parser.c (cp_parser_postfix_expression): Likewise.
234         (cp_parser_postfix_open_square_expression): Likewise.
235         (cp_parser_direct_declarator): Likewise.
236         (is_cilkplus_vector_p): Likewise.
237         (cp_parser_omp_clause_name): Likewise.
238         (cp_parser_omp_all_clauses): Likewise.
239         * pt.c (apply_late_template_attributes): Likewise.
240         * typeck.c (cp_build_array_ref): Likewise.
241         (cp_build_compound_expr): Likewise.
242         (check_return_expr): Likewise.
244 2014-01-24  Jason Merrill  <jason@redhat.com>
246         PR c++/58550
247         * decl.c (grokdeclarator): Turn pedwarn about auto return type in
248         c++11 into error.
250         PR c++/59886
251         PR c++/59659
252         * typeck2.c (process_init_constructor_array): Don't create
253         RANGE_EXPR yet.
255 2014-01-24  Jakub Jelinek  <jakub@redhat.com>
257         * typeck2.c (split_nonconstant_init_1): Fix num_split_elts
258         handling for RANGE_ARRAY case.
260 2014-01-24  Paolo Carlini  <paolo.carlini@oracle.com>
262         PR c++/57524
263         * name-lookup.c (push_using_directive): Use timevar_cond_start.
265 2014-01-23  Marek Polacek  <polacek@redhat.com>
267         PR c/59846
268         * typeck.c (cp_build_binary_op): Pass location to shorten_compare.
270 2014-01-23  Marek Polacek  <polacek@redhat.com>
272         PR c/58346
273         * typeck.c (pointer_diff): Give an error on arithmetic on pointer to
274         an empty aggregate.
276 2014-01-23  Jason Merrill  <jason@redhat.com>
278         PR c++/55189
279         * cp-tree.h (struct language_function): Add infinite_loop and
280         infinite_loops.
281         (current_function_infinite_loop): New.
282         * semantics.c (begin_maybe_infinite_loop, end_maybe_infinite_loop)
283         (break_maybe_infinite_loop): New.
284         (finish_while_stmt_cond, finish_while_stmt, begin_do_stmt)
285         (finish_do_stmt, finish_for_cond, finish_for_stmt)
286         (begin_range_for_stmt): Use them.
287         * decl.c (finish_function): Don't warn about missing return
288         if current_function_infinite_loop.
289         * pt.c (instantiate_decl): Copy current_function_infinite_loop.
290         * parser.c (cp_parser_jump_statement): Call break_maybe_infinite_loop.
292         * call.c (build_op_delete_call): Use make_tree_vector and
293         release_tree_vector.
295 2014-01-23  Paolo Carlini  <paolo.carlini@oracle.com>
297         PR c++/58980
298         * parser.c (cp_parser_enum_specifier): Handle TYPENAME_TYPE as
299         nested_name_specifier.
301 2014-01-23  Balaji V. Iyer  <balaji.v.iyer@intel.com>
303         * parser.c (cp_parser_direct_declarator): When Cilk Plus is enabled
304         see if there is an attribute after function decl.  If so, then
305         parse them now.
306         (cp_parser_late_return_type_opt): Handle parsing of Cilk Plus SIMD
307         enabled function late parsing.
308         (cp_parser_gnu_attribute_list): Parse all the tokens for the vector
309         attribute for a SIMD-enabled function.
310         (cp_parser_omp_all_clauses): Skip parsing to the end of pragma when
311         the function is used by SIMD-enabled function (indicated by NULL
312         pragma token).   Added 3 new clauses: PRAGMA_CILK_CLAUSE_MASK,
313         PRAGMA_CILK_CLAUSE_NOMASK and PRAGMA_CILK_CLAUSE_VECTORLENGTH
314         (cp_parser_cilk_simd_vectorlength): Modified this function to handle
315         vectorlength clause in SIMD-enabled function and #pragma SIMD's
316         vectorlength clause.  Added a new bool parameter to differentiate
317         between the two.
318         (cp_parser_cilk_simd_fn_vector_attrs): New function.
319         (is_cilkplus_vector_p): Likewise.
320         (cp_parser_late_parsing_elem_fn_info): Likewise.
321         (cp_parser_omp_clause_name): Added a check for "mask", "nomask"
322         and "vectorlength" clauses when Cilk Plus is enabled.
323         (cp_parser_omp_clause_linear): Added a new parameter of type bool
324         and emit a sorry message when step size is a parameter.
325         * parser.h (cp_parser::cilk_simd_fn_info): New field.
326         * decl.c (grokfndecl): Added flag_enable_cilkplus along with
327         flag_openmp.
328         * pt.c (apply_late_template_attributes): Likewise.
330 2014-01-23  Jakub Jelinek  <jakub@redhat.com>
332         PR middle-end/58809
333         * semantics.c (finish_omp_reduction_clause): Reject
334         BIT_AND_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR on COMPLEX_TYPEs.
336 2014-01-22  Ville Voutilainen  <ville.voutilainen@gmail.com>
338         PR c++/59482
339         * parser.c (cp_parser_class_head): Push the class before parsing
340         the base-clause, pop after it.
342 2014-01-20  Eric Botcazou  <ebotcazou@adacore.com>
344         * decl2.c (cpp_check): Revert prototype change.
346 2014-01-17  Paolo Carlini  <paolo.carlini@oracle.com>
348         PR c++/59270
349         PR c++/58811
350         * init.c (build_value_init_noctor): Don't pass error_mark_node to
351         build_value_init.
353 2014-01-17  Paolo Carlini  <paolo.carlini@oracle.com>
355         PR c++/59269
356         * init.c (build_value_init_noctor): Assert !TYPE_HAS_COMPLEX_DFLT
357         only when errorcount == 0.
359 2014-01-17  Marek Polacek  <polacek@redhat.com>
361         PR c++/59838
362         * cvt.c (ocp_convert): Don't segfault on non-existing
363         ENUM_UNDERLYING_TYPE.
365 2014-01-16  Jason Merrill  <jason@redhat.com>
367         PR c++/59821
368         * tree.c (bot_manip): Update the location of builtin_LINE and
369         builtin_FILE calls.
371 2014-01-14  Jason Merrill  <jason@redhat.com>
373         PR c++/59659
374         * typeck2.c (massage_init_elt): New.
375         (process_init_constructor_record)
376         (process_init_constructor_union): Use it.
377         (process_init_constructor_array): Use it.  Use RANGE_EXPR.
378         (split_nonconstant_init_1): Handle it.
379         * semantics.c (cxx_eval_vec_init_1): Use force_rvalue.
381 2014-01-09  Balaji V. Iyer  <balaji.v.iyer@intel.com>
383         PR c++/59631
384         * parser.c (cp_parser_postfix_expression): Added a new if-statement
385         and replaced an existing if-statement with else-if statement.
386         Changed an existing error message wording to match the one from the C
387         parser.
389 2014-01-08  Jason Merrill  <jason@redhat.com>
391         PR c++/59614
392         * class.c (abi_tag_data): Add tags field.
393         (check_abi_tags): Initialize it.
394         (find_abi_tags_r): Support collecting missing tags.
395         (mark_type_abi_tags): Don't look at template args.
396         (inherit_targ_abi_tags): New.
397         (check_bases_and_members): Use it.
398         * cp-tree.h (ABI_TAG_IMPLICIT): New.
399         * mangle.c (write_abi_tags): Check it.
401 2014-01-07  Jason Merrill  <jason@redhat.com>
403         PR c++/58856
404         * pt.c (num_innermost_template_parms): New.
405         (get_underlying_template): Use it.
407         PR c++/58965
408         * mangle.c (write_guarded_var_name): Handle null DECL_NAME.
410 2014-01-07  Paolo Carlini  <paolo.carlini@oracle.com>
412         * semantics.c (trait_expr_value, [CPTK_IS_BASE_OF]): Implement
413         the letter of 20.11.6 about Base and Derived naming the same
414         class type modulo cv-qualifiers.
416 2014-01-06  Adam Butcher  <adam@jessamine.co.uk>
418         PR c++/59635
419         * lambda.c (maybe_add_lambda_conv_op): Handle marking conversion
420         function as unimplemented for generic lambdas with varargs.
422         PR c++/59636
423         * parser.c (cp_parser_template_parameter): Early out with
424         error_mark_node if parameter declaration was not parsed.
426         PR c++/59629
427         * parser.c (cp_parser_lambda_expression): Save/reset/restore
428         auto_is_implicit_function_template_parm_p around lambda body.
430         PR c++/59638
431         * parser.c (cp_parser_init_declarator): Undo fully implicit
432         template parameter list when declarator is not a function.
434 2014-01-03  Marc Glisse  <marc.glisse@inria.fr>
436         PR c++/58950
437         * cvt.c (convert_to_void): Handle VEC_PERM_EXPR and VEC_COND_EXPR.
439 2014-01-03  Tobias Burnus  <burnus@net-b.de>
441         PR c++/58567
442         * pt.c (tsubst_omp_for_iterator): Early return for error_mark_node.
444 2014-01-03  Paolo Carlini  <paolo.carlini@oracle.com>
446         Core DR 1442
447         PR c++/59165
448         * parser.c (cp_parser_perform_range_for_lookup): Don't pass true
449         as include_std to perform_koenig_lookup.
450         (cp_parser_postfix_expression): Adjust.
451         * pt.c (tsubst_copy_and_build): Likewise.
452         * semantics.c (perform_koenig_lookup): Remove bool parameter.
453         (omp_reduction_lookup): Adjust.
454         * name-lookup.c (lookup_arg_dependent_1): Remove bool parameter.
455         (lookup_arg_dependent): Likewise.
456         (lookup_function_nonclass): Adjust.
457         * name-lookup.h: Adjust declaration.
458         * cp-tree.h: Likewise.
460 2014-01-02  Marc Glisse  <marc.glisse@inria.fr>
462         PR c++/59087
463         * parser.c (cp_parser_userdef_numeric_literal): Mention
464         -fext-numeric-literals in the message.
466 2014-01-02  Marc Glisse  <marc.glisse@inria.fr>
468         PR c++/59641
469         * call.c (build_conditional_expr_1): Check the return value of
470         force_rvalue.
472 2014-01-02  Marc Glisse  <marc.glisse@inria.fr>
474         * call.c (convert_like_real): Check complain.
476 2014-01-02  Marc Glisse  <marc.glisse@inria.fr>
478         PR c++/59378
479         * typeck.c (build_x_vec_perm_expr): Handle non-dependent arguments
480         in templates.
482 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
484         Update copyright years
486 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
488         * cp-array-notation.c, cp-cilkplus.c, vtable-class-hierarchy.c: Use
489         the standard form for the copyright notice.
491 Copyright (C) 2014 Free Software Foundation, Inc.
493 Copying and distribution of this file, with or without modification,
494 are permitted in any medium without royalty provided the copyright
495 notice and this notice are preserved.