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