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