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