Added support for Cilk Plus SIMD-enabled functions for C++.
[official-gcc.git] / gcc / cp / ChangeLog
blob3946901cfc1723adcb666cd5240b3160c0e116fe
1 2014-01-23  Balaji V. Iyer  <balaji.v.iyer@intel.com>
3         * parser.c (cp_parser_direct_declarator): When Cilk Plus is enabled
4         see if there is an attribute after function decl.  If so, then
5         parse them now.
6         (cp_parser_late_return_type_opt): Handle parsing of Cilk Plus SIMD
7         enabled function late parsing.
8         (cp_parser_gnu_attribute_list): Parse all the tokens for the vector
9         attribute for a SIMD-enabled function.
10         (cp_parser_omp_all_clauses): Skip parsing to the end of pragma when
11         the function is used by SIMD-enabled function (indicated by NULL
12         pragma token).   Added 3 new clauses: PRAGMA_CILK_CLAUSE_MASK,
13         PRAGMA_CILK_CLAUSE_NOMASK and PRAGMA_CILK_CLAUSE_VECTORLENGTH
14         (cp_parser_cilk_simd_vectorlength): Modified this function to handle
15         vectorlength clause in SIMD-enabled function and #pragma SIMD's
16         vectorlength clause.  Added a new bool parameter to differentiate
17         between the two.
18         (cp_parser_cilk_simd_fn_vector_attrs): New function.
19         (is_cilkplus_vector_p): Likewise.
20         (cp_parser_late_parsing_elem_fn_info): Likewise.
21         (cp_parser_omp_clause_name): Added a check for "mask", "nomask"
22         and "vectorlength" clauses when Cilk Plus is enabled.
23         (cp_parser_omp_clause_linear): Added a new parameter of type bool
24         and emit a sorry message when step size is a parameter.
25         * parser.h (cp_parser::cilk_simd_fn_info): New field.
26         * decl.c (grokfndecl): Added flag_enable_cilkplus along with
27         flag_openmp.
28         * pt.c (apply_late_template_attributes): Likewise.
30 2014-01-23  Jakub Jelinek  <jakub@redhat.com>
32         PR middle-end/58809
33         * semantics.c (finish_omp_reduction_clause): Reject
34         BIT_AND_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR on COMPLEX_TYPEs.
36 2014-01-22  Ville Voutilainen  <ville.voutilainen@gmail.com>
38         PR c++/59482
39         * parser.c (cp_parser_class_head): Push the class before parsing
40         the base-clause, pop after it.
42 2014-01-20  Eric Botcazou  <ebotcazou@adacore.com>
44         * decl2.c (cpp_check): Revert prototype change.
46 2014-01-17  Paolo Carlini  <paolo.carlini@oracle.com>
48         PR c++/59270
49         PR c++/58811
50         * init.c (build_value_init_noctor): Don't pass error_mark_node to
51         build_value_init.
53 2014-01-17  Paolo Carlini  <paolo.carlini@oracle.com>
55         PR c++/59269
56         * init.c (build_value_init_noctor): Assert !TYPE_HAS_COMPLEX_DFLT
57         only when errorcount == 0.
59 2014-01-17  Marek Polacek  <polacek@redhat.com>
61         PR c++/59838
62         * cvt.c (ocp_convert): Don't segfault on non-existing
63         ENUM_UNDERLYING_TYPE.
65 2014-01-16  Jason Merrill  <jason@redhat.com>
67         PR c++/59821
68         * tree.c (bot_manip): Update the location of builtin_LINE and
69         builtin_FILE calls.
71 2014-01-14  Jason Merrill  <jason@redhat.com>
73         PR c++/59659
74         * typeck2.c (massage_init_elt): New.
75         (process_init_constructor_record)
76         (process_init_constructor_union): Use it.
77         (process_init_constructor_array): Use it.  Use RANGE_EXPR.
78         (split_nonconstant_init_1): Handle it.
79         * semantics.c (cxx_eval_vec_init_1): Use force_rvalue.
81 2014-01-09  Balaji V. Iyer  <balaji.v.iyer@intel.com>
83         PR c++/59631
84         * parser.c (cp_parser_postfix_expression): Added a new if-statement
85         and replaced an existing if-statement with else-if statement.
86         Changed an existing error message wording to match the one from the C
87         parser.
89 2014-01-08  Jason Merrill  <jason@redhat.com>
91         PR c++/59614
92         * class.c (abi_tag_data): Add tags field.
93         (check_abi_tags): Initialize it.
94         (find_abi_tags_r): Support collecting missing tags.
95         (mark_type_abi_tags): Don't look at template args.
96         (inherit_targ_abi_tags): New.
97         (check_bases_and_members): Use it.
98         * cp-tree.h (ABI_TAG_IMPLICIT): New.
99         * mangle.c (write_abi_tags): Check it.
101 2014-01-07  Jason Merrill  <jason@redhat.com>
103         PR c++/58856
104         * pt.c (num_innermost_template_parms): New.
105         (get_underlying_template): Use it.
107         PR c++/58965
108         * mangle.c (write_guarded_var_name): Handle null DECL_NAME.
110 2014-01-07  Paolo Carlini  <paolo.carlini@oracle.com>
112         * semantics.c (trait_expr_value, [CPTK_IS_BASE_OF]): Implement
113         the letter of 20.11.6 about Base and Derived naming the same
114         class type modulo cv-qualifiers.
116 2014-01-06  Adam Butcher  <adam@jessamine.co.uk>
118         PR c++/59635
119         * lambda.c (maybe_add_lambda_conv_op): Handle marking conversion
120         function as unimplemented for generic lambdas with varargs.
122         PR c++/59636
123         * parser.c (cp_parser_template_parameter): Early out with
124         error_mark_node if parameter declaration was not parsed.
126         PR c++/59629
127         * parser.c (cp_parser_lambda_expression): Save/reset/restore
128         auto_is_implicit_function_template_parm_p around lambda body.
130         PR c++/59638
131         * parser.c (cp_parser_init_declarator): Undo fully implicit
132         template parameter list when declarator is not a function.
134 2014-01-03  Marc Glisse  <marc.glisse@inria.fr>
136         PR c++/58950
137         * cvt.c (convert_to_void): Handle VEC_PERM_EXPR and VEC_COND_EXPR.
139 2014-01-03  Tobias Burnus  <burnus@net-b.de>
141         PR c++/58567
142         * pt.c (tsubst_omp_for_iterator): Early return for error_mark_node.
144 2014-01-03  Paolo Carlini  <paolo.carlini@oracle.com>
146         Core DR 1442
147         PR c++/59165
148         * parser.c (cp_parser_perform_range_for_lookup): Don't pass true
149         as include_std to perform_koenig_lookup.
150         (cp_parser_postfix_expression): Adjust.
151         * pt.c (tsubst_copy_and_build): Likewise.
152         * semantics.c (perform_koenig_lookup): Remove bool parameter.
153         (omp_reduction_lookup): Adjust.
154         * name-lookup.c (lookup_arg_dependent_1): Remove bool parameter.
155         (lookup_arg_dependent): Likewise.
156         (lookup_function_nonclass): Adjust.
157         * name-lookup.h: Adjust declaration.
158         * cp-tree.h: Likewise.
160 2014-01-02  Marc Glisse  <marc.glisse@inria.fr>
162         PR c++/59087
163         * parser.c (cp_parser_userdef_numeric_literal): Mention
164         -fext-numeric-literals in the message.
166 2014-01-02  Marc Glisse  <marc.glisse@inria.fr>
168         PR c++/59641
169         * call.c (build_conditional_expr_1): Check the return value of
170         force_rvalue.
172 2014-01-02  Marc Glisse  <marc.glisse@inria.fr>
174         * call.c (convert_like_real): Check complain.
176 2014-01-02  Marc Glisse  <marc.glisse@inria.fr>
178         PR c++/59378
179         * typeck.c (build_x_vec_perm_expr): Handle non-dependent arguments
180         in templates.
182 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
184         Update copyright years
186 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
188         * cp-array-notation.c, cp-cilkplus.c, vtable-class-hierarchy.c: Use
189         the standard form for the copyright notice.
191 Copyright (C) 2014 Free Software Foundation, Inc.
193 Copying and distribution of this file, with or without modification,
194 are permitted in any medium without royalty provided the copyright
195 notice and this notice are preserved.