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