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