re PR c++/47207 ([C++0x] ICE: in decl_constant_var_p, at cp/decl2.c:3563 on invalid...
[gcc.git] / gcc / cp / ChangeLog
1 2011-02-21 Jason Merrill <jason@redhat.com>
2
3 PR c++/47207
4 * decl2.c (decl_constant_var_p): A constexpr var needs an
5 initializer to be constant.
6 * semantics.c (cxx_eval_constant_expression): Complain about
7 constexpr var used in its own initializer.
8 * call.c (set_up_extended_ref_temp): Set
9 DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P too.
10
11 2011-02-20 Jason Merrill <jason@redhat.com>
12
13 PR c++/47199
14 * semantics.c (cxx_eval_call_expression): Call
15 cxx_eval_constant_expression in trivial shortcut.
16
17 PR c++/46831
18 * call.c (convert_class_to_reference): Don't try to set up a
19 second conv sequence for non-viable candidates.
20
21 PR c++/47703
22 * error.c (location_of): Handle non-tagged types.
23
24 PR c++/46472
25 * method.c (process_subob_fn): Instantiate constexpr templates.
26 * optimize.c (maybe_clone_body): Propagate DECL_DECLARED_CONSTEXPR_P.
27
28 2011-02-20 Dodji Seketeli <dodji@redhat.com>
29
30 PR c++/46394
31 * pt.c (tsubst_pack_expansion): do not use
32 cp_tree_equal/same_type_p to detect an expansion of a parameter
33 pack.
34
35 2011-02-19 Jason Merrill <jason@redhat.com>
36
37 PR c++/47503
38 * semantics.c (cxx_eval_call_expression): Shortcut trivial copy.
39
40 2011-02-18 Paolo Carlini <paolo.carlini@oracle.com>
41
42 PR c++/47795
43 * semantics.c (finish_non_static_data_member): Early return if
44 object is error_mark_node.
45
46 2011-02-18 Dodji Seketeli <dodji@redhat.com>
47
48 PR c++/47208
49 * pt.c (do_auto_deduction): Do not mention error_mark_node in
50 diagnostics.
51 * semantics.c (finish_id_expression): Do not pass erroneous decl
52 to decl_constant_var_p.
53
54 2011-02-17 Jakub Jelinek <jakub@redhat.com>
55
56 PR c++/47783
57 * cvt.c (convert_from_reference): Call mark_exp_read.
58
59 2011-02-11 Dodji Seketeli <dodji@redhat.com>
60
61 PR c++/47172
62 * pt.c (finish_call_expr): Consider a call expression that has a
63 dependent "this" pointer as being dependent. Add comments.
64 (dependent_type_p, type_dependent_expression_p): Update comments.
65
66 2011-02-16 Dodji Seketeli <dodji@redhat.com>
67
68 PR c++/47326
69 * pt.c (tsubst_copy)<case SIZEOF_EXPR>: Ensure that even pack
70 expansion arguments are not evaluated.
71
72 2011-02-16 Jakub Jelinek <jakub@redhat.com>
73
74 PR c++/47704
75 * cp-tree.h (ENUM_FIXED_UNDERLYING_TYPE_P): Use TYPE_LANG_FLAG_5
76 instead of TYPE_LANG_FLAG_3.
77 * pt.c (lookup_template_class): Copy over
78 ENUM_FIXED_UNDERLYING_TYPE_P.
79
80 2011-02-15 Jason Merrill <jason@redhat.com>
81
82 PR c++/46807
83 * method.c (synthesized_method_walk): Always exit early for
84 trivial fn in C++98 mode.
85
86 2011-02-14 Jason Merrill <jason@redhat.com>
87
88 PR c++/47482
89 * parser.c (cp_parser_enumerator_definition): Call
90 fold_non_dependent_expr.
91
92 2011-02-09 Jason Merrill <jason@redhat.com>
93
94 * decl.c (cp_make_fname_decl): Set DECL_THIS_STATIC at toplevel.
95 * semantics.c (finish_fname): Only return the name if we're in
96 a function.
97
98 * decl.c (build_enumerator): Don't perform integral promotions on
99 non-integral constants.
100
101 * cvt.c (convert_to_void): Handle null op1.
102
103 * class.c (type_has_constexpr_default_constructor): Make sure the
104 caller stripped an enclosing array.
105 * init.c (perform_member_init): Strip arrays before calling it.
106
107 PR c++/47511
108 * semantics.c (potential_constant_expression_1): Handle TEMPLATE_DECL.
109
110 2011-02-03 Dodji Seketeli <dodji@redhat.com>
111
112 PR c++/47398
113 * tree.c (cp_tree_equal)<TEMPLATE_PARM_INDEX>: Take the number of
114 template parameters in account.
115
116 2011-02-03 Nathan Froyd <froydnj@codesourcery.com>
117
118 PR c++/46890
119 * parser.c (cp_parser_class_specifier): Fix setting of
120 want_semicolon.
121
122 2011-01-31 Jakub Jelinek <jakub@redhat.com>
123
124 PR c++/47416
125 * semantics.c (build_data_member_initialization): Handle
126 STATEMENT_LIST always instead of just for CLEANUP_BODY.
127
128 2011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
129
130 * g++spec.c (lang_specific_driver) [HAVE_LD_STATIC_DYNAMIC] Use
131 LD_STATIC_OPTION, LD_DYNAMIC_OPTION.
132
133 2011-01-29 Dodji Seketeli <dodji@redhat.com>
134
135 PR c++/47311
136 * cp-tree.h (fixup_template_parms): Declare.
137 * pt.c (end_template_parm_list): Do not fixup template parms here.
138 (fixup_template_parms): Remove static. Fix typo in the
139 comments. Remove useless code statement.
140 (fixup_template_parm): For a template template parameter, fixup
141 its attributes before fixing up its type.
142 * parser.c
143 (cp_parser_template_declaration_after_export): After parsing
144 template parameters fixup their types.
145
146 2011-01-26 Jakub Jelinek <jakub@redhat.com>
147
148 PR c++/47476
149 * semantics.c (potential_constant_expression_1): Handle
150 TRUTH_XOR_EXPR.
151
152 2011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
153
154 PR c++/43601
155 * semantics.c (expand_or_defer_fn_1): Handle it.
156 * decl2.c (decl_needed_p): Likewise.
157
158 2011-01-21 Jason Merrill <jason@redhat.com>
159
160 PR c++/47041
161 * semantics.c (build_constexpr_constructor_member_initializers):
162 Handle trivial copy.
163
164 2011-01-21 Jakub Jelinek <jakub@redhat.com>
165
166 PR c++/47388
167 * semantics.c (begin_for_stmt): If -fno-for-scope, don't
168 assume init must be NULL if scope is NULL.
169 (begin_range_for_stmt): Likewise.
170
171 2011-01-21 Jason Merrill <jason@redhat.com>
172
173 PR c++/46552
174 * semantics.c (cxx_eval_constant_expression): Handle OFFSET_REF.
175
176 PR c++/46977
177 * semantics.c (potential_constant_expression_1): Split out from
178 potential_constant_expression. Add want_rval parm. Handle
179 template expression forms. Don't enforce restriction on address
180 of automatic variable here. Add a couple of diagnostics that
181 had been missing.
182 (require_potential_constant_expression): New entry point.
183 (build_data_member_initialization, register_constexpr_fundef): Adjust.
184 (maybe_constant_value): Check potential_constant_expression.
185 * pt.c (fold_non_dependent_expr_sfinae): Likewise.
186 * tree.c (build_vec_init_expr): Adjust.
187
188 2011-01-19 Jakub Jelinek <jakub@redhat.com>
189
190 PR c++/47303
191 * decl2.c (finish_anon_union): Only call mangle_decl if TREE_STATIC
192 or DECL_EXTERNAL.
193
194 2011-01-17 Jason Merrill <jason@redhat.com>
195
196 PR c++/47067
197 * semantics.c (base_field_constructor_elt): New fn.
198 (cxx_eval_bare_aggregate): Use it.
199 (build_data_member_initialization): Leave COMPONENT_REF for
200 vfield inits.
201
202 2011-01-14 Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
203
204 * parser.c (cp_parser_range_for): Remove the "unused variable" warning
205 workaround.
206
207 2011-01-15 Giovanni Funchal <gafunchal@gmail.com>
208 Jonathan Wakely <jwakely.gcc@gmail.com>
209
210 PR c++/33558
211 * decl.c (grokdeclarator): Reject mutable reference members.
212
213 2011-01-14 Jason Merrill <jason@redhat.com>
214
215 PR c++/47289
216 * pt.c (coerce_template_parms): Fix error recovery.
217
218 PR c++/46903
219 * typeck2.c (check_narrowing): Only check arithmetic types.
220
221 PR c++/46688
222 * tree.c (build_vec_init_expr): Handle flexible array
223 properly.
224
225 2011-01-13 Kai Tietz <kai.tietz@onevision.com>
226
227 PR c++/47213
228 * cp-tree.h (CLASSTYPE_VISIBILITY): Use
229 TYPE_MAIN_DECL instead of TYPE_NAME.
230 (CLASSTYPE_VISIBILITY_SPECIFIED): Likewise.
231 * decl2.c (determine_visibility): Add check
232 of CLASS_TYPE_P for underlying_type.
233
234 2011-01-12 Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
235
236 * cp-tree.h (begin_for_scope): New prototype.
237 (begin_for_stmt): Update prototype.
238 (begin_range_for_stmt): Update prototype.
239 * init.c (build_vec_init): Update call to begin_for_stmt.
240 * parser.c (cp_parser_for): New.
241 (cp_parser_c_for): Add three new parameters.
242 (cp_parser_range_for): Likewise. Most parsing code removed.
243 (cp_parser_iteration_statement): Call cp_parser_for instead of
244 cp_parser_c_for and cp_parser_range_for.
245 (cp_parser_for_init_statement): Add new parameter and return type.
246 (cp_parser_block_declaration): Update call to
247 cp_parser_simple_declaration.
248 (cp_parser_simple_declaration): Add new parameter.
249 Update call to cp_parser_init_declarator.
250 (cp_parser_init_declarator): Add new parameter.
251 * pt.c (tsubst_expr): Update call to begin_for_stmt.
252 * semantics.c (begin_for_scope): New.
253 (begin_for_stmt): Add two new parameters.
254 (begin_range_for_stmt): Likewise.
255
256 2011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
257
258 * parser.c (cp_parser_objc_at_property_declaration): Improved
259 error message.
260
261 2011-01-11 Dodji Seketeli <dodji@redhat.com>
262
263 PR debug/46955
264 * cp-lang.c (get_template_innermost_arguments_folded)
265 (get_template_argument_pack_elems_folded)
266 (template_arg_needs_folding, fold_cplus_constants): New static
267 functions.
268 (LANG_HOOKS_GET_INNERMOST_GENERIC_ARGS): Set this hook to
269 get_template_innermost_arguments_folded.
270 (LANG_HOOKS_GET_ARGUMENT_PACK_ELEMS): Set this hook to
271 get_template_argument_pack_elems_folded.
272
273 2011-01-11 Jason Merrill <jason@redhat.com>
274
275 PR c++/46658
276 * init.c (build_new_1): Handle value-init in templates differently.
277
278 PR c++/45520
279 * tree.c (maybe_dummy_object): Check current_class_ref against
280 context, not current_class_type.
281
282 2011-01-08 Nicola Pero <nicola.pero@meta-innovation.com>
283
284 PR objc/47078
285 * parser.c (cp_parser_objc_typename): If the type is unknown, for
286 error recovery purposes behave as if it was not specified so that
287 the default type is used.
288
289 2011-01-07 Jakub Jelinek <jakub@redhat.com>
290
291 PR c++/47022
292 * pt.c (tsubst_copy_and_build): Use tsubst instead of tsubst_copy
293 for the second build_x_va_arg argument.
294
295 2011-01-05 Tom Tromey <tromey@redhat.com>
296
297 * typeck.c (cp_build_addr_expr_1): Update call to lvalue_error.
298 (lvalue_or_else): Likewise.
299
300 2011-01-01 Kai Tietz <kai.tietz@onevision.com>
301
302 PR target/38662
303 * tree.c (cxx_type_hash_eq):
304 Allow METHOD_TYPE, too.
305
306 \f
307 Copyright (C) 2011 Free Software Foundation, Inc.
308
309 Copying and distribution of this file, with or without modification,
310 are permitted in any medium without royalty provided the copyright
311 notice and this notice are preserved.