Home | History | Annotate | Line # | Download | only in cp
      1 2011-12-31  Paolo Carlini  <paolo.carlini (a] oracle.com>
      2 
      3 	PR c++/51397
      4 	* semantics.c (finish_static_assert): Use %s instead of %E for
      5 	the error message.
      6 
      7 2011-12-27  Fabien Chne  <fabien (a] gcc.gnu.org>
      8 
      9 	PR c++/23211
     10 	* name-lookup.c (do_class_using_decl): Use dependent_scope_p
     11 	instead of dependent_type_p, to check that a non-dependent
     12 	nested-name-specifier of a class-scope using declaration refers to
     13 	a base, even if the current scope is dependent.
     14 	* parser.c (cp_parser_using_declaration): Set
     15 	USING_DECL_TYPENAME_P to 1 if the DECL is not null. Re-indent a
     16 	'else' close to the prior modification.
     17 
     18 2011-12-23  Jason Merrill  <jason (a] redhat.com>
     19 
     20 	PR c++/51507
     21 	* search.c (at_function_scope_p): Also check cfun.
     22 	* pt.c (tsubst_pack_expansion): Check it instead of
     23 	cp_unevaluated_operand.
     24 	(instantiate_template_1): Use push_to_top_level.
     25 
     26 	* tree.c (dependent_name): OFFSET_REF and BASELINK
     27 	are not dependent names.
     28 
     29 2011-12-21  Jason Merrill  <jason (a] redhat.com>
     30 
     31 	PR c++/51611
     32 	* cp-tree.h (CONVERT_EXPR_VBASE_PATH): New.
     33 	* class.c (build_base_path): Defer vbase conversion in an NSDMI.
     34 	* tree.c (bot_replace): Expand it here.
     35 	* cp-gimplify.c (cp_genericize_r): Make sure deferred conversion
     36 	doesn't leak into GENERIC.
     37 
     38 2011-12-21  Paolo Carlini  <paolo.carlini (a] oracle.com>
     39 
     40 	PR c++/51305
     41 	* semantics.c (massage_constexpr_body): Reorder conditionals, make
     42 	sure a BIND_EXPR embedded in a MUST_NOT_THROW_EXPR is handled.
     43 
     44 2011-12-20  Paolo Carlini  <paolo.carlini (a] oracle.com>
     45 
     46 	PR c++/51621
     47 	* tree.c (diagnose_non_constexpr_vec_init): For value initialization
     48 	pass void_type_node, not void_zero_node, to build_vec_init_elt.
     49 
     50 2011-12-20  Dodji Seketeli  <dodji (a] redhat.com>
     51 
     52 	PR debug/49951
     53 	* decl.c (cxx_maybe_build_cleanup): Don't set location of the call
     54 	to the destructor.
     55 
     56 2011-12-20  Paolo Carlini  <paolo.carlini (a] oracle.com>
     57 
     58 	PR c++/51612
     59 	* semantics.c (is_valid_constexpr_fn): In case of constexpr
     60 	constructors also check for virtual base classes.
     61 
     62 2011-12-19  Paolo Carlini  <paolo.carlini (a] oracle.com>
     63 
     64 	PR c++/51328
     65 	* pt.c (convert_template_argument): Early error out and return
     66 	error_mark_node for invalid uses of destructors as types.
     67 
     68 2011-12-19  Jason Merrill  <jason (a] redhat.com>
     69 
     70 	PR c++/51530
     71 	* pt.c (unify): Handle NULLPTR_TYPE.
     72 
     73 	PR c++/51526
     74 	* semantics.c (build_data_member_initialization): Handle
     75 	delegating constructor.
     76 	(build_constexpr_constructor_member_initializers): Likewise.
     77 
     78 	PR c++/51553
     79 	* cp-tree.h (LOOKUP_LIST_INIT_CTOR): Rename from
     80 	LOOKUP_NO_COPY_CTOR_CONVERSION.
     81 	(add_list_candidates): Set it earlier.
     82 	(add_candidates): Don't check explicit on ctors when it's set.
     83 	(add_function_candidate): Check it even when LOOKUP_ONLYCONVERTING
     84 	is set.
     85 
     86 	PR c++/51553
     87 	* call.c (add_function_candidate): Allow conversions for the copy
     88 	parm in list-initialization unless the argument is an init-list.
     89 
     90 2011-12-19  Jakub Jelinek  <jakub (a] redhat.com>
     91 
     92 	PR c++/51619
     93 	* semantics.c (cxx_eval_vec_init_1): If init is NULL for
     94 	multidimensional array, just set eltinit to NULL_TREE.
     95 
     96 	* cp-gimplify.c (gimplify_must_not_throw_expr): Use
     97 	gimple_seq_add_stmt_without_update instead of gimplify_seq_add_stmt.
     98 
     99 2011-12-19  Dodji Seketeli  <dodji (a] redhat.com>
    100 
    101 	PR c++/51477
    102 	* search.c (lookup_member): Get out early on invalid base type.
    103 
    104 2011-12-19  Jason Merrill  <jason (a] redhat.com>
    105 
    106 	PR c++/51489
    107 	* semantics.c (cxx_eval_outermost_constant_expr): Check for
    108 	conversion from pointer to integer here.
    109 	(cxx_eval_constant_expression) [NOP_EXPR]: Not here.
    110 
    111 2011-12-18  Paolo Carlini  <paolo.carlini (a] oracle.com>
    112 
    113 	* semantics.c (finish_compound_literal): Don't call check_narrowing
    114 	if !(complain & tf_warning_or_error).
    115 
    116 2011-12-17  Jason Merrill  <jason (a] redhat.com>
    117 
    118 	PR c++/51588
    119 	* parser.c (cp_parser_ptr_operator): Reject pointer to member of enum.
    120 
    121 2011-12-17  Richard Henderson  <rth (a] redhat.com>
    122 
    123 	PR bootstrap/51072
    124 	* config-lang.in: Revert last change.
    125 
    126 2011-12-17  Jason Merrill  <jason (a] redhat.com>
    127 
    128 	PR c++/51586
    129 	* parser.c (cp_parser_check_class_key): Handle error_mark_node.
    130 
    131 	PR c++/51587
    132 	* decl.c (start_enum): Avoid using ENUM_UNDERLYING_TYPE on a
    133 	non-enum.
    134 
    135 2011-12-16  Jason Merrill  <jason (a] redhat.com>
    136 
    137 	PR c++/51416
    138 	* init.c (build_value_init_noctor): Check for incomplete type.
    139 
    140 2011-12-16  Richard Henderson  <rth (a] redhat.com>
    141 
    142 	PR bootstrap/51072
    143 	* config-lang.in (target_libs): Include target-libitm.
    144 
    145 2011-12-16  Jason Merrill  <jason (a] redhat.com>
    146 
    147 	PR c++/51461
    148 	* decl.c (check_static_variable_definition): Check COMPLETE_TYPE_P
    149 	before literal_type_p.
    150 
    151 	PR c++/51331
    152 	* class.c (convert_to_base_statically): Just call
    153 	build_simple_base_path.
    154 	(build_simple_base_path): Check field offset.
    155 
    156 2011-12-15  Jason Merrill  <jason (a] redhat.com>
    157 
    158 	PR c++/51458
    159 	* decl.c (has_designator_problem): New.
    160 	(reshape_init_r): Check for improper use of
    161 	designated initializers.
    162 
    163 2011-12-15  Jakub Jelinek  <jakub (a] redhat.com>
    164 
    165 	PR c++/51463
    166 	* decl.c (grokdeclarator): Set DECL_INITIAL of decl
    167 	to error_mark_node to disallow NSDMI if declspecs->storage_class
    168 	is sc_static.
    169 	* parser.c (cp_parser_late_parse_one_default_arg): Return early
    170 	if default_arg is error_mark_node.
    171 
    172 	PR c/51360
    173 	* semantics.c (finish_omp_clauses): For OMP_CLAUSE_NUM_THREADS_EXPR
    174 	and OMP_CLAUSE_SCHEDULE_CHUNK_EXPR call mark_rvalue_use.
    175 
    176 2011-12-15  Dodji Seketeli  <dodji (a] redhat.com>
    177 
    178 	PR c++/51473
    179 	* decl.c (check_tag_decl): Error out on auto specifier with no
    180 	declarator.
    181 
    182 2011-12-15  Jonathan Wakely  <jwakely.gcc (a] gmail.com>
    183 
    184 	PR libstdc++/51365
    185 	* cp-tree.h (CPTK_IS_FINAL): Add.
    186 	* parser.c (cp_parser_translation_unit): Handle RID_IS_FINAL.
    187 	(cp_parser_primary_expression, cp_parser_trait_expr): Likewise.
    188 	* semantics.c (trait_expr_value, finish_trait_expr): Handle
    189 	CPTK_IS_FINAL.
    190 	* cxx-pretty-print.c (pp_cxx_trait_expression): Likewise.
    191 
    192 2011-12-14  Jason Merrill  <jason (a] redhat.com>
    193 
    194 	PR c++/51554
    195 	* semantics.c (cxx_eval_indirect_ref): Fix sanity check.
    196 
    197 	PR c++/51248
    198 	* decl.c (copy_type_enum): Also update variants.
    199 	(finish_enum): Allow variants of complete enums.
    200 
    201 2011-12-14  Dodji Seketeli  <dodji (a] redhat.com>
    202 
    203 	PR c++/51475
    204 	* call.c (struct conversion)<u.next>: Update comment.
    205 	(next_conversion): New static function.
    206 	(convert_like_real): Use it.
    207 
    208 	PR c++/51476
    209 	* pt.c (convert_nontype_argument): Don't call maybe_constant_value
    210 	for PTRMEM_CST nodes.
    211 
    212 2011-12-13  Jason Merrill  <jason (a] redhat.com>
    213 
    214 	PR c++/51406
    215 	PR c++/51161
    216 	* typeck.c (build_static_cast_1): Fix cast of lvalue to
    217 	base rvalue reference.
    218 
    219 2011-12-13  Paolo Carlini  <paolo.carlini (a] oracle.com>
    220 
    221 	PR c++/51464
    222 	* semantics.c (begin_lambda_type): Check begin_class_definition return
    223 	value for error_mark_node.
    224 	* parser.c (cp_parser_lambda_expression): Check begin_lambda_type
    225 	return value for error_mark_node.
    226 
    227 2011-12-13  Fabien Chne  <fabien (a] gcc.gnu.org>
    228 
    229 	PR c++/14258
    230 	* cp-tree.h (USING_DECL_TYPENAME_P): New macro.
    231 	* parser.c (cp_parser_nonclass_name): Handle using declarations
    232 	that refer to a dependent type.
    233 	(cp_parser_using_declaration): Set USING_DECL_TYPENAME_P to 1 if
    234 	the using declaration refers to a dependent type.
    235 
    236 2011-12-12  Jakub Jelinek  <jakub (a] redhat.com>
    237 
    238 	PR c++/51496
    239 	* parser.c (cp_parser_omp_for_loop): When determining whether
    240 	to use cp_parser_omp_for_incr or cp_parser_expression and when
    241 	calling cp_parser_omp_for_incr, use real_decl instead of decl.
    242 
    243 2011-12-12  Torvald Riegel  <triegel (a] redhat.com>
    244 
    245 	* semantics.c (finish_transaction_stmt, build_transaction_expr):
    246 	Accept new noexcept parameter and handle it.
    247 	* cp-tree.h (finish_transaction_stmt, build_transaction_expr): Adapt
    248 	declarations.
    249 	* parser.c (cp_parser_exception_specification_opt): Extract
    250 	noexcept-specification parsing to ...
    251 	(cp_parser_noexcept_specification_opt): ...here.  Allow for parsing
    252 	non-constexpr noexcept arguments.
    253 	(cp_parser_transaction, cp_parser_transaction_expression): Parse
    254 	and handle noexcept-specifications.
    255 	(cp_parser_function_transaction): Adapt to finish_transaction_stmt
    256 	change.
    257 	* pt.c (tsubst_expr): Adapt to new noexcept parameters when
    258 	building transactions.
    259 
    260 2011-12-12  Torvald Riegel  <triegel (a] redhat.com>
    261 
    262 	* cp-tree.def (MUST_NOT_THROW_EXPR): Add condition parameter.
    263 	* cp-tree.h (MUST_NOT_THROW_COND): New.
    264 	(build_must_not_throw_expr): Declare.
    265 	* dump.c (cp_dump_tree): Dump MUST_NOT_THROW_EXPR condition.
    266 	* except.c (build_must_not_throw_expr): New.
    267 	(initialize_handler_parm): Use it.
    268 	(begin_eh_spec_block, wrap_cleanups_r): Adapt to condition.
    269 	* pt.c (tsubst_expr): Handle MUST_NOT_THROW_EXPR.
    270 
    271 2011-12-12  Richard Guenther  <rguenther (a] suse.de>
    272 
    273 	PR lto/51262
    274 	* tree.c (cp_free_lang_data): No longer clear anonymous names.
    275 
    276 2011-12-09  Jason Merrill  <jason (a] redhat.com>
    277 
    278 	PR c++/51151
    279 	* call.c (perform_implicit_conversion_flags): Remove earlier kludge.
    280 	* parser.c (cp_parser_omp_for_loop): Use cp_parser_omp_for_incr
    281 	in templates even if decl isn't type-dependent.
    282 
    283 2011-12-09  Dodji Seketeli  <dodji (a] redhat.com>
    284 
    285 	PR c++/51289
    286 	* cp-tree.h (TYPE_TEMPLATE_INFO): Rewrite this accessor macro to
    287 	better support aliased types.
    288 	(TYPE_ALIAS_P): Don't crash on TYPE_NAME nodes that are not
    289 	TYPE_DECL.
    290 	* pt.c (find_parameter_packs_r): Handle types aliases.
    291 	(push_template_decl_real): Check for bare parameter packs in the
    292 	underlying type of an alias template.
    293 
    294 2011-12-08  Jason Merrill  <jason (a] redhat.com>
    295 
    296 	PR c++/51318
    297 	* typeck.c (build_x_conditional_expr): Restrict glvalue games to C++11.
    298 
    299 	PR c++/51459
    300 	* pt.c (tsubst_expr) [DECL_EXPR]: Handle capture proxies properly.
    301 	* semantics.c (insert_capture_proxy): No longer static.
    302 	* cp-tree.h: Declare it.
    303 
    304 2011-12-07  Jakub Jelinek  <jakub (a] redhat.com>
    305 
    306 	PR c++/51401
    307 	* decl.c (grokdeclarator): Error for auto on non-static data members.
    308 
    309 	PR c++/51429
    310 	* typeck2.c (cxx_incomplete_type_diagnostic): Don't
    311 	ICE if TREE_OPERAND (value, 1) is overloaded.
    312 
    313 	PR c++/51229
    314 	* decl.c (reshape_init_class): Complain if d->cur->index is
    315 	INTEGER_CST.
    316 	* parser.c (cp_parser_initializer_list): If cp_parser_parse_definitely
    317 	fails, clear designator.
    318 
    319 	PR c++/51369
    320 	* init.c (build_value_init): Allow array types even when
    321 	processing_template_decl.
    322 
    323 2011-12-07  Ed Smith-Rowland <3dw4rd (a] verizon.net>
    324 
    325 	PR c++/51420
    326 	* parser.c (lookup_literal_operator): Check that declaration is an
    327 	overloaded function.
    328 
    329 2011-12-06  Jakub Jelinek  <jakub (a] redhat.com>
    330 
    331 	PR c++/51430
    332 	* pt.c (tsubst_decl): Don't call strip_array_domain on
    333 	error_mark_node.
    334 
    335 2011-12-06  Paolo Carlini  <paolo.carlini (a] oracle.com>
    336 
    337 	PR c++/51431
    338 	* init.c (build_value_init): Check build_aggr_init_expr return
    339 	value for error_mark_node.
    340 
    341 2011-12-06  Dodji Seketeli  <dodji (a] redhat.com>
    342 
    343 	PR c++/51427
    344 	* parser.c (cp_parser_check_class_key): Add note about earlier
    345 	declaration.
    346 
    347 2011-12-05  Fabien Chne  <fabien (a] gcc.gnu.org>
    348 
    349 	PR c++/51319
    350 	* semantics.c (finish_id_expression): Strip using declarations
    351 	early in the function.
    352 
    353 2011-12-05  Paolo Carlini  <paolo.carlini (a] oracle.com>
    354 
    355 	PR c++/51399
    356 	* init.c (perform_member_init): Early return if init is error_mark_node.
    357 
    358 2011-12-05  Paolo Carlini  <paolo.carlini (a] oracle.com>
    359 
    360 	PR c++/51414
    361 	* semantics.c (finish_underlying_type): Use %qT, not %qE for the
    362 	error message.
    363 
    364 2011-12-05  Jason Merrill  <jason (a] redhat.com>
    365 
    366 	* init.c (expand_default_init): Unshare args in ctor delegation.
    367 
    368 2011-12-05  Ville Voutilainen  <ville.voutilainen (a] gmail.com>
    369 	    Pedro Lamaro  <pedro.lamarao (a] gmail.com>
    370 
    371 	Implement C++11 delegating constructors.
    372 	* cp-tree.h (enum cpp0x_warn_str): Add CPP0X_DELEGATING_CTORS.
    373 	* error.c (maybe_warn_cpp0x): Adjust.
    374 	* parser.c (cp_parser_mem_initializer_list): Use it.  Diagnose
    375 	multiple initializers if a delegating initializer is present.
    376 	* call.c (build_special_member_call): Convert an assert into an if.
    377 	* init.c (perform_target_ctor): New.
    378 	(emit_mem_initializers): Use it.
    379 	(expand_member_init, expand_default_init): Adjust.
    380 
    381 2011-12-05  Paolo Carlini  <paolo.carlini (a] oracle.com>
    382 
    383 	PR c++/51404
    384 	* typeck2.c (build_functional_cast): Early return error_mark_node
    385 	for invalid uses of 'auto'.
    386 	* parser.c (cp_parser_direct_declarator): When
    387 	cp_parser_constant_expression returns error do not produce further
    388 	diagnostic for the bound.
    389 
    390 2011-12-03  Paolo Carlini  <paolo.carlini (a] oracle.com>
    391 
    392 	PR c++/51313
    393 	* call.c (null_ptr_cst_p): STRIP_NOPS in c++11 mode too.
    394 
    395 2011-12-01  Jason Merrill  <jason (a] redhat.com>
    396 
    397 	* call.c (build_new_method_call_1): Handle aggregate initialization.
    398 	* tree.c (stabilize_init): Handle CONSTRUCTOR.
    399 
    400 2011-12-01  Paolo Carlini  <paolo.carlini (a] oracle.com>
    401 
    402 	PR c++/51326
    403 	* call.c (build_user_type_conversion_1): Early return NULL if
    404 	expr is NULL_TREE.
    405 
    406 2011-12-01  Paolo Carlini  <paolo.carlini (a] oracle.com>
    407 
    408 	PR c++/51367
    409 	* pt.c (unify_inconsistency): Use either %qT or %qE depending on
    410 	whether parm is a type or non-type parameter.
    411 
    412 2011-11-30  Jason Merrill  <jason (a] redhat.com>
    413 
    414 	PR c++/51009
    415 	* name-lookup.c (push_to_top_level): Set stmts_are_full_exprs_p.
    416 	* decl.c (build_aggr_init_full_exprs): Just assert that it's true.
    417 	(check_initializer): Here too.
    418 
    419 2011-11-30  Paolo Carlini  <paolo.carlini (a] oracle.com>
    420 
    421 	PR c++/51299
    422 	* rtti.c (ifnonnull): Use nullptr_node.
    423 	(build_dynamic_cast_1): Call cp_truthvalue_conversion instead
    424 	of c_common_truthvalue_conversion.
    425 
    426 2011-11-24  Paolo Carlini  <paolo.carlini (a] oracle.com>
    427 
    428 	PR c++/51227
    429 	* pt.c (instantiate_class_template_1): If lambda_function (type)
    430 	is NULL_TREE do not instantiate_decl.
    431 
    432 2011-11-24  Paolo Carlini  <paolo.carlini (a] oracle.com>
    433 
    434 	PR c++/51290
    435 	* class.c (build_base_path): For the null pointer check use
    436 	nullptr_node instead of integer_zero_node.
    437 
    438 2011-11-22  Dodji Seketeli  <dodji (a] redhat.com>
    439 
    440 	PR c++/51145
    441 	* decl.c (check_elaborated_type_specifier): Gracefully handle
    442 	error_mark_node.  Accept bound template template parameters.
    443 	Update diagnostics for alias template specializations.  Update
    444 	comment.
    445 	* parser.c (cp_parser_elaborated_type_specifier): Use
    446 	check_elaborated_type_specifier for simple-template-ids as well.
    447 
    448 2011-11-22  Paolo Carlini  <paolo.carlini (a] oracle.com>
    449 
    450 	PR c++/51265
    451 	* semantics.c (finish_decltype_type): Handle PTRMEM_CST.
    452 
    453 2011-11-22  Dodji Seketeli  <dodji (a] redhat.com>
    454 
    455 	PR c++/51143
    456 	* parser.c (cp_parser_alias_declaration): Don't allow type
    457 	definition in templates.
    458 
    459 2011-11-22  Paolo Carlini  <paolo.carlini (a] oracle.com>
    460 
    461 	PR c++/51196
    462 	* typeck.c (cp_build_binary_op, [case EQ_EXPR]): For targets having
    463 	TARGET_PTRMEMFUNC_VBIT_LOCATION == ptrmemfunc_vbit_in_delta, do here
    464 	the -Wzero-as-null-pointer-constant warning for pmf == 0.
    465 
    466 2011-11-21  Torvald Riegel  <triegel (a] redhat.com>
    467 
    468 	* pt.c (tsubst_copy_and_build): Handle TRANSACTION_EXPR.
    469 
    470 2011-11-21  Ed Smith-Rowland  <3dw4rd (a] verizon.net>
    471 
    472 	PR c++/50958
    473 	* parser.c (lookup_literal_operator): New.
    474 	(cp_parser_userdef_char_literal): Use it.
    475 	(cp_parser_userdef_numeric_literal): Use it.
    476 	(cp_parser_userdef_string_literal): Use lookup_name.
    477 
    478 2011-11-20  Jason Merrill  <jason (a] redhat.com>
    479 
    480 	* pt.c (tsubst_pack_expansion): Fix SFINAE.
    481 
    482 	PR c++/48322
    483 	* cp-tree.h (PACK_EXPANSION_EXTRA_ARGS): New.
    484 	* cp-tree.def (EXPR_PACK_EXPANSION): Add an operand for it.
    485 	* pt.c (tsubst_pack_expansion): Set and use it.
    486 	(iterative_hash_template_arg): Hash it.
    487 	(template_args_equal): Compare it.
    488 	(comp_template_args_with_info): Handle nulls.
    489 	* tree.c (cp_walk_subtrees): Walk it.
    490 	* typeck.c (structural_comptypes): Compare it.
    491 	* ptree.c (cxx_print_type): Print it.
    492 
    493 	* pt.c (type_unification_real): Set input_location
    494 	during default arg instantiation.
    495 
    496 2011-11-20  Paolo Carlini  <paolo.carlini (a] oracle.com>
    497 
    498 	PR c++/51230
    499 	* pt.c (unify_inconsistency): Handle non-type parameters better.
    500 	* error.c (dump_expr): Handle TEMPLATE_TEMPLATE_PARM.
    501 
    502 2011-11-20  Dodji Seketeli  <dodji (a] redhat.com>
    503 
    504 	PR c++/51194
    505 	* pt.c (lookup_template_class_1): Go out early if the type of the
    506 	template is error_mark_node.
    507 
    508 2011-11-19  Paolo Carlini  <paolo.carlini (a] oracle.com>
    509 
    510 	PR c++/51216
    511 	* semantics.c (potential_constant_expression_1): Handle IF_STMT,
    512 	DO_STMT, FOR_STMT, and WHILE_STMT.
    513 
    514 2011-11-18  Fabien Chne  <fabien (a] gcc.gnu.org>
    515 
    516 	PR c++/51188
    517 	* search.c (lookup_field_1): Handle USING_DECLs for the storted
    518 	case.
    519 
    520 2011-11-18  Paolo Carlini  <paolo.carlini (a] oracle.com>
    521 
    522 	PR c++/51150
    523 	* pt.c (tsubst_copy_and_build): Handle FIX_TRUNC_EXPR.
    524 
    525 2011-11-18  Dodji Seketeli  <dodji (a] redhat.com>
    526 
    527 	PR c++/51191
    528 	* pt.c (primary_template_instantiation_p): Don't forget to
    529 	consider alias declarations.
    530 
    531 2011-11-17  Jason Merrill  <jason (a] redhat.com>
    532 
    533 	PR c++/51186
    534 	* decl.c (grokdeclarator): Improve C++98 trailing return diagnostic.
    535 
    536 	N3203
    537 	* class.c (add_implicitly_declared_members): Update move
    538 	conditions.
    539 
    540 	PR c++/51137
    541 	* class.c (build_base_path): Don't do calculation in templates.
    542 
    543 2011-11-15  Torvald Riegel  <triegel (a] redhat.com>
    544 
    545 	* parser.c (cp_parser_transaction_expression): Require parentheses
    546 	when parsing transaction expressions.
    547 
    548 2011-11-14  Ed Smith-Rowland  <3dw4rd (a] verizon.net>
    549 
    550 	PR c++/51107
    551 	* typeck.c (check_literal_operator_args): Add processing_specialization
    552 	to check for void template fn. Test for exact arity for non-template fn.
    553 
    554 2011-11-14  Fabien Chne  <fabien (a] gcc.gnu.org>
    555 
    556 	PR c++/6936
    557 	PR c++/25994
    558 	PR c++/26256
    559 	PR c++/30195
    560 	* search.c (lookup_field_1): Look through USING_DECL.
    561 	(lookup_field_r): Call lookup_fnfields_slot instead of
    562 	lookup_fnfields_1.
    563 	* semantics.c (finish_member_declaration): Remove the check that
    564 	prevents USING_DECLs from being verified by
    565 	pushdecl_class_level. Call add_method for using declarations that
    566 	designates functions if the using declaration is in a template
    567 	class. Set DECL_IGNORED_P on class-scope using declarations.
    568 	* typeck.c (build_class_member_access_expr): Handle USING_DECLs.
    569 	* class.c (check_field_decls): Keep using declarations.
    570 	(add_method): Remove two diagnostics about conflicting using
    571 	declarations.
    572 	* parser.c (cp_parser_nonclass_name): Handle USING_DECLs.
    573 	* decl.c (start_enum): Call xref_tag whenever possible.
    574 	* cp-tree.h (strip_using_decl): Declare, and reident the previous
    575 	function.
    576 	* name-lookup.c (strip_using_decl): New function.
    577 	(supplement_binding_1): Call strip_using_decl on decl and
    578 	bval. Perform most of the checks with USING_DECLs stripped.  Also
    579 	check that the target decl and the target bval does not refer to
    580 	the same declaration. Allow pushing an enum multiple times in a
    581 	template class. Adjustment to diagnose using redeclarations. Call
    582 	diagnose_name_conflict.
    583 	(push_class_level_binding): Call strip_using_decl on decl and
    584 	bval. Perform most of the checks with USING_DECLs stripped. Return
    585 	true if both decl and bval refer to USING_DECLs and are dependent.
    586 	(diagnose_name_conflict): New function.
    587 
    588 2011-11-12  Jason Merrill  <jason (a] redhat.com>
    589 
    590 	PR c++/986
    591 	* call.c (set_up_extended_ref_temp): Warn about references
    592 	bound to non-static reference members.
    593 	* init.c (perform_member_init): Pass in the member.
    594 
    595 	PR c++/51060
    596 	* cp-gimplify.c (cp_gimplify_expr): Leave clobbers alone.
    597 
    598 2011-11-11  Ed Smith-Rowland  <3dw4rd (a] verizon.net>
    599 
    600 	PR c++/50976
    601 	* typeck.c (check_literal_operator_args): Reorganize test for string
    602 	operators so size_t search depends on finding string first.
    603 
    604 2011-11-10  Jason Merrill  <jason (a] redhat.com>
    605 
    606 	PR c++/50372
    607 	* pt.c (convert_nontype_argument_function): Allow decls with
    608 	internal linkage in C++11.
    609 	(convert_nontype_argument): Likewise.
    610 
    611 	PR c++/50973
    612 	* decl2.c (mark_used): Defer synthesis of virtual functions.
    613 	* method.c (use_thunk): Make sure the target function has
    614 	DECL_INTERFACE_KNOWN.
    615 
    616 	PR c++/51079, DR 495
    617 	* call.c (joust): Check the second conversion sequence
    618 	before checking templates.
    619 
    620 2011-11-09  Paolo Carlini  <paolo.carlini (a] oracle.com>
    621 
    622 	PR c++/50837
    623 	* pt.c (tsubst_copy_and_build) [IDENTIFIER_NODE]: In C++11 mode
    624 	pass allow_non_integral_constant_expression_p = true to
    625 	finish_id_expression.
    626 
    627 2011-11-09  Jason Merrill  <jason (a] redhat.com>
    628 
    629 	PR c++/50972
    630 	* pt.c (maybe_instantiate_noexcept): Check the return value of
    631 	push_tinst_level.
    632 
    633 	PR c++/51046
    634 	* parser.c (cp_parser_range_for): check_for_bare_parameter_packs.
    635 
    636 	PR c++/51029
    637 	* class.c (build_base_path): Don't ICE in fold_non_dependent_expr.
    638 
    639 	* Make-lang.in (check_g++_parallelize): Add dg-torture.exp.
    640 	(check-c++0x): Obsolete.
    641 
    642 	* pt.c (invalid_nontype_parm_type_p): Avoid printing "<type error>".
    643 
    644 	* pt.c (convert_nontype_argument): Only integral arguments
    645 	get early folding.
    646 
    647 	* parser.c (cp_parser_alias_declaration): Don't do semantic
    648 	processing if parsing failed.
    649 
    650 2011-11-09  Paolo Carlini  <paolo.carlini (a] oracle.com>
    651 
    652 	PR c++/51045
    653 	* init.c (build_new_1, build_vec_delete_1, build_delete):
    654 	Use nullptr_node.
    655 
    656 2011-11-09  Paolo Carlini  <paolo.carlini (a] oracle.com>
    657 
    658 	PR c++/51047
    659 	* search.c (lookup_member): Change to take also a tsubst_flags_t
    660 	parameter.
    661 	(lookup_field, lookup_fnfields): Adjust calls.
    662 	* typeck.c (lookup_destructor, finish_class_member_access_expr,
    663 	build_ptrmemfunc_access_expr): Likewise.
    664 	* class.c (handle_using_decl, maybe_note_name_used_in_class):
    665 	Likewise.
    666 	* pt.c (resolve_typename_type): Likewise.
    667 	* semantics.c (lambda_function): Likewise.
    668 	* parser.c (cp_parser_perform_range_for_lookup,
    669 	cp_parser_lookup_name): Likewise.
    670 	* friend.c (make_friend_class): Likewise.
    671 	* name-lookup.c (pushdecl_maybe_friend_1, get_class_binding,
    672 	do_class_using_decl, lookup_qualified_name): Likewise.
    673 	* cp-tree.h (lookup_member): Adjust declaration.
    674 
    675 2011-11-09  Dodji Seketeli  <dodji (a] redhat.com>
    676 
    677 	PR c++/51043
    678 	* cp-tree.h (TYPE_ALIAS_P, TYPE_TEMPLATE_INFO): Don't crash on
    679 	NULL TYPE_NAME.
    680 
    681 	PR c++/51027
    682 	* parser.c (cp_parser_alias_declaration): Require ';' at the end
    683 	of the declaration.
    684 
    685 2011-11-09  Dodji Seketeli  <dodji (a] redhat.com>
    686 
    687 	PR debug/51032
    688 	* decl2.c (check_member_template): Accept alias templates and ...
    689 	* parser.c (cp_parser_alias_declaration): ... use it here.
    690 
    691 2011-11-08  Jason Merrill  <jason (a] redhat.com>
    692 
    693 	PR c++/50835
    694 	* typeck.c (build_x_conditional_expr): Preserve lvalue/xvalueness.
    695 	* tree.c (lvalue_kind) [NON_DEPENDENT_EXPR]: Return clk_ordinary
    696 	in C++98.
    697 
    698 2011-11-08  Richard Guenther  <rguenther (a] suse.de>
    699 
    700 	PR middle-end/51010
    701 	* error.c (dump_expr): Handle SSA_NAMEs.
    702 
    703 2011-11-07  Richard Henderson  <rth (a] redhat.com>
    704 	    Aldy Hernandez  <aldyh (a] redhat.com>
    705 	    Torvald Riegel  <triegel (a] redhat.com>
    706 
    707 	Merged from transactional-memory.
    708 
    709 	* call.c (build_new_function_call): Call tm_malloc_replacement.
    710 	* class.c (check_bases): Compute transaction attributes for the
    711 	class based on its base classes.
    712 	(look_for_tm_attr_overrides, set_one_vmethod_tm_attributes,
    713 	set_method_tm_attributes): New.
    714 	(finish_struct_1): Call set_method_tm_attributes.
    715 	* cp-tree.h (begin_transaction_stmt, finish_transaction_stmt,
    716 	build_transaction_expr): Declare.
    717 	(TRANSACTION_EXPR_IS_STMT): New.
    718 	* decl.c (push_cp_library_fn): Set attribute to transaction_safe.
    719 	* except.c (do_get_exception_ptr): Apply transaction_pure.
    720 	(do_begin_catch): Mark _ITM_cxa_begin_catch transaction_pure and
    721 	record as transactional-memory wrapper.
    722 	(do_end_catch): Similarly for _ITM_cxa_end_catch.
    723 	(do_allocate_exception): Similarly for _ITM_cxa_allocate_exception.
    724 	(build_throw): Similarly for _ITM_cxa_throw. Make __cxa_rethrow pure.
    725 	* parser.h (struct cp_parser): Add in_transaction flag.
    726 	* parser.c (enum non_integral_constant): Add NIC_TRANSACTION.
    727 	(cp_parser_non_integral_constant_expression): Handle NIC_TRANSACTION.
    728 	(enum required_token): Add transaction tokens.
    729 	(cp_parser_transaction, cp_parser_transaction_expression,
    730 	cp_parser_function_transaction, cp_parser_transaction_cancel,
    731 	cp_parser_txn_attribute_opt): New.
    732 	(cp_parser_unary_expression): Handle RID_TRANSACTION*.
    733 	(cp_parser_statement, cp_parser_function_definition_after_declarator,
    734 	cp_parser_token_starts_function_definition_p): Same.
    735 	(cp_parser_required_error): Handle RT_TRANSACTION*.
    736 	* pt.c (tsubst_expr): Handle TRANSACTION_EXPR.
    737 	* semantics.c (begin_transaction_stmt, finish_transaction_stmt,
    738 	build_transaction_expr): New.
    739 
    740 2011-11-08  Dodji Seketeli  <dodji (a] redhat.com>
    741 
    742 	Fix context handling of alias-declaration
    743 	* decl.c (start_decl): Update comment.
    744 	* error.c (dump_alias_template_specialization): Dump the context
    745 	of the specialization.
    746 	* parser.c (cp_parser_alias_declaration): Call pop_scope on the
    747 	pushed scope yielded by start_decl.
    748 
    749 2011-11-08  Paolo Carlini  <paolo.carlini (a] oracle.com>
    750 
    751 	PR c++/50864
    752 	* parser.c (cp_parser_postfix_dot_deref_expression): Reject invalid
    753 	uses of '->' and '.' as postfix-expression in namespace scope.
    754 
    755 2011-11-07  Jason Merrill  <jason (a] redhat.com>
    756 
    757 	PR c++/50848
    758 	* pt.c (tsubst_copy_and_build) [CALL_EXPR]: Don't crash
    759 	if lookup finds a non-function.
    760 
    761 	PR c++/50863
    762 	* parser.c (cp_parser_initializer_list): Parse C99
    763 	array designators tentatively.
    764 
    765 	PR c++/50870
    766 	* pt.c (tsubst_copy): Handle NAMESPACE_DECL.
    767 	(tsubst_copy_and_build) [COMPONENT_REF]: Handle a still-dependent
    768 	object.
    769 
    770 2011-11-07  Paolo Carlini  <paolo.carlini (a] oracle.com>
    771 
    772 	* pt.c (tsubst_copy_and_build): Fix qualified_name_lookup_error
    773 	call in case COMPONENT_REF.
    774 
    775 2011-11-07  Jason Merrill  <jason (a] redhat.com>
    776 	    Dodji Seketeli  <dodji (a] redhat.com>
    777 
    778 	Support C++11 alias-declaration
    779 	PR c++/45114
    780 	* cp-tree.h (TYPE_DECL_ALIAS_P, TYPE_ALIAS_P)
    781 	(DECL_TYPE_TEMPLATE_P, DECL_ALIAS_TEMPLATE_P): New accessor
    782 	macros.
    783 	(TYPE_TEMPLATE_INFO): Get template info of an alias template
    784 	specializations from its TYPE_DECL.
    785 	(SET_TYPE_TEMPLATE_INFO): Set template info of alias template
    786 	specializations into its TYPE_DECL.
    787 	(DECL_CLASS_TEMPLATE_P): Re-write using the new
    788 	DECL_TYPE_TEMPLATE_P.
    789 	(enum cp_decl_spec): Add new ds_alias enumerator.
    790 	(alias_type_or_template_p, alias_template_specialization_p):
    791 	Declare new functions.
    792 	* parser.c (cp_parser_alias_declaration): New static function.
    793 	(cp_parser_check_decl_spec): Add "using" name for the `alias'
    794 	declspec.
    795 	(cp_parser_type_name): Update comment.  Support simple-template-id
    796 	representing alias template specializations in c++0x mode.
    797 	(cp_parser_qualifying_entity): Update comment.  Use
    798 	cp_parser_type_name.
    799 	(cp_parser_block_declaration): Handle alias-declaration in c++11.
    800 	Update comment.
    801 	(cp_parser_template_id): Handle specializations of alias
    802 	templates.
    803 	(cp_parser_member_declaration): Add alias-declaration production
    804 	to comment.  Support alias-declarations.
    805 	(cp_parser_template_declaration_after_export): Handle alias
    806 	templates in c++11.
    807 	* decl.c (make_typename_type, make_unbound_class_template): Accept
    808 	alias templates.
    809 	(grokdeclarator): Set TYPE_DECL_ALIAS_P on alias
    810 	declarations.
    811 	* decl2.c (grokfield): Move template creation after setting up the
    812 	TYPE_DECL of the alias, so that the TEMPLATE_DECL of the alias
    813 	template actually carries the right type-id of the alias
    814 	declaration.
    815 	* pt.c (alias_type_or_template_p)
    816 	(alias_template_specialization_p): Define new public functions.
    817 	(maybe_process_partial_specialization): Reject partial
    818 	specializations of alias templates.
    819 	(primary_template_instantiation_p): Consider alias template
    820 	instantiations.
    821 	(push_template_decl_real): Assert that TYPE_DECLs of alias
    822 	templates are different from those of class template.  Store
    823 	template info onto the TYPE_DECL of the alias template.
    824 	(convert_template_argument): Strip aliases from template
    825 	arguments.
    826 	(lookup_template_class_1): Handle the creation of the
    827 	specialization of an alias template.
    828 	(tsubst_decl): Create a substituted copy of the TYPE_DECL of an
    829 	member alias template.
    830 	(tsubst): Handle substituting into the type of an alias template.
    831 	Handle substituting UNBOUND_CLASS_TEMPLATE into
    832 	BOUND_TEMPLATE_TEMPLATE_PARM.
    833 	(do_type_instantiation): Better diagnostics when trying to
    834 	explicitely instantiate a non-class template.
    835 	* search.c (lookup_field_1, lookup_field_r): Support looking up
    836 	alias templates.
    837 	* semantics.c (finish_template_type): For instantiations of alias
    838 	templates, return the TYPE_DECL of the actual alias and not the
    839 	one of the aliased type.
    840 	* error.c (dump_alias_template_specialization): New static
    841 	function.
    842 	(dump_type): Handle printing of alias templates and their
    843 	specializations.  templates.
    844 	(dump_aggr_type): For specialization of alias templates, fetch
    845 	arguments from the right place.
    846 	(dump_decl): Print an alias-declaration like `using decl = type;'
    847 	(dump_template_decl):  Support printing of alias templates.
    848 
    849 2011-11-07  Jason Merrill  <jason (a] redhat.com>
    850 
    851 	PR c++/35688
    852 	* decl2.c (constrain_visibility): Return void.  Add tmpl parm
    853 	which gives the constraint priority over an attribute.
    854 	(constrain_visibility_for_template, determine_visibility): Adjust.
    855 	* pt.c (instantiate_class_template_1): Call determine_visibility.
    856 
    857 	PR c++/33255
    858 	* decl.c (save_function_data): Clear local_typedefs.
    859 
    860 	* decl.c (cp_finish_decl): Only make_tree_vector if we're calling
    861 	check_initializer.
    862 
    863 2011-11-06  Jason Merrill  <jason (a] redhat.com>
    864 
    865 	PR c++/35688
    866 	* decl2.c (constrain_visibility): Check decl_has_visibility_attr
    867 	rather than DECL_VISIBILITY_SPECIFIED.
    868 
    869 2011-11-06  Paolo Carlini  <paolo.carlini (a] oracle.com>
    870 
    871 	PR c++/47695
    872 	* decl2.c (mark_used): Early return false after error or sorry.
    873 	* cp-tree.h (mark_used): Adjust declaration.
    874 	* semantics.c (finish_id_expression): Check mark_used return value.
    875 
    876 2011-11-05  Jason Merrill  <jason (a] redhat.com>
    877 
    878 	PR c++/48370
    879 	* decl.c (cp_finish_decl): Mostly revert previous change.
    880 
    881 2011-11-04  Jason Merrill  <jason (a] redhat.com>
    882 
    883 	PR c++/26714
    884 	* init.c (perform_member_init): Strip TARGET_EXPR around NSDMI.
    885 	Do temporary lifetime extension.
    886 
    887 	PR c++/48370
    888 	* decl.c (cp_finish_decl): Run cleanups in the right order.
    889 
    890 2011-11-04  Eric Botcazou  <ebotcazou (a] adacore.com>
    891 
    892 	PR c++/50608
    893 	* semantics.c (finish_offsetof): Adjust call to fold_offsetof.
    894 	* typeck.c (cp_build_addr_expr_1): Call fold_offsetof_1.
    895 
    896 2011-11-04  Paolo Carlini  <paolo.carlini (a] oracle.com>
    897 
    898 	* typeck.c (build_indirect_ref): Use ATTRIBUTE_UNUSED.
    899 	* mangle.c (write_unnamed_type_name): Likewise.
    900 
    901 2011-11-04  Magnus Fromreide  <magfr (a] lysator.liu.se>
    902 
    903 	* parser.c (cp_parser_enumerator_list): Do not warn about
    904 	trailing commas in C++0x mode.
    905 
    906 2011-11-04  Olivier Goffart  <olivier (a] woboq.com>
    907 	    Jason Merrill  <jason (a] redhat.com>
    908 
    909 	PR c++/50965
    910 	* class.c (check_field_decls): NSDMI makes a class non-aggregate.
    911 
    912 2011-11-04  Paolo Carlini  <paolo.carlini (a] oracle.com>
    913 
    914 	PR c++/48420
    915 	* call.c (conversion_null_warnings): For 'false' to NULL pointer,
    916 	just check that TREE_TYPE (expr) is a BOOLEAN_TYPE.
    917 
    918 2011-11-04  Ed Smith-Rowland  <3dw4rd (a] verizon.net>
    919 
    920 	PR c++/50941
    921 	* parser.c (cp_parser_userdef_string_literal): Fix string length.
    922 
    923 2011-11-04  Jason Merrill  <jason (a] redhat.com>
    924 
    925 	PR c++/48370
    926 	* call.c (extend_ref_init_temps, extend_ref_init_temps_1): New.
    927 	(set_up_extended_ref_temp): Use it.  Change cleanup parm to VEC.
    928 	(initialize_reference): Just call convert_like.
    929 	* decl.c (grok_reference_init): Just call initialize_reference.
    930 	(build_init_list_var_init): Remove.
    931 	(check_initializer): Change cleanup parm to VEC.  Handle references
    932 	like other types.  Call perform_implicit_conversion instead
    933 	of build_init_list_var_init.  Don't use build_aggr_init for
    934 	aggregate initialization of arrays.
    935 	(cp_finish_decl): Change cleanup to VEC.
    936 	* typeck2.c (store_init_value): Call extend_ref_init_temps.
    937 	Use build_vec_init for non-constant arrays.
    938 	* init.c (expand_aggr_init_1): Adjust.
    939 	(build_vec_init): Avoid re-converting an initializer
    940 	that's already digested.
    941 	* mangle.c (mangle_ref_init_variable): Add a discriminator.
    942 	* cp-tree.h: Adjust.
    943 	* typeck.c (convert_for_initialization): Adjust.
    944 	* decl2.c (maybe_emit_vtables): Adjust.
    945 
    946 2011-11-02  Jason Merrill  <jason (a] redhat.com>
    947 
    948 	PR c++/50930
    949 	* init.c (build_aggr_init): Don't set LOOKUP_ONLYCONVERTING
    950 	if the initializer has TARGET_EXPR_DIRECT_INIT_P.
    951 	(expand_default_init): An initializer with TARGET_EXPR_DIRECT_INIT_P
    952 	or TARGET_EXPR_LIST_INIT_P doesn't need more processing.
    953 	* tree.c (bot_manip): Propagate TARGET_EXPR_IMPLICIT_P,
    954 	TARGET_EXPR_LIST_INIT_P, TARGET_EXPR_DIRECT_INIT_P.
    955 	* call.c (convert_like_real): Set TARGET_EXPR_DIRECT_INIT_P
    956 	as appropriate on list-value-initialization.
    957 
    958 	* parser.c (cp_parser_decl_specifier_seq): Change "C++0x" to
    959 	"C++11" in warnings.
    960 	(cp_lexer_get_preprocessor_token): Likewise.
    961 	(cp_parser_binary_expression): Likewise.
    962 
    963 2011-11-02  Paolo Carlini  <paolo.carlini (a] oracle.com>
    964 
    965 	PR c++/50810
    966 	* typeck2.c (check_narrowing): Adjust OPT_Wnarrowing diagnostics.
    967 	(digest_init_r): Call check_narrowing irrespective of the C++ dialect.
    968 	* decl.c (check_initializer): Likewise.
    969 	* semantics.c (finish_compound_literal): Likewise.
    970 
    971 2011-11-02  Paolo Carlini  <paolo.carlini (a] oracle.com>
    972 
    973 	PR c++/50956
    974 	* typeck.c (build_const_cast_1): Fix -Wcast-qual for false
    975 	comp_ptr_ttypes_const.
    976 
    977 2011-11-02  Rainer Orth  <ro (a] CeBiTec.Uni-Bielefeld.DE>
    978 
    979 	* Make-lang.in (g++spec.o): Pass SHLIB instead of SHLIB_LINK.
    980 
    981 2011-11-01  Paolo Carlini  <paolo.carlini (a] oracle.com>
    982 
    983 	PR c++/44277
    984 	* cvt.c (cp_convert_to_pointer): Warn for zero as null pointer
    985 	constant.
    986 	* typeck.c (cp_truthvalue_conversion): Handle pointers and member
    987 	function pointers under c_inhibit_evaluation_warnings; use
    988 	nullptr_node for data member pointers.
    989 	(cp_build_binary_op): Tweak, just forward to cp_convert op1,
    990 	either a nullptr_node or an integer_zero_node.
    991 	(build_ptrmemfunc): Use nullptr_node.
    992 	* init.c (build_zero_init_1): Likewise.
    993 
    994 2011-11-01  Jason Merrill  <jason (a] redhat.com>
    995 
    996 	PR c++/50500
    997 	DR 1082
    998 	* search.c (lookup_fnfields_idx_nolazy): Split out from...
    999 	(lookup_fnfields_1): ...here.
   1000 	(lookup_fnfields_slot_nolazy): Use it.
   1001 	* cp-tree.h: Declare it.
   1002 	* class.c (type_has_move_assign): Use it.
   1003 	(type_has_user_declared_move_assign): Likewise.
   1004 
   1005 2011-10-31  Jason Merrill  <jason (a] redhat.com>
   1006 
   1007 	PR c++/50920
   1008 	* class.c (check_field_decl): Change c++0x in diags to c++11.
   1009 	* error.c (maybe_warn_cpp0x): Likewise.
   1010 	* parser.c (cp_parser_diagnose_invalid_type_name): Likewise.
   1011 	* pt.c (check_default_tmpl_args): Likewise.
   1012 
   1013 2011-10-31   Diego Novillo  <dnovillo (a] google.com>
   1014 
   1015 	* mangle.c (get_mangled_id): Factor from ...
   1016 	(mangle_decl): ... here.
   1017 	Call get_mangled_id.
   1018 
   1019 2011-10-25  Gerald Pfeifer  <gerald (a] pfeifer.com>
   1020 
   1021 	* NEWS (GCC 2.95): Refer to GNU/Linux instead of Linux.
   1022 	(EGCS 1.0): Ditto.
   1023 
   1024 2011-10-29  Paolo Carlini  <paolo.carlini (a] oracle.com>
   1025 
   1026 	PR c++/50901
   1027 	* call.c (build_new_op_1): Handle ABS_EXPR together with the
   1028 	other unary EXPR.
   1029 
   1030 2011-10-28  Paolo Carlini  <paolo.carlini (a] oracle.com>
   1031 
   1032 	Revert:
   1033 	2011-10-28  Paolo Carlini  <paolo.carlini (a] oracle.com>
   1034 
   1035 	PR c++/50864
   1036 	* pt.c (tsubst_copy_and_build): Fix qualified_name_lookup_error
   1037 	call in case COMPONENT_REF.
   1038 
   1039 2011-10-28  Paolo Carlini  <paolo.carlini (a] oracle.com>
   1040 
   1041 	* pt.c (unify_pack_expansion): Initialize bad_old_arg and bad_new_arg.
   1042 
   1043 2011-10-28  Paolo Carlini  <paolo.carlini (a] oracle.com>
   1044 
   1045 	PR c++/50864
   1046 	* pt.c (tsubst_copy_and_build): Fix qualified_name_lookup_error
   1047 	call in case COMPONENT_REF.
   1048 
   1049 2011-10-27  Jason Merrill  <jason (a] redhat.com>
   1050 
   1051 	* semantics.c (cxx_eval_outermost_constant_expr): Check
   1052 	cp_has_mutable_p.
   1053 	(cxx_eval_component_reference): Check DECL_MUTABLE_P.
   1054 
   1055 2011-10-27  Roberto Agostino Vitillo  <ravitillo (a] lbl.gov>
   1056 
   1057 	PR c++/30066
   1058 	* decl2.c (determine_hidden_inline): New function.
   1059 	(determine_visibility): fvisibility-inlines-hidden affects inline
   1060 	functions.
   1061 
   1062 2011-10-27  Dodji Seketeli  <dodji (a] redhat.com>
   1063 
   1064 	* cp-tree.h (DECL_DECLARES_TYPE_P): Fix comment.
   1065 
   1066 2011-10-26  Jason Merrill  <jason (a] redhat.com>
   1067 
   1068 	* typeck.c (check_literal_operator_args): Avoid building types.
   1069 
   1070 2011-10-26  Ed Smith-Rowland  <3dw4rd (a] verizon.net>
   1071 
   1072 	Implement C++11 user-defined literals.
   1073 	* cp-objcp-common.c: (cp_tree_size) Return size of USERDEF_LITERAL tree.
   1074 	* cp-tree.h: (UDLIT_OP_*, UDLIT_OPER_P): Literal operator
   1075 	name tools. New tree code for user-defined literals.
   1076 	* cxx-pretty-print.h: (pp_cxx_userdef_literal) New.
   1077 	* cxx-pretty-print.c: (pp_cxx_userdef_literal) New.
   1078 	(pp_cxx_primary_expression, pp_cxx_expression): Use it.
   1079 	* decl.c: (cp_tree_node_structure): Return new tree code.
   1080 	(duplicate_decls): Check for raw vs. template operator conflicts.
   1081 	(grokfndecl, grokdeclarator): New checks for literal operators.
   1082 	* error.c: (dump_expr): Warn about user-defined literals
   1083 	in C++98 mode. (dump_function_name): Pretty printing.
   1084 	* mangle.c: (write_literal_operator_name): New.
   1085 	(write_unqualified_id, write_unqualified_name): Use it.
   1086 	* parser.c: (cp_parser_operator): Handle operator"".
   1087 	(cp_parser_userdef_char_literal, cp_parser_userdef_numeric_literal,
   1088 	cp_parser_userdef_string_literal): New.
   1089 	(cp_parser_primary_expression): Handle new user-defined literal tokens
   1090 	with new functions.
   1091 	* semantics.c: (potential_constant_expression_1): Add
   1092 	user-defined literals.
   1093 	* typeck.c (check_raw_literal_operator,
   1094 	check_literal_operator_args): New.
   1095 
   1096 2011-10-26  Paolo Carlini  <paolo.carlini (a] oracle.com>
   1097 
   1098 	* typeck.c (cp_build_addr_expr_1): Use BASELINK_P.
   1099 	* class.c (instantiate_type): Likewise.
   1100 	* pt.c (convert_nontype_argument_function, uses_template_parms,
   1101 	tsubst_copy, resolve_nondeduced_context, type_dependent_expression_p):
   1102 	Likewise.
   1103 	* semantics.c (finish_decltype_type): Likewise.
   1104 	* decl2.c (mark_used): Likewise.
   1105 	* name-lookup.c (arg_assoc): Likewise.
   1106 
   1107 2011-10-26  Paolo Carlini  <paolo.carlini (a] oracle.com>
   1108 
   1109 	PR c++/50870
   1110 	* typeck.c (non_reference): Pass NULL_TREE through.
   1111 
   1112 2011-10-25  Jason Merrill  <jason (a] redhat.com>
   1113 
   1114 	PR c++/50866
   1115 	PR c++/41449
   1116 	* semantics.c (maybe_cleanup_point_expr_void): No longer static.
   1117 	* typeck2.c (split_nonconstant_init_1): Use it.
   1118 	* cp-tree.h: Declare it.
   1119 	* decl.c (wrap_cleanups_r): Stop at CLEANUP_POINT_EXPR.
   1120 
   1121 	PR c++/49996
   1122 	* tree.c (stabilize_init): Stabilize scalar elements of a
   1123 	CONSTRUCTOR, too.
   1124 
   1125 2011-10-25  Paolo Carlini  <paolo.carlini (a] oracle.com>
   1126 
   1127 	PR c++/50858
   1128 	* typeck.c (composite_pointer_type_r): Check return value of
   1129 	composite_pointer_type_r for error_mark_node.
   1130 
   1131 2011-10-25  Paolo Carlini  <paolo.carlini (a] oracle.com>
   1132 
   1133 	PR c++/50861
   1134 	* pt.c (tsubst_copy_and_build): Check return value of
   1135 	tsubst_copy_and_build for error_mark_node.
   1136 
   1137 2011-10-23  Paolo Carlini  <paolo.carlini (a] oracle.com>
   1138 
   1139 	PR c++/50841
   1140 	Revert:
   1141 	2011-10-23  Paolo Carlini  <paolo.carlini (a] oracle.com>
   1142 
   1143 	PR c++/50810
   1144 	* typeck2.c (check_narrowing): Adjust OPT_Wnarrowing diagnostics.
   1145 	(digest_init_r): Call check_narrowing irrespective of the C++ dialect.
   1146 	* decl.c (check_initializer): Likewise.
   1147 	* semantics.c (finish_compound_literal): Likewise.
   1148 
   1149 2011-10-23  Paolo Carlini  <paolo.carlini (a] oracle.com>
   1150 
   1151 	PR c++/50810
   1152 	* typeck2.c (check_narrowing): Adjust OPT_Wnarrowing diagnostics.
   1153 	(digest_init_r): Call check_narrowing irrespective of the C++ dialect.
   1154 	* decl.c (check_initializer): Likewise.
   1155 	* semantics.c (finish_compound_literal): Likewise.
   1156 
   1157 2011-10-21  Paolo Carlini  <paolo.carlini (a] oracle.com>
   1158 
   1159 	PR c++/45385
   1160 	* init.c (build_vec_init): Early return error_mark_node if
   1161 	maxindex is -1.
   1162 
   1163 2011-10-21  Paolo Carlini  <paolo.carlini (a] oracle.com>
   1164 
   1165 	PR c++/31423
   1166 	* typeck2.c (cxx_incomplete_type_diagnostic): Improve error message
   1167 	for invalid use of member function.
   1168 
   1169 2011-10-21  Ville Voutilainen  <ville.voutilainen (a] gmail.com>
   1170 
   1171 	PR c++/50811
   1172 	* parser.c (cp_parser_class_head): Parse virt-specifiers
   1173 	regardless of whether an id is present
   1174 
   1175 2011-10-20  Jason Merrill  <jason (a] redhat.com>
   1176 
   1177 	PR c++/41449
   1178 	* typeck2.c (split_nonconstant_init_1): Handle EH cleanup of
   1179 	initialized subobjects.
   1180 
   1181 2011-10-19  Paolo Carlini  <paolo.carlini (a] oracle.com>
   1182 
   1183 	PR c++/13657
   1184 	* class.c (instantiate_type): Fix error message.
   1185 
   1186 2011-10-19  Jason Merrill  <jason (a] redhat.com>
   1187 
   1188 	PR c++/50793
   1189 	* tree.c (bot_manip): Propagate AGGR_INIT_ZERO_FIRST.
   1190 
   1191 2011-10-19  Roland Stigge  <stigge (a] antcom.de>
   1192 
   1193 	PR translation/49704
   1194 	* semantics.c (potential_constant_expression_1): Use "AST" instead of
   1195 	"ast" in sorry message.
   1196 
   1197 2011-10-19  Paolo Carlini  <paolo.carlini (a] oracle.com>
   1198 
   1199 	PR c++/38761
   1200 	PR c++/40872
   1201 	* decl.c (duplicate_decls, make_typename_type, grokdeclarator): Use
   1202 	G_() in error message strings to facilitate translation.
   1203 	* semantics.c (finish_id_expression): Likewise.
   1204 	* parser.c (cp_parser_nested_name_specifier_opt,
   1205 	cp_parser_parameter_declaration): Likewise.
   1206 
   1207 2011-10-18  Jason Merrill  <jason (a] redhat.com>
   1208 
   1209 	PR c++/50531
   1210 	* pt.c (instantiate_decl): Recognize when a function defaulted
   1211 	outside the class is already instantiated.
   1212 
   1213 	PR c++/50742
   1214 	* decl.c (check_previous_goto_1): Handle using-decl.
   1215 
   1216 2011-10-18  Jason Merrill  <jason (a] redhat.com>
   1217 
   1218 	PR c++/50500
   1219 	DR 1082
   1220 	* class.c (type_has_user_declared_move_constructor): New.
   1221 	(type_has_user_declared_move_assign): New.
   1222 	(add_implicitly_declared_members): Add lazy copy ops
   1223 	even if there's a move.
   1224 	* method.c (lazily_declare_fn): Delete implicit copies
   1225 	if there's a move.
   1226 	(maybe_explain_implicit_delete): Explain this.  Use inform rather
   1227 	than error.
   1228 	* cp-tree.h: Declare new fns.
   1229 
   1230 2011-10-18   Diego Novillo  <dnovillo (a] google.com>
   1231 
   1232 	* parser.c: Remove ENABLE_CHECKING markers around debugging
   1233 	routines.
   1234 	(cp_lexer_dump_tokens): Add arguments START_TOKEN and CURR_TOKEN.
   1235 	Make static
   1236 	When printing CURR_TOKEN surround it in [[ ]].
   1237 	Start printing at START_TOKEN.
   1238 	Update all users.
   1239 	(cp_debug_print_tree_if_set): New.
   1240 	(cp_debug_print_context): New.
   1241 	(cp_debug_print_context_stack): New.
   1242 	(cp_debug_print_flag): New.
   1243 	(cp_debug_print_unparsed_function): New.
   1244 	(cp_debug_print_unparsed_queues): New.
   1245 	(cp_debug_parser_tokens): New.
   1246 	(cp_debug_parser): New.
   1247 	(cp_lexer_start_debugging): Set cp_lexer_debug_stream to stderr.
   1248 	(cp_lexer_stop_debugging): Set cp_lexer_debug_stream to NULL.
   1249 	* parser.h (cp_lexer_dump_tokens): Remove declaration.
   1250 	(cp_debug_parser): Declare.
   1251 
   1252 2011-10-17  Michael Spertus  <mike_spertus (a] symantec.com>
   1253 
   1254 	* cp-tree.def: Add BASES as a new tree code.
   1255 	* cp-tree.h (enum cp_trait_kind): Add CPTK_BASES, CPTK_DIRECT_BASES.
   1256 	(BASES_TYPE, BASES_DIRECT): Define.
   1257 	(calculate_bases, finish_bases, calculate_direct_bases): Declare.
   1258 	* parser.c (cp_parser_trait_expr, cp_parser_template_argument_list,
   1259 	(cp_parser_simple_type_specifier, cp_parser_save_nsdmi): Use them.
   1260 	* pt.c (find_parameter_packs_r, tsubst_pack_expansion): Likewise.
   1261 	* semantics.c (calculate_bases, finish_bases, calculate_direct_bases,
   1262 	dfs_calculate_bases_pre, dfs_calculate_bases_post,
   1263 	calculate_bases_helper): Define.
   1264 
   1265 2011-10-17  Jason Merrill  <jason (a] redhat.com>
   1266 
   1267 	PR c++/50736
   1268 	* parser.c (cp_parser_lambda_introducer): Check for more
   1269 	invalid captures.
   1270 
   1271 2011-10-17  Paolo Carlini  <paolo.carlini (a] oracle.com>
   1272 
   1273 	PR c++/44524
   1274 	* typeck.c (build_class_member_access_expr): Provide a better error
   1275 	message for X.Y where X is a pointer to class type.
   1276 	(finish_class_member_access_expr): Likewise.
   1277 
   1278 2011-10-15  Tom Tromey  <tromey (a] redhat.com>
   1279 	    Dodji Seketeli  <dodji (a] redhat.com>
   1280 
   1281 	* error.c (cp_diagnostic_starter): Pass the relevant location to
   1282 	diagnostic_report_current_module.
   1283 	(cp_diagnostic_finalizer): Call virt_loc_aware_diagnostic_finalizer.
   1284 
   1285 2011-10-17  Paolo Carlini  <paolo.carlini (a] oracle.com>
   1286 
   1287 	PR c++/48489
   1288 	* typeck.c (finish_class_member_access_expr): Fix error call
   1289 	for TREE_CODE (access_path) == TREE_BINFO.
   1290 
   1291 2011-10-15  Paolo Carlini  <paolo.carlini (a] oracle.com>
   1292 
   1293 	PR c++/50732
   1294 	* semantics.c (finish_trait_expr): Do not try to instantiate the
   1295 	the base type of an __is_base_of trait.
   1296 	(check_trait_type): Return a tree; use complete_type_or_else.
   1297 
   1298 2011-10-14  Jason Merrill  <jason (a] redhat.com>
   1299 
   1300 	PR c++/50563
   1301 	* parser.c (cp_parser_cache_group): Handle end==CPP_COMMA.
   1302 	(cp_parser_save_nsdmi): Pass it.
   1303 
   1304 	PR c++/50707
   1305 	* method.c (walk_field_subobs): Check for NSDMI before
   1306 	complaining about uninitialized fields.
   1307 
   1308 	* pt.c (tsubst_decl) [FIELD_DECL]: Use void_zero_node
   1309 	instead of error_mark_node as a placeholder.
   1310 
   1311 2011-10-14  Paolo Carlini  <paolo.carlini (a] oracle.com>
   1312 
   1313 	PR c++/38174
   1314 	* call.c (add_builtin_candidate): If two pointers have a composite
   1315 	pointer type, generate a single candidate with that type.
   1316 
   1317 2011-10-13  Jason Merrill  <jason (a] redhat.com>
   1318 
   1319 	PR c++/50614
   1320 	* cp-tree.h (VAR_TEMPL_TYPE_FIELD_OR_FUNCTION_DECL_CHECK): New.
   1321 	(DECL_TEMPLATE_INFO): Use it.
   1322 	* pt.c (tsubst_decl) [FIELD_DECL]: Set DECL_TEMPLATE_INFO
   1323 	if the decl has an NSDMI.
   1324 	* init.c (perform_member_init): Use it.
   1325 
   1326 	PR c++/50437
   1327 	* cp-tree.h (struct tree_lambda_expr): Add closure field.
   1328 	(LAMBDA_EXPR_CLOSURE): New.
   1329 	* pt.c (tsubst_copy_and_build) [LAMBDA_EXPR]: Likewise.
   1330 	* semantics.c (build_lambda_object): Use it instead of TREE_TYPE.
   1331 	(begin_lambda_type, lambda_function, add_capture): Likewise.
   1332 	(add_default_capture, lambda_expr_this_capture): Likewise.
   1333 
   1334 2011-10-13   Diego Novillo  <dnovillo (a] google.com>
   1335 
   1336 	* cp-tree.h (struct language_function): Rename in_function_try_handler
   1337 	to x_in_function_try_handler.
   1338 	Rename in_base_initializer to x_in_base_initializer.
   1339 	Update all users.
   1340 
   1341 2011-10-13   Diego Novillo  <dnovillo (a] google.com>
   1342 
   1343 	* class.c (sorted_fields_type_new): Factor out of ...
   1344 	(finish_struct_1): ... here.
   1345 
   1346 2011-10-13  Jason Merrill  <jason (a] redhat.com>
   1347 
   1348 	PR c++/50618
   1349 	* init.c (expand_aggr_init_1): Don't zero-initialize virtual
   1350 	bases of a base subobject.
   1351 
   1352 2011-10-12  Paolo Carlini  <paolo.carlini (a] oracle.com>
   1353 
   1354 	PR c++/50594
   1355 	* decl.c (cxx_init_decl_processing): Add
   1356 	__attribute__((externally_visible)) to operator new and
   1357 	operator delete library fn.
   1358 
   1359 2011-10-11  Michael Meissner  <meissner (a] linux.vnet.ibm.com>
   1360 
   1361 	* decl.c (duplicate_decls): Delete old interface with two parallel
   1362 	arrays to hold standard builtin declarations, and replace it with
   1363 	a function based interface that can support creating builtins on
   1364 	the fly in the future.  Change all uses, and poison the old
   1365 	names.  Make sure 0 is not a legitimate builtin index.
   1366 	* except.c (build_eh_type_type): Ditto.
   1367 	(choose_personality_routine): Ditto.
   1368 	* semantics.c (finish_omp_atomic): Ditto.
   1369 	(finish_omp_barrier): Ditto.
   1370 	(finish_omp_flush): Ditto.
   1371 	(finish_omp_taskwait): Ditto.
   1372 
   1373 2011-10-11  Jason Merrill  <jason (a] redhat.com>
   1374 
   1375 	PR c++/49855
   1376 	PR c++/49896
   1377 	* cp-tree.def (IMPLICIT_CONV_EXPR): New.
   1378 	* call.c (perform_implicit_conversion_flags): Build it
   1379 	instead of NOP_EXPR.
   1380 	* cp-objcp-common.c (cp_common_init_ts): It's typed.
   1381 	* cxx-pretty-print.c (pp_cxx_cast_expression): Handle it.
   1382 	(pp_cxx_expression): Likewise.
   1383 	* error.c (dump_expr): Likewise.
   1384 	* semantics.c (potential_constant_expression_1): Likewise.
   1385 	* tree.c (cp_tree_equal): Likewise.
   1386 	(cp_walk_subtrees): Likewise.
   1387 	* pt.c (iterative_hash_template_arg): Likewise.
   1388 	(for_each_template_parm_r): Likewise.
   1389 	(type_dependent_expression_p): Likewise.
   1390 	(tsubst_copy, tsubst_copy_and_build): Handle IMPLICIT_CONV_EXPR
   1391 	and CONVERT_EXPR.
   1392 	* cp-tree.h (IMPLICIT_CONV_EXPR_DIRECT_INIT): New.
   1393 
   1394 2011-10-11  Paolo Carlini  <paolo.carlini (a] oracle.com>
   1395 
   1396 	PR c++/50611
   1397 	* pt.c (tsubst_copy_and_build): If (complain & tf_error) is false
   1398 	do not call unqualified_name_lookup_error.
   1399 
   1400 2011-10-10  Paolo Carlini  <paolo.carlini (a] oracle.com>
   1401 
   1402 	PR c++/50660
   1403 	* call.c (conversion_null_warnings): Don't look through references.
   1404 
   1405 2011-10-09  Paolo Carlini  <paolo.carlini (a] oracle.com>
   1406 
   1407 	PR c++/38980
   1408 	* init.c (constant_value_1): Add bool parameter.
   1409 	(decl_constant_value_safe): Add.
   1410 	(integral_constant_value): Adjust.
   1411 	(decl_constant_value): Adjust.
   1412 	* cp-tree.h (decl_constant_value_safe): Declare.
   1413 	* typeck.c (decay_conversion): Use decl_constant_value_safe.
   1414 	* call.c (convert_like_real): Likewise.
   1415 
   1416 2011-10-09  Jakub Jelinek  <jakub (a] redhat.com>
   1417 	    Diego Novillo  <dnovillo (a] google.com>
   1418 
   1419 	* pt.c (reregister_specialization): Use htab_find instead of
   1420 	htab_find_slot with INSERT.
   1421 	(maybe_process_partial_specialization, lookup_template_class_1): Change
   1422 	slot variable type to void ** to avoid aliasing problems.
   1423 	(register_specialization): Likewise.  Use slot != NULL instead of
   1424 	more expensive !optimize_specialization_lookup_p (tmpl) test.
   1425 
   1426 2011-10-08  Paolo Carlini  <paolo.carlini (a] oracle.com>
   1427 
   1428 	PR c++/34927
   1429 	* typeck2.c (abstract_virtuals_error_sfinae): Don't produce duplicate
   1430 	inform messages in case of cloned destructor.
   1431 
   1432 2011-10-06  Jason Merrill  <jason (a] redhat.com>
   1433 
   1434 	PR c++/39164
   1435 	* decl.c (grokfndecl): Diagnose redefinition of defaulted fn.
   1436 
   1437 2011-10-02  Jason Merrill  <jason (a] redhat.com>
   1438 
   1439 	* pt.c (tsubst_pack_expansion): Re-use ARGUMENT_PACK_SELECTs.
   1440 	Change unsubstituted_packs to bool.
   1441 
   1442 	* parser.c (cp_parser_range_for): Don't try to deduce from {}
   1443 	in a template.
   1444 
   1445 	PR c++/35722
   1446 	Implement N2555 (expanding pack expansion to fixed parm list)
   1447 	* pt.c (coerce_template_parms): Allow expanding a pack expansion
   1448 	to a fixed-length argument list.
   1449 	(unify_pack_expansion): Handle explicit args properly.
   1450 	(unify) [TREE_VEC]: Handle pack expansions here.
   1451 	[TYPE_ARGUMENT_PACK]: Not here.
   1452 	(tsubst_pack_expansion): Don't try to do partial substitution.
   1453 	(pack_deducible_p): New.
   1454 	(fn_type_unification): Use it.
   1455 	(find_parameter_packs_r): Take the TYPE_MAIN_VARIANT
   1456 	of a type parameter.
   1457 	(check_non_deducible_conversion): Split from type_unification_real.
   1458 	(unify_one_argument): Split from type_unification_real...
   1459 	(unify_pack_expansion): ...and here.  Drop call_args_p parm.
   1460 	(type_unification_real, unify, more_specialized_fn): Adjust.
   1461 
   1462 	* class.c (fixed_type_or_null): Handle NSDMI.
   1463 	* method.c (walk_field_subobs): Disable NSDMI noexcept checking
   1464 	for now.
   1465 
   1466 2011-09-30  Jason Merrill  <jason (a] redhat.com>
   1467 
   1468 	* cp-tree.h (TREE_NEGATED_INT): Remove.
   1469 	* semantics.c (finish_unary_op_expr): Don't set it.
   1470 
   1471 2011-09-30  Janis Johnson  <janisjo (a] codesourcery.com>
   1472 
   1473 	PR c++/44473
   1474 	* mangle.c (write_type): Handle CV qualifiers for decimal classes.
   1475 
   1476 2011-09-26   Andi Kleen <ak (a] linux.intel.com>
   1477 
   1478 	* repo.c (finish_repo): Use HOST_WIDE_INT_PRINT_HEX_PURE.
   1479 
   1480 2011-09-28  Paolo Carlini  <paolo.carlini (a] oracle.com>
   1481 
   1482 	PR c++/45278
   1483 	* typeck.c (cp_build_binary_op): With -Wextra, warn for ordered
   1484 	comparison of pointer with zero.
   1485 
   1486 2011-09-27  Paolo Carlini  <paolo.carlini (a] oracle.com>
   1487 
   1488 	PR c++/31489
   1489 	* parser.c (cp_parser_elaborated_type_specifier): For RECORD_TYPE,
   1490 	set CLASSTYPE_DECLARED_CLASS.
   1491 
   1492 2011-09-27  Jakub Jelinek  <jakub (a] redhat.com>
   1493 
   1494 	* decl.c (duplicate_decls): If compatible stpcpy prototype
   1495 	is seen, set implicit_built_in_decls[BUILT_IN_STPCPY].
   1496 
   1497 2011-09-26  Jason Merrill  <jason (a] redhat.com>
   1498 
   1499 	PR c++/45012
   1500 	* pt.c (tsubst_copy_and_build) [CONST_DECL]: Don't pull out
   1501 	constant value if we're still in a template.
   1502 
   1503 	PR c++/46105
   1504 	* typeck.c (structural_comptypes): Ignore cv-quals on typename scope.
   1505 
   1506 	PR c++/50508
   1507 	* semantics.c (cxx_eval_logical_expression): Use tree_int_cst_equal
   1508 	rather than ==.
   1509 
   1510 2011-09-26  Paolo Carlini  <paolo.carlini (a] oracle.com>
   1511 
   1512 	PR c++/45487
   1513 	* error.c (dump_template_bindings): Separate bindings with semicolons
   1514 	instead of commas.
   1515 
   1516 2011-09-26  Jason Merrill  <jason (a] redhat.com>
   1517 
   1518 	PR c++/50512
   1519 	* call.c (compare_ics): Only consider rvaluedness_matches_p
   1520 	if the target type is the same or it too differs in rvalueness.
   1521 
   1522 	PR c++/50523
   1523 	* call.c (implicit_conversion): Mask out inappropriate LOOKUP
   1524 	flags at the top of the function.
   1525 
   1526 	* pt.c (tsubst_copy) [PARM_DECL]: Handle 'this' in NSDMI.
   1527 
   1528 2011-09-26  Paolo Carlini  <paolo.carlini (a] oracle.com>
   1529 
   1530 	* pt.c (convert_nontype_argument): Handle NULLPTR_TYPE.
   1531 
   1532 2011-09-26  Paolo Carlini  <paolo.carlini (a] oracle.com>
   1533 
   1534 	PR c++/26747
   1535 	* cp-gimplify.c (get_bc_label): Remove obsolete diagnostics.
   1536 
   1537 2011-09-25  Jason Merrill  <jason (a] redhat.com>
   1538 
   1539 	* parser.c (inject_this_parameter): Split out from
   1540 	cp_parser_late_return_type_opt.
   1541 	(cp_parser_class_specifier_1): Use it for NSDMIs.
   1542 	* tree.c (bot_replace): Replace NSDMI 'this' with real 'this'.
   1543 
   1544 2011-09-24  Jason Merrill  <jason (a] redhat.com>
   1545 
   1546 	* except.c (expr_noexcept_p): Split out from finish_noexcept_expr.
   1547 	* cp-tree.h: Declare it.
   1548 	* method.c (walk_field_subobs): Use it.
   1549 
   1550 	* init.c (perform_member_init): Instantiate NSDMI here.
   1551 	* pt.c (tsubst_decl) [FIELD_DECL]: Not here.
   1552 
   1553 	Handle deferred parsing of NSDMIs.
   1554 	* parser.h (cp_unparsed_functions_entry): Add nsdmis field.
   1555 	* parser.c (unparsed_nsdmis, cp_parser_save_nsdmi): New.
   1556 	(cp_parser_late_parse_one_default_arg): Split out from
   1557 	cp_parser_late_parsing_default_args.
   1558 	(cp_parser_late_parsing_nsdmi): New.
   1559 	(push_unparsed_function_queues): Set it.
   1560 	(cp_parser_parameter_declaration): Save the '=' token.
   1561 	(cp_parser_template_parameter): Likewise.
   1562 	(cp_parser_default_argument): Call cp_parser_initializer
   1563 	rather than cp_parser_initializer_clause.
   1564 	(cp_parser_class_specifier_1): Parse unparsed_nsdmis.
   1565 	(cp_parser_member_declaration): Handle nsdmis.
   1566 	* decl2.c (grokfield): Handle DEFAULT_ARG for a function.
   1567 
   1568 	Implement C++11 non-static data member initializers.
   1569 	* cp-tree.h (enum cpp_warn_str): Add CPP0X_NSDMI.
   1570 	* error.c (maybe_warn_cpp0x): Handle it.
   1571 	* call.c (convert_like_real) [ck_user]: Don't complain about
   1572 	using an explicit constructor for direct-initialization.
   1573 	* class.c (check_field_decl): Fix ancient typo.
   1574 	(check_field_decls): NSDMIs make the default ctor non-trivial.
   1575 	* decl.c (cp_finish_decl): Record NSDMI.
   1576 	(grokdeclarator): Allow NSDMI.
   1577 	* decl2.c (grokfield): Allow NSDMI.  Correct LOOKUP flags.
   1578 	* init.c (perform_member_init): Use NSDMI.
   1579 	* method.c (walk_field_subobs): Check for NSDMI.
   1580 	* parser.c (cp_parser_member_declaration): Parse { } init.
   1581 	* semantics.c (register_constexpr_fundef): Don't talk about
   1582 	a return statement in a constexpr constructor.
   1583 	(cxx_eval_call_expression): Check DECL_INITIAL instead of
   1584 	DECL_SAVED_TREE.
   1585 
   1586 2011-09-24  Paolo Carlini  <paolo.carlini (a] oracle.com>
   1587 
   1588 	PR c++/44267
   1589 	* class.c (build_base_path): Add a tsubst_flags_t parameter.
   1590 	(convert_to_base): Adjust call.
   1591 	* typeck.c (build_class_member_access_expr,
   1592 	get_member_function_from_ptrfunc, build_static_cast_1): Likewise.
   1593 	* init.c (dfs_initialize_vtbl_ptrs, emit_mem_initializers): Likewise.
   1594 	* method.c (do_build_copy_constructor, do_build_copy_assign): Likewise.
   1595 	* rtti.c (build_dynamic_cast_1): Likewise.
   1596 	* typeck2.c (build_scoped_ref, build_m_component_ref): Likewise.
   1597 	* call.c (build_over_call, build_special_member_call): Likewise.
   1598 	* cvt.c (cp_convert_to_pointer, convert_to_pointer_force,
   1599 	build_up_reference): Likewise.
   1600 	* cp-tree.h (build_base_path): Adjust declaration.
   1601 
   1602 2011-09-23  Jason Merrill  <jason (a] redhat.com>
   1603 
   1604 	Core 253 - allow const objects with no initializer or
   1605 	user-provided default constructor if the defaulted constructor
   1606 	initializes all the subobjects.
   1607 	PR c++/20039
   1608 	PR c++/42844
   1609 	* class.c (default_init_uninitialized_part): New.
   1610 	* cp-tree.h: Declare it.
   1611 	* decl.c (check_for_uninitialized_const_var): Use it.
   1612 	* init.c (perform_member_init): Likewise.
   1613 	(build_new_1): Likewise.
   1614 	* method.c (walk_field_subobs): Likewise.
   1615 
   1616 2011-09-23  Paolo Carlini  <paolo.carlini (a] oracle.com>
   1617 
   1618 	PR c++/50258
   1619 	* decl.c (check_static_variable_definition): Allow in-class
   1620 	initialization of static data member of non-integral type in
   1621 	permissive mode.
   1622 
   1623 2011-09-22  Paolo Carlini  <paolo.carlini (a] oracle.com>
   1624 
   1625 	PR c++/50491
   1626 	* semantics.c (potential_constant_expression_1): Handle USING_DECL.
   1627 
   1628 2011-09-22  Paolo Carlini  <paolo.carlini (a] oracle.com>
   1629 
   1630 	PR c++/50371
   1631 	* pt.c (invalid_nontype_parm_type_p): Handle NULLPTR_TYPE.
   1632 
   1633 2011-09-22  Jonathan Wakely  <jwakely.gcc (a] gmail.com>
   1634 	    Paolo Carlini  <paolo.carlini (a] oracle.com>
   1635 
   1636 	PR c++/50344
   1637 	* friend.c (make_friend_class): cv-qualification is ok in a
   1638 	friend declaration.
   1639 
   1640 2011-09-21  Paolo Carlini  <paolo.carlini (a] oracle.com>
   1641 
   1642 	PR c++/50454
   1643 	* decl.c (grokdeclarator): Consistently handle both __int128
   1644 	and unsigned __int128 with -pedantic; suppress diagnostic in
   1645 	system headers.
   1646 
   1647 2011-09-20  Jason Merrill  <jason (a] redhat.com>
   1648 
   1649 	* cp-tree.h (DECL_TEMPLOID_INSTANTIATION): New.
   1650 	(DECL_GENERATED_P): New.
   1651 	* class.c (finalize_literal_type_property): Use them.
   1652 	* semantics.c (is_instantiation_of_constexpr): Likewise.
   1653 	(register_constexpr_fundef): Likewise.
   1654 
   1655 	* call.c (convert_default_arg): Avoid redundant copy.
   1656 	* tree.c (bot_manip): Copy everything.
   1657 
   1658 2011-09-20 Roberto Agostino Vitillo <ravitillo (a] lbl.gov>
   1659 
   1660 	* call.c (build_new_method_call_1): Use non-virtual lookup
   1661 	for final virtual functions.
   1662 
   1663 2011-09-16  Jason Merrill  <jason (a] redhat.com>
   1664 
   1665 	PR c++/50424
   1666 	* call.c (set_flags_from_callee): Split out from build_call_a.
   1667 	* cp-tree.h: Declare it.
   1668 	* tree.c (bot_manip): Call it.
   1669 
   1670 2011-09-15  Jason Merrill  <jason (a] redhat.com>
   1671 
   1672 	PR c++/50365
   1673 	* parser.c (cp_parser_late_return_type_opt): Check quals parameter
   1674 	for clearing current_class_ptr, too.
   1675 
   1676 2011-09-14   Diego Novillo  <dnovillo (a] google.com>
   1677 
   1678 	* name-lookup.c (lookup_arg_dependent): Use conditional
   1679 	timevars.
   1680 	* decl.c (xref_tag): Likewise.
   1681 
   1682 2011-09-14  Paolo Carlini  <paolo.carlini (a] oracle.com>
   1683 
   1684 	PR c++/50391
   1685 	* pt.c (regenerate_decl_from_template): Don't pass an error_mark_node
   1686 	to build_exception_variant.
   1687 
   1688 2011-09-13  Dodji Seketeli  <dodji (a] redhat.com>
   1689 
   1690 	PR c++/48320
   1691 	* pt.c (template_parameter_pack_p): Support TEMPLATE_PARM_INDEX
   1692 	nodes.  Add a comment.
   1693 	(arg_from_parm_pack_p):  New static function, factorized out from
   1694 	tsubst_pack_expansion and extended to support non-type parameter
   1695 	packs represented with TEMPLATE_PARM_INDEX nodes.
   1696 	(tsubst_pack_expansion): Use arg_from_parm_pack_p.
   1697 
   1698 2011-09-12  Jason Merrill  <jason (a] redhat.com>
   1699 
   1700 	* pt.c (type_unification_real): Fix handling of DEDUCE_CONV
   1701 	with no deducible template parameters.
   1702 	* call.c (rejection_reason_code): Add rr_template_conversion.
   1703 	(print_z_candidate): Handle it.
   1704 	(template_conversion_rejection): New.
   1705 	(build_user_type_conversion_1): Use it.
   1706 
   1707 	* call.c (merge_conversion_sequences): Set bad_p and user_conv_p
   1708 	on all of the second conversion sequence.
   1709 	(build_user_type_conversion_1): Set bad_p on the ck_user conv.
   1710 	(convert_like_real): Handle bad ck_ref_bind with user_conv_p in the
   1711 	first section.  Fix loop logic.
   1712 	(initialize_reference): Call convert_like for diagnostics when
   1713 	we have a (bad) conversion.
   1714 
   1715 	* call.c (convert_class_to_reference)
   1716 	(convert_class_to_reference_1): Remove.
   1717 	(reference_binding): Use build_user_type_conversion_1 instead.
   1718 
   1719 	* call.c (initialize_reference): Add flags parm.
   1720 	* decl.c (grok_reference_init): Likewise.
   1721 	(check_initializer): Pass it.
   1722 	* typeck.c (convert_for_initialization): Likewise.
   1723 	* cp-tree.h: Adjust.
   1724 
   1725 	* cp-tree.h (LOOKUP_NO_RVAL_BIND): New.
   1726 	* call.c (conditional_conversion): Use it.
   1727 	(reference_binding): Fix handling of xvalues.
   1728 
   1729 2011-09-09  Jason Merrill  <jason (a] redhat.com>
   1730 
   1731 	* call.c (implicit_conversion): Check BRACE_ENCLOSED_INITIALIZER_P
   1732 	before forcing instantiation.
   1733 
   1734 2011-09-08  Paolo Carlini  <paolo.carlini (a] oracle.com>
   1735 
   1736 	PR c++/50324
   1737 	* typeck2.c (digest_init_r): Call complete_type_or_maybe_complain
   1738 	instead of complete_type_or_else.
   1739 
   1740 2011-09-08  Dodji Seketeli  <dodji (a] redhat.com>
   1741 
   1742 	PR c++/33255 - Support -Wunused-local-typedefs warning
   1743 	* name-lookup.c (pushdecl_maybe_friend_1): Use the new
   1744 	record_locally_defined_typedef.
   1745 	* decl.c (finish_function): Use the new
   1746 	maybe_warn_unused_local_typedefs.
   1747 	(grokfield): Use the new record_locally_defined_typedef.
   1748 	* parser.c (lookup_name): Use the new maybe_record_typedef_use.
   1749 
   1750 2011-09-07  Paolo Carlini  <paolo.carlini (a] oracle.com>
   1751 
   1752 	PR c++/50309
   1753 	* decl.c (grokdeclarator): Check u.function.exception_specification
   1754 	for error_mark_node.
   1755 
   1756 2011-09-07  Jason Merrill  <jason (a] redhat.com>
   1757 
   1758 	PR c++/50298
   1759 	* parser.c (cp_parser_member_declaration): Don't require a constant
   1760 	rvalue here in C++0x.
   1761 
   1762 	* pt.c (type_unification_real): Correct complain arg for tsubsting
   1763 	default template args.
   1764 
   1765 	* pt.c (tsubst_aggr_type): Check TYPE_P before tsubsting.
   1766 
   1767 2011-09-06  Jason Merrill  <jason (a] redhat.com>
   1768 
   1769 	PR c++/50296
   1770 	* semantics.c (register_constexpr_fundef): Call is_valid_constexpr_fn.
   1771 	(cx_check_missing_mem_inits): Handle bases and empty trivial members.
   1772 	(validate_constexpr_fundecl): Remove.
   1773 	* decl.c (start_preparsed_function): Don't call it.
   1774 	* cp-tree.h: Don't declare it.
   1775 
   1776 2011-09-04  Jason Merrill  <jason (a] redhat.com>
   1777 
   1778 	PR c++/49267
   1779 	* call.c (reference_binding): Don't set is_lvalue for an rvalue
   1780 	reference rfrom.
   1781 
   1782 	PR c++/49267
   1783 	PR c++/49458
   1784 	DR 1328
   1785 	* call.c (reference_binding): Set rvaluedness_matches_p properly
   1786 	for reference to function conversion ops.
   1787 	(compare_ics): Adjust.
   1788 
   1789 	* class.c (trivial_default_constructor_is_constexpr): Rename from
   1790 	synthesized_default_constructor_is_constexpr.
   1791 	(type_has_constexpr_default_constructor): Adjust.
   1792 	(add_implicitly_declared_members): Call it instead.
   1793 	(explain_non_literal_class): Explain about non-constexpr default ctor.
   1794 	* cp-tree.h: Adjust.
   1795 	* method.c (synthesized_method_walk): Adjust.
   1796 	* semantics.c (explain_invalid_constexpr_fn): Handle defaulted
   1797 	functions, too.
   1798 
   1799 	PR c++/50248
   1800 	Core 1358
   1801 	* init.c (perform_member_init): Don't diagnose missing inits here.
   1802 	(emit_mem_initializers): Or here.
   1803 	* method.c (process_subob_fn): Don't instantiate constexpr ctors.
   1804 	* semantics.c (cx_check_missing_mem_inits): New.
   1805 	(explain_invalid_constexpr_fn): Call it.
   1806 	(register_constexpr_fundef): Likewise.  Leave
   1807 	DECL_DECLARED_CONSTEXPR_P set when the body is unsuitable.
   1808 	(cxx_eval_call_expression): Adjust diagnostics.
   1809 	(cxx_eval_constant_expression): Catch use of 'this' in a constructor.
   1810 
   1811 2011-08-30  Jason Merrill  <jason (a] redhat.com>
   1812 
   1813 	PR c++/50084
   1814 	* cp-tree.h (cp_decl_specifier_seq): Rename user_defined_type_p
   1815 	to type_definition_p.
   1816 	* parser.c (cp_parser_set_decl_spec_type): Likewise.
   1817 	* decl.c (grokdeclarator): Check it.
   1818 
   1819 	PR c++/50089
   1820 	* semantics.c (finish_id_expression): Use
   1821 	current_nonlambda_class_type for qualified-ids.
   1822 
   1823 	PR c++/50114
   1824 	* decl.c (poplevel): Disable for scope compatibility hack
   1825 	in C++11 mode.
   1826 
   1827 	PR c++/50220
   1828 	* semantics.c (add_capture): Call complete_type for copy.
   1829 
   1830 	PR c++/50234
   1831 	* semantics.c (cxx_eval_component_reference): Handle
   1832 	value-initialization for omitted initializers.
   1833 
   1834 2011-08-29  Jason Merrill  <jason (a] redhat.com>
   1835 
   1836 	PR c++/50224
   1837 	* semantics.c (finish_id_expression): Mark captured variables used.
   1838 
   1839 2011-08-29  Jakub Jelinek  <jakub (a] redhat.com>
   1840 	    Jason Merrill  <jason (a] redhat.com>
   1841 
   1842 	PR c++/50207
   1843 	* class.c (finish_struct_1): Complain if the first field is
   1844 	artificial.
   1845 
   1846 2011-08-29  Jason Merrill  <jason (a] redhat.com>
   1847 
   1848 	PR c++/50209
   1849 	Core DR 994
   1850 	* parser.c (cp_parser_default_argument): Use
   1851 	cp_parser_initializer_clause.
   1852 	(cp_parser_late_parsing_default_args): Likewise.
   1853 
   1854 2011-08-26  Jason Merrill  <jason (a] redhat.com>
   1855 
   1856 	Core DR 342
   1857 	PR c++/48582
   1858 	* pt.c (check_valid_ptrmem_cst_expr): A null member pointer value
   1859 	is valid in C++11.
   1860 	(convert_nontype_argument): Likewise.  Implicitly convert nullptr
   1861 	and do constant folding.
   1862 	* mangle.c (write_template_arg_literal): Mangle null member
   1863 	pointer values as 0.
   1864 	* call.c (null_member_pointer_value_p): New.
   1865 	* cp-tree.h: Declare it.
   1866 
   1867 2011-08-25  Jason Merrill  <jason (a] redhat.com>
   1868 
   1869 	* call.c (convert_like_real): Remove redundant complain checks.
   1870 
   1871 	PR c++/50157
   1872 	* call.c (convert_like_real): Exit early if bad and !tf_error.
   1873 
   1874 2011-08-23  Jason Merrill  <jason (a] redhat.com>
   1875 
   1876 	* typeck2.c (build_functional_cast): Don't try to avoid calling
   1877 	build_value_init.
   1878 	* pt.c (instantiate_class_template_1): Don't copy TYPE_HAS_* flags.
   1879 
   1880 2011-08-23  Jason Merrill  <jason (a] redhat.com>
   1881 
   1882 	PR c++/49045
   1883 	Core 1321
   1884 	* tree.c (dependent_name): New.
   1885 	(cp_tree_equal): Two calls with the same dependent name are
   1886 	equivalent even if the overload sets are different.
   1887 
   1888 2011-08-23  Jason Merrill  <jason (a] redhat.com>
   1889 
   1890 	* tree.c (build_target_expr): Set TREE_CONSTANT on
   1891 	literal TARGET_EXPR if the value is constant.
   1892 	* typeck2.c (build_functional_cast): Don't set it here.
   1893 
   1894 2011-08-23  Jason Merrill  <jason (a] redhat.com>
   1895 
   1896 	Core 903 (partial)
   1897 	* call.c (null_ptr_cst_p): Only 0 qualifies in C++11.
   1898 
   1899 2011-08-23  Jason Merrill  <jason (a] redhat.com>
   1900 
   1901 	Core 975
   1902 	* decl.c (cxx_init_decl_processing): Initialize
   1903 	dependent_lambda_return_type_node.
   1904 	* cp-tree.h (cp_tree_index): Add CPTI_DEPENDENT_LAMBDA_RETURN_TYPE.
   1905 	(dependent_lambda_return_type_node): Define.
   1906 	(DECLTYPE_FOR_LAMBDA_RETURN): Remove.
   1907 	* semantics.c (lambda_return_type): Handle overloaded function.
   1908 	Use dependent_lambda_return_type_node instead of
   1909 	DECLTYPE_FOR_LAMBDA_RETURN.
   1910 	(apply_lambda_return_type): Don't check dependent_type_p.
   1911 	* pt.c (tsubst_copy_and_build): Handle lambda return type deduction.
   1912 	(instantiate_class_template_1): Likewise.
   1913 	(tsubst): Don't use DECLTYPE_FOR_LAMBDA_RETURN.
   1914 	* mangle.c (write_type): Likewise.
   1915 	* typeck.c (structural_comptypes): Likewise.
   1916 	(check_return_expr): Handle dependent_lambda_return_type_node.
   1917 
   1918 2011-08-23  Jason Merrill  <jason (a] redhat.com>
   1919 
   1920 	PR c++/50024
   1921 	* semantics.c (maybe_constant_value): Don't try to fold { }.
   1922 	* pt.c (build_non_dependent_expr): Don't wrap { }.
   1923 	* init.c (build_value_init): Allow scalar value-init in templates.
   1924 
   1925 2011-08-23  Jason Merrill  <jason (a] redhat.com>
   1926 
   1927 	* semantics.c (potential_constant_expression_1): Allow 'this'.
   1928 
   1929 2011-08-23  Jakub Jelinek  <jakub (a] redhat.com>
   1930 
   1931 	PR c++/50158
   1932 	* typeck.c (cp_build_modify_expr): Call mark_rvalue_use on rhs
   1933 	if it has side-effects and needs to be preevaluated.
   1934 
   1935 2011-08-23  Siddhesh Poyarekar  <siddhesh.poyarekar (a] gmail.com>
   1936 
   1937 	PR c++/50055
   1938 	* except.c (begin_eh_spec_block): Build EH_SPEC block on the
   1939 	same line as the function.
   1940 
   1941 2011-08-23  Jakub Jelinek  <jakub (a] redhat.com>
   1942 
   1943 	PR c++/46862
   1944 	* class.c (finish_struct_1): If TYPE_TRANSPARENT_AGGR is set on a type
   1945 	which doesn't have any fields, clear it and diagnose.
   1946 
   1947 2011-08-18  Rainer Orth  <ro (a] CeBiTec.Uni-Bielefeld.DE>
   1948 	    Marc Glisse  <marc.glisse (a] normalesup.org>
   1949 
   1950 	PR libstdc++-v3/1773
   1951 	* mangle.c (decl_mangling_context): Call
   1952 	targetm.cxx.decl_mangling_context.
   1953 	(write_unscoped_name): Use decl_mangling_context.
   1954 
   1955 2011-08-18  Dodji Seketeli  <dodji (a] redhat.com>
   1956 
   1957 	PR c++/45625
   1958 	* pt.c (parameter_of_template_p): Handle comparison with DECLs of
   1959 	template parameters as created by process_template_parm.
   1960 
   1961 2011-08-16  Jason Merrill  <jason (a] redhat.com>
   1962 
   1963 	PR c++/50086
   1964 	* pt.c (unify_pack_expansion): Correct overloaded unification
   1965 	logic.
   1966 
   1967 	* pt.c (instantiate_class_template_1): If DECL_PRESERVE_P is set
   1968 	on a member function or static data member, call mark_used.
   1969 
   1970 	PR c++/50054
   1971 	* typeck2.c (cxx_incomplete_type_diagnostic): Handle
   1972 	init_list_type_node.
   1973 
   1974 2011-08-13  Jason Merrill  <jason (a] redhat.com>
   1975 
   1976 	PR c++/50075
   1977 	* name-lookup.c (local_bindings_p): New.
   1978 	* name-lookup.h: Declare it.
   1979 	* lex.c (unqualified_name_lookup_error): Use it.
   1980 
   1981 	PR c++/50059
   1982 	* error.c (dump_expr): Handle MODIFY_EXPR properly.
   1983 
   1984 	* decl.c (grok_reference_init): Handle constexpr here.
   1985 	* call.c (initialize_reference): Not here.
   1986 
   1987 2011-08-12  David Li  <davidxl (a] google.com>
   1988 
   1989 	* class.c (update_vtable_entry_for_fn): Set
   1990 	LOST_PRIMARY bit properly.
   1991 
   1992 2011-08-12  Jason Merrill  <jason (a] redhat.com>
   1993 
   1994 	PR c++/50034
   1995 	* call.c (convert_arg_to_ellipsis): force_rvalue only in
   1996 	potentially evaluated context.
   1997 
   1998 2011-08-12  Richard Guenther  <rguenther (a] suse.de>
   1999 
   2000 	* call.c (build_over_call): Instead of memcpy use an
   2001 	assignment of two MEM_REFs.
   2002 
   2003 2011-08-11  Romain Geissler  <romain.geissler (a] gmail.com>
   2004 	    Brian Hackett  <bhackett1024 (a] gmail.com>
   2005 
   2006 	* decl.c (cp_finish_decl): Invoke callbacks on finish_decl event.
   2007 
   2008 2011-08-10  Richard Guenther  <rguenther (a] suse.de>
   2009 
   2010 	* call.c (build_over_call): Call memcpy unconditionally.
   2011 
   2012 2011-08-08  Jason Merrill  <jason (a] redhat.com>
   2013 
   2014 	PR c++/50020
   2015 	* semantics.c (finish_call_expr): Don't look at 'this' if we
   2016 	had an explicit object argument.
   2017 
   2018 	PR c++/50011
   2019 	* typeck2.c (check_narrowing): Fix integer logic.
   2020 
   2021 2011-08-08  Rainer Orth  <ro (a] CeBiTec.Uni-Bielefeld.DE>
   2022 
   2023 	* Make-lang.in (g++$(exeext)): Add $(EXTRA_GCC_LIBS).
   2024 
   2025 2011-08-05  Jason Merrill  <jason (a] redhat.com>
   2026 
   2027 	PR c++/48993
   2028 	* semantics.c (potential_constant_expression_1) [CALL_EXPR]: Sorry
   2029 	on 'this' in a constructor.
   2030 
   2031 	PR c++/49921
   2032 	* semantics.c (finish_decltype_type): Call invalid_nonstatic_memfn_p.
   2033 
   2034 	PR c++/49669
   2035 	* init.c (perform_member_init): Handle invalid array initializer.
   2036 
   2037 	PR c++/49988
   2038 	* semantics.c (cxx_eval_array_reference): Handle failure to
   2039 	reduce the array operand to something we can work with.
   2040 
   2041 2011-08-05  Gabriel Charette  <gchare (a] google.com>
   2042 
   2043 	* decl.c (finish_function): Remove unecessary line 0 hack.
   2044 
   2045 2011-08-05  Jason Merrill  <jason (a] redhat.com>
   2046 
   2047 	PR c++/47453
   2048 	* typeck.c (build_x_compound_expr_from_list): Also complain
   2049 	about ({...}).
   2050 
   2051 	PR c++/49812
   2052 	* typeck.c (cp_build_unary_op) [POSTINCREMENT_EXPR]: Strip cv-quals.
   2053 
   2054 	PR c++/49983
   2055 	* parser.c (cp_parser_range_for): Only do auto deduction in
   2056 	template if the range is non-dependent.
   2057 
   2058 	* init.c (perform_member_init): Always build_aggr_init
   2059 	for a class member with an explicit mem-initializer.
   2060 
   2061 	* pt.c (unify) [TEMPLATE_TYPE_PARM]: Allow VLA for C++0x 'auto'.
   2062 
   2063 2011-08-04  Jakub Jelinek  <jakub (a] redhat.com>
   2064 
   2065 	PR middle-end/49905
   2066 	* decl.c (cxx_init_decl_processing): Add alloc_size (1) attribute
   2067 	for operator new and operator new [].  Call init_attributes.
   2068 
   2069 2011-08-02  Jason Merrill  <jason (a] redhat.com>
   2070 
   2071 	PR c++/43886
   2072 	* parser.c (cp_parser_lambda_body): Clear local_variables_forbidden_p.
   2073 
   2074 	PR c++/49577
   2075 	* typeck2.c (check_narrowing): Check unsigned mismatch.
   2076 	* semantics.c (finish_compound_literal): check_narrowing.
   2077 
   2078 	PR c++/49593
   2079 	* pt.c (find_parameter_packs_r): Handle CONSTRUCTOR.
   2080 
   2081 	PR c++/49803
   2082 	* init.c (sort_mem_initializers): Initialize uses_unions_p here.
   2083 	(build_field_list): Not here.
   2084 
   2085 	PR c++/49834
   2086 	* parser.c (build_range_temp): Split out from...
   2087 	(cp_convert_range_for): ...here.
   2088 	(do_range_for_auto_deduction): New.
   2089 	(cp_parser_range_for): Use it.
   2090 
   2091 2011-08-02  Jakub Jelinek  <jakub (a] redhat.com>
   2092 
   2093 	* cp-tree.h (finish_omp_atomic): Adjust prototype.
   2094 	(cxx_omp_const_qual_no_mutable): New prototype.
   2095 	(finish_omp_taskyield): New prototype.
   2096 	* parser.c (cp_parser_omp_atomic): (cp_parser_omp_atomic): Handle
   2097 	parsing OpenMP 3.1 atomics.  Adjust finish_omp_atomic caller.
   2098 	(cp_parser_omp_clause_name): Handle final and mergeable clauses.
   2099 	(cp_parser_omp_clause_final, cp_parser_omp_clause_mergeable): New
   2100 	functions.
   2101 	(cp_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL
   2102 	and PRAGMA_OMP_CLAUSE_MERGEABLE.
   2103 	(OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses.
   2104 	(cp_parser_omp_taskyield): New function.
   2105 	(cp_parser_pragma): Handle PRAGMA_OMP_TASKYIELD.
   2106 	(cp_parser_omp_clause_reduction): Handle min and max.
   2107 	* pt.c (tsubst_expr) <case OMP_ATOMIC>: Handle OpenMP 3.1 atomics.
   2108 	(tsubst_omp_clauses): Handle OMP_CLAUSE_FINAL and
   2109 	OMP_CLAUSE_MERGEABLE.
   2110 	* semantics.c (finish_omp_atomic): Add OPCODE, V, LHS1 and RHS1
   2111 	arguments.  Handle OpenMP 3.1 atomics.  Adjust c_finish_omp_atomic
   2112 	caller.
   2113 	(finish_omp_clauses): Don't complain about const qualified
   2114 	predetermined vars and static data members in firstprivate clause.
   2115 	Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE. Handle MIN_EXPR
   2116 	and MAX_EXPR.
   2117 	(finish_omp_taskyield): New function.
   2118 	* cp-gimplify.c (cxx_omp_const_qual_no_mutable): New function.
   2119 	(cxx_omp_predetermined_sharing): Use it.
   2120 
   2121 2011-08-02  Jason Merrill  <jason (a] redhat.com>
   2122 
   2123 	* call.c (build_call_a): Also check at_function_scope_p.
   2124 
   2125 2011-08-01  Jason Merrill  <jason (a] redhat.com>
   2126 
   2127 	PR c++/49932
   2128 	* mangle.c (write_prefix): Handle decltype.
   2129 
   2130 	PR c++/49924
   2131 	* semantics.c (cxx_eval_vec_init_1): Fix logic.
   2132 
   2133 	PR c++/49813
   2134 	* semantics.c (potential_constant_expression_1): Allow any builtin.
   2135 	(morally_constexpr_builtin_function_p): Remove.
   2136 
   2137 2011-07-29  Jason Merrill  <jason (a] redhat.com>
   2138 
   2139 	PR c++/49867
   2140 	* parser.c (cp_parser_lambda_expression): Also clear in_statement
   2141 	and in_switch_statement_p.
   2142 	(cp_parser_class_specifier): Likewise.
   2143 
   2144 2011-07-28  Jason Merrill  <jason (a] redhat.com>
   2145 
   2146 	PR c++/49808
   2147 	* pt.c (tsubst) [TEMPLATE_PARM_INDEX]: Call convert_from_reference.
   2148 	(convert_nontype_argument, tsubst_template_arg): Handle its output.
   2149 
   2150 2011-07-28  Paolo Carlini  <paolo.carlini (a] oracle.com>
   2151 
   2152 	PR c++/49813
   2153 	* semantics.c (potential_constant_expression_1):  Handle FMA_EXPR.
   2154 
   2155 2011-07-27  Jeffrey Yasskin  <jyasskin (a] google.com>
   2156 
   2157 	* pt.c (build_template_decl): Copy the function_decl's
   2158 	source location to the new template_decl.
   2159 
   2160 2011-07-26  Paolo Carlini  <paolo.carlini (a] oracle.com>
   2161 
   2162 	PR c++/49776
   2163 	* typeck.c (cp_build_modify_expr): Check digest_init return value
   2164 	for error_mark_node.
   2165 
   2166 2011-07-25  Paolo Carlini  <paolo.carlini (a] oracle.com>
   2167 
   2168 	PR bootstrap/49845
   2169 	* parser.c (cp_parser_perform_range_for_lookup): Always assign *being
   2170 	and *end before returning.
   2171 
   2172 2011-07-25  Paolo Carlini  <paolo.carlini (a] oracle.com>
   2173 
   2174 	PR c++/49838
   2175 	* parser.c (cp_parser_perform_range_for_lookup): Early return if
   2176 	error_operand_p (range).
   2177 
   2178 2011-07-23  Jason Merrill  <jason (a] redhat.com>
   2179 
   2180 	PR c++/49823
   2181 	* parser.c (cp_parser_qualifying_entity): Handle templates.
   2182 
   2183 2011-07-22  Jason Merrill  <jason (a] redhat.com>
   2184 
   2185 	PR c++/49793
   2186 	* typeck2.c (check_narrowing): Downgrade permerror to pedwarn.
   2187 	Make conditional on -Wnarrowing.
   2188 
   2189 2011-07-22  Ville Voutilainen  <ville.voutilainen (a] gmail.com>
   2190 
   2191 	Warn about the use of final/override in non-c++0x mode, and
   2192 	add __final for non-c++0x mode.
   2193 	* cp-tree.h (cpp0x_warn_str): Add CPP0X_OVERRIDE_CONTROLS.
   2194 	* error.c (maybe_warn_cpp0x): Adjust.
   2195 	* parser.c (cp_parser_virt_specifier_seq_opt): Use it. Add
   2196 	'__final' as a non-c++0x alternative for 'final'.
   2197 
   2198 2011-07-22  Jason Merrill  <jason (a] redhat.com>
   2199 	    Mark Glisse  <marc.glisse (a] normalesup.org>
   2200 
   2201 	PR c++/30112
   2202 	* decl.c (cp_finish_decl): Apply pragma redefine_extname in
   2203 	other namespaces as well.
   2204 	* name-lookup.c (c_linkage_bindings): Define.
   2205 	(lookup_extern_c_fun_in_all_ns): Rename from
   2206 	lookup_extern_c_fun_binding_in_all_ns.  Return tree.
   2207 	(pushdecl_maybe_friend_1): Adjust.  Copy DECL_ASSEMBLER_NAME.
   2208 
   2209 2011-07-20  Jason Merrill  <jason (a] redhat.com>
   2210 
   2211 	* parser.c (cp_parser_initializer_list): Handle C99 .id= and [N]=
   2212 	designated initializer syntax.
   2213 	* decl.c (check_array_designated_initializer): Add index parm.
   2214 	(maybe_deduce_size_from_array_init): Pass it.
   2215 	(reshape_init_array_1): Likewise.
   2216 
   2217 	PR c++/6709 (DR 743)
   2218 	PR c++/42603 (DR 950)
   2219 	* parser.c (token_is_decltype, cp_lexer_next_token_is_decltype): New.
   2220 	(cp_parser_nested_name_specifier_opt): Allow decltype.
   2221 	(cp_parser_qualifying_entity): Likewise.
   2222 	(cp_parser_decltype): Replace source tokens with CPP_DECLTYPE.
   2223 	(cp_parser_simple_type_specifier): Handle decltype as scope.
   2224 	(cp_parser_base_specifier): Allow decltype.
   2225 	(cp_parser_base_clause): Don't crash on null base.
   2226 	* parser.h (CPP_KEYWORD, CPP_TEMPLATE_ID): Move to c-common.h.
   2227 	(CPP_NESTED_NAME_SPECIFIER, N_CP_TTYPES): Likewise.
   2228 
   2229 2011-07-19  Jason Merrill  <jason (a] redhat.com>
   2230 
   2231 	PR c++/49785
   2232 	* pt.c (coerce_template_parms): Handle non-pack after pack.
   2233 
   2234 2011-07-19  Richard Guenther  <rguenther (a] suse.de>
   2235 
   2236 	* call.c (build_special_member_call): Use fold_build_pointer_plus.
   2237 	* class.c (build_base_path): Likewise.
   2238 	(convert_to_base_statically): Likewise.
   2239 	(dfs_accumulate_vtbl_inits): Likewise.
   2240 	* cp-gimplify.c (cxx_omp_clause_apply_fn): Likewise.
   2241 	* except.c (expand_start_catch_block): Likewise.
   2242 	* init.c (expand_virtual_init): Likewise.
   2243 	(build_new_1): Likewise.
   2244 	(build_vec_delete_1): Likewise.
   2245 	(build_vec_delete): Likewise.
   2246 	* rtti.c (build_headof): Likewise.
   2247 	(tinfo_base_init): Likewise.
   2248 	* typeck.c (get_member_function_from_ptrfunc): Likewise.
   2249 	(cp_build_addr_expr_1): Likewise.
   2250 	* typeck2.c (build_m_component_ref): Likewise.
   2251 
   2252 2011-07-18  Martin Jambor  <mjambor (a] suse.cz>
   2253 
   2254 	* parser.c (cp_parser_parameter_declaration_list): Initialize
   2255 	parenthesized_p.
   2256 
   2257 2011-07-16  Jason Merrill  <jason (a] redhat.com>
   2258 
   2259 	* pt.c (tinst_level_tick, last_template_error_tick): Replace with
   2260 	last_error_tinst_level.
   2261 	(push_tinst_level, pop_tinst_level): Adjust.
   2262 	(problematic_instantiation_changed): Adjust.
   2263 	(record_last_problematic_instantiation): Adjust.
   2264 	* error.c (cp_print_error_function): Don't print
   2265 	current_function_decl if we're in a template instantiation context.
   2266 	(print_instantiation_full_context): Always print first line.
   2267 
   2268 2011-07-16  Nathan Froyd  <froydnj (a] codesourcery.com>
   2269 	    Jason Merrill  <jason (a] redhat.com>
   2270 
   2271 	PR c++/45329
   2272 	PR c++/48934
   2273 	* cp-tree.h (fn_type_unification): Add `bool' parameter.
   2274 	* pt.c (enum template_base_result): Define.
   2275 	(unify_success, unify_unknown): Define.
   2276 	(unify_parameter_deduction_failure): Define.
   2277 	(unify_invalid, unify_cv_qual_mismatch, unify_type_mismatch): Define.
   2278 	(unify_parameter_pack_mismatch): Define.
   2279 	(unify_parameter_pack_inconsistent): Define.
   2280 	(unify_ptrmem_cst_mismatch, unify_vla_arg): Define.
   2281 	(unify_expression_unequal, unify_inconsistency): Define.
   2282 	(unify_method_type_error, unify_arity): Likewise.
   2283 	(unify_too_many_parameters, unify_too_few_parameters): Define.
   2284 	(unify_arg_conversion, unify_no_common_base): Define.
   2285 	(unify_illformed_ptrmem_cst_expr): Define.
   2286 	(unify_substitution_failure): Define.
   2287 	(unify_inconsistent_template_template_parameters): Define.
   2288 	(unify_template_deduction_failure): Define.
   2289 	(unify_template_argument_mismatch): Define.
   2290 	(unify_overload_resolution_failure): Define.
   2291 	(comp_template_args_with_info): New function, split out from...
   2292 	(comp_template_args): ...here.	Call it.
   2293 	(deduction_tsubst_fntype): Add `complain' parameter'.  Pass it
   2294 	to tsubst.
   2295 	(unify): Add `explain_p' parameter.  Pass to all relevant calls.
   2296 	Call above status functions when appropriate.
   2297 	(resolve_overloaded_unification, try_one_overload): Likewise.
   2298 	(type_unification, type_unification_real): Likewise.
   2299 	(unify_pack_expansion): Likewise.
   2300 	(get_template_base, try_class_unification): Likewise.
   2301 	(get_bindings, more_specialized_fn): Pass false to unification
   2302 	calls.
   2303 	(get_class_bindings, do_auto_deduction): Likewise.
   2304 	(convert_nontype_argument): Likewise.
   2305 	(fn_type_unification): Likewise.  Pass tf_warning_or_error if
   2306 	explain_p.
   2307 	(get_template_base): Add `explain_p' parameter and pass it to
   2308 	try_class_unification.	Return an enum template_base_result.
   2309 	* class.c (resolve_address_of_overloaded_function): Pass false to
   2310 	fn_type_unification.
   2311 	* call.c (enum rejection_reason_code): Add new codes.
   2312 	(struct rejection_reason): Add template_unification field.
   2313 	Add template_instantiation field.
   2314 	(template_unification_rejection): Define.
   2315 	(template_unification_error_rejection): Define.
   2316 	(template_instantiation_rejection): Define.
   2317 	(invalid_copy_with_fn_template_rejection): Define.
   2318 	(add_template_candidate): Pass false to unify.
   2319 	Provide more rejection reasons when possible.
   2320 	(print_template_unification_rejection): Define.
   2321 	(print_arity_rejection): Define, split out from...
   2322 	(print_z_candidate): ...here.  Add cases for new rejection
   2323 	reasons.
   2324 
   2325 2011-07-15  Jason Merrill  <jason (a] redhat.com>
   2326 
   2327 	* Make-lang.in (check-g++-strict-gc): New.
   2328 	(cp/except.o): Depend on gt-cp-except.h
   2329 	* except.c: Include gt-cp-except.h.
   2330 	* config-lang.in (gtfiles): Add cp/except.c.
   2331 	* decl2.c (mark_used): Adjust constexpr condition, set
   2332 	function_depth around template instantiation.
   2333 	* parser.c (cp_parser_lambda_body): Set function_depth.
   2334 	* semantics.c (maybe_add_lambda_conv_op): Likewise.
   2335 
   2336 	PR testsuite/49741
   2337 	* Make-lang.in (check-c++0x): Use --extra_opts instead of--tool_opts.
   2338 
   2339 2011-07-13  Jason Merrill  <jason (a] redhat.com>
   2340 
   2341 	* Make-lang.in (check-c++0x): New.
   2342 
   2343 2011-07-13  Richard Sandiford  <richard.sandiford (a] linaro.org>
   2344 
   2345 	* typeck2.c (split_nonconstant_init_1): Pass the initializer directly,
   2346 	rather than a pointer to it.  Return true if the whole of the value
   2347 	was initialized by the generated statements.  Use
   2348 	complete_ctor_at_level_p instead of count_type_elements.
   2349 
   2350 2011-07-12   Diego Novillo  <dnovillo (a] google.com>
   2351 
   2352 	* name-lookup.h (cp_binding_level): Rename from cxx_scope.
   2353 	Update all users.
   2354 	(struct cp_binding_level): Fix indentation.
   2355 
   2356 2011-07-11  Jason Merrill  <jason (a] redhat.com>
   2357 
   2358 	PR c++/49672
   2359 	* pt.c (extract_fnparm_pack): Split out from...
   2360 	(make_fnparm_pack): ...here.
   2361 	(instantiate_decl): Handle non-pack parms after a pack.
   2362 	* semantics.c (maybe_add_lambda_conv_op): Don't in a template.
   2363 
   2364 	* decl2.c (decl_constant_var_p): Use decl_maybe_constant_var_p.
   2365 
   2366 	PR c++/44609
   2367 	* cp-tree.h (struct tinst_level): Add errors field.
   2368 	* pt.c (neglectable_inst_p, limit_bad_template_recurson): New.
   2369 	(push_tinst_level): Don't start another decl in that case.
   2370 	(reopen_tinst_level): Adjust errors field.
   2371 	* decl2.c (cp_write_global_declarations): Don't complain about
   2372 	undefined inline if its template was defined.
   2373 	* mangle.c (mangle_decl_string): Handle failure from push_tinst_level.
   2374 
   2375 2011-07-10  Jason Merrill  <jason (a] redhat.com>
   2376 
   2377 	PR c++/49691
   2378 	* parser.c (cp_parser_late_return_type_opt): Check quals parameter
   2379 	rather than current_class_type to determine whether to set 'this'.
   2380 	(cp_parser_direct_declarator): Pass -1 to quals if member_p is false.
   2381 	(cp_parser_init_declarator): Pass down member_p.
   2382 
   2383 2011-07-09  Jason Merrill  <jason (a] redhat.com>
   2384 
   2385 	* tree.c (build_vec_init_elt): Strip TARGET_EXPR.
   2386 
   2387 2011-07-08  Jason Merrill  <jason (a] redhat.com>
   2388 
   2389 	PR c++/45437
   2390 	* typeck.c (cp_build_modify_expr): Preevaluate RHS.
   2391 
   2392 	* method.c (use_thunk): Use cgraph_add_to_same_comdat_group.
   2393 	* optimize.c (maybe_clone_body): Likewise.
   2394 	* semantics.c (maybe_add_lambda_conv_op): Likewise.
   2395 
   2396 	PR c++/45603
   2397 	* decl.c (expand_static_init): Don't get confused by user
   2398 	declaration of __cxa_guard_acquire.
   2399 
   2400 	* typeck.c (cp_apply_type_quals_to_decl): Don't check
   2401 	COMPLETE_TYPE_P either.
   2402 
   2403 	PR c++/49673
   2404 	* typeck.c (cp_apply_type_quals_to_decl): Don't check
   2405 	TYPE_NEEDS_CONSTRUCTING.
   2406 
   2407 2011-07-07  Jason Merrill  <jason (a] redhat.com>
   2408 
   2409 	PR c++/49663
   2410 	* pt.c (push_deduction_access_scope): Preserve
   2411 	processing_template_decl across push_to_top_level.
   2412 	And revert:
   2413 	* class.c (pushclass): Accept NULL argument.
   2414 	(popclass): Deal with popping null class.
   2415 	* pt.c (push_access_scope, pop_access_scope): Use them rather than
   2416 	push_to_top_level/pop_from_top_level.
   2417 	* name-lookup.c (lookup_name_real_1): Check current_class_type.
   2418 
   2419 2011-07-07  Jakub Jelinek  <jakub (a] redhat.com>
   2420 
   2421 	PR c/49644
   2422 	* typeck.c (cp_build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with
   2423 	one non-complex and one complex argument, call save_expr on both
   2424 	operands.
   2425 
   2426 2011-07-06  Jason Merrill  <jason (a] redhat.com>
   2427 
   2428 	PR c++/49353
   2429 	* semantics.c (expand_or_defer_fn_1): Clear DECL_EXTERNAL
   2430 	on kept inlines.
   2431 
   2432 	PR c++/49568
   2433 	* method.c (make_thunk, use_thunk): Copy DECL_COMDAT.
   2434 
   2435 2011-07-05  Jason Merrill  <jason (a] redhat.com>
   2436 
   2437 	PR c++/48157
   2438 	* pt.c (tsubst_qualified_id): Preserve TEMPLATE_ID_EXPR in
   2439 	partial instantiation.
   2440 
   2441 	PR c++/49598
   2442 	* semantics.c (finish_id_expression): convert_from_reference.
   2443 
   2444 2011-07-05  Richard Guenther  <rguenther (a] suse.de>
   2445 
   2446 	* decl.c (cxx_init_decl_processing): Defer building common
   2447 	tree nodes to c_common_nodes_and_builtins.
   2448 
   2449 2011-07-04  Jason Merrill  <jason (a] redhat.com>
   2450 
   2451 	DR 1207
   2452 	PR c++/49589
   2453 	* mangle.c (write_expression): Handle 'this'.
   2454 	* parser.c (cp_parser_postfix_dot_deref_expression): Allow
   2455 	incomplete *this.
   2456 	* semantics.c (potential_constant_expression_1): Check that
   2457 	DECL_CONTEXT is set on 'this'.
   2458 
   2459 	* error.c (dump_template_bindings): Don't print typenames
   2460 	for a partial instantiation.
   2461 	(dump_function_decl): If we aren't printing function arguments,
   2462 	print template arguments as <args> rather than [with ...].
   2463 	(dump_expr): Don't print return type or template header.
   2464 	[BASELINK]: Use BASELINK_FUNCTIONS rather than get_first_fn.
   2465 	* pt.c (dependent_template_arg_p): Handle null arg.
   2466 
   2467 	* error.c (type_to_string): Avoid redundant akas.
   2468 
   2469 2011-07-01  Jonathan Wakely  <jwakely.gcc (a] gmail.com>
   2470 
   2471 	PR c++/49605
   2472 	* init.c (build_delete): Only warn for sfk_deleting_destructor.
   2473 
   2474 2011-07-01  Jakub Jelinek  <jakub (a] redhat.com>
   2475 
   2476 	* Make-lang.in (cp/decl.o): Depend on pointer-set.h.
   2477 	(cp/class.o): Likewise.
   2478 	(cp/error.o): Likewise.
   2479 	(cp/name-lookup.o): Likewise.
   2480 	(cp/decl2.o): Likewise.  Don't depend on $(POINTER_SET_H).
   2481 
   2482 2011-07-01  Jason Merrill  <jason (a] redhat.com>
   2483 
   2484 	PR c++/48261
   2485 	* pt.c (lookup_template_function): Handle non-function.
   2486 
   2487 	PR c++/48593
   2488 	* pt.c (tsubst_qualified_id): Check PTRMEM_OK_P.
   2489 	* tree.c (build_qualified_name): Set PTRMEM_OK_P.
   2490 	* semantics.c (finish_parenthesized_expr): Clear PTRMEM_OK_P on
   2491 	SCOPE_REF, too.
   2492 	* cp-tree.h (PTRMEM_OK_P): Apply to SCOPE_REF, too.
   2493 	(QUALIFIED_NAME_IS_TEMPLATE): Switch to lang flag 1.
   2494 
   2495 	PR c++/48883
   2496 	PR c++/49609
   2497 	* pt.c (resolve_nondeduced_context): Call mark_used.
   2498 
   2499 	PR c++/49085
   2500 	* semantics.c (finish_offsetof): Complain about incomplete type.
   2501 
   2502 2011-06-30  Jason Merrill  <jason (a] redhat.com>
   2503 
   2504 	PR c++/49387
   2505 	* rtti.c (get_tinfo_decl): Call complete_type.
   2506 
   2507 	PR c++/49569
   2508 	* method.c (implicitly_declare_fn): Set DECL_PARM_LEVEL and
   2509 	DECL_PARM_INDEX on rhs parm.
   2510 
   2511 	* pt.c (iterative_hash_template_arg): Use cp_tree_operand_length.
   2512 
   2513 	PR c++/49355
   2514 	* tree.c (stabilize_init): Handle aggregate initialization.
   2515 
   2516 	PR c++/48481
   2517 	* name-lookup.c (struct arg_lookup): Add fn_set.
   2518 	(add_function): Check it.
   2519 	(lookup_arg_dependent_1): Initialize it.
   2520 
   2521 2011-06-29  Jason Merrill  <jason (a] redhat.com>
   2522 
   2523 	PR c++/49216
   2524 	* init.c (build_new_1): Pass {} down to build_vec_init.
   2525 	(build_vec_init): Handle it.
   2526 
   2527 	DR 1207
   2528 	PR c++/49003
   2529 	* cp-tree.h (struct saved_scope): Add x_current_class_ptr,
   2530 	x_current_class_ref.
   2531 	(current_class_ptr, current_class_ref): Use them.
   2532 	* decl.c (build_this_parm): Handle getting the class type.
   2533 	* parser.c (cp_parser_late_return_type_opt): Set up 'this'
   2534 	for use within the trailing return type.
   2535 
   2536 	* pt.c (tsubst_decl) [VAR_DECL]: In unevaluated operand,
   2537 	don't tsubst DECL_INITIAL unless our type use auto.
   2538 
   2539 	PR c++/49520
   2540 	* semantics.c (constexpr_fn_retval): Handle CLEANUP_POINT_EXPR here.
   2541 	(massage_constexpr_body): Not here.
   2542 
   2543 	PR c++/49554
   2544 	* semantics.c (lambda_proxy_type): New.
   2545 	(build_capture_proxy): Use it.
   2546 	* cp-tree.h (DECLTYPE_FOR_LAMBDA_PROXY): New.
   2547 	* pt.c (tsubst) [DECLTYPE_TYPE]: Use them.
   2548 
   2549 	PR c++/45923
   2550 	* class.c (explain_non_literal_class): New.
   2551 	(finalize_literal_type_property): Call it.
   2552 	* cp-tree.h: Declare it.
   2553 	* semantics.c (ensure_literal_type_for_constexpr_object): Call it.
   2554 	(is_valid_constexpr_fn): Likewise.
   2555 	(massage_constexpr_body): Split out from...
   2556 	(register_constexpr_fundef): ...here.
   2557 	(is_instantiation_of_constexpr): New.
   2558 	(expand_or_defer_fn_1): Leave DECL_SAVED_TREE alone in that case.
   2559 	(explain_invalid_constexpr_fn): New.
   2560 	(cxx_eval_call_expression): Call it.
   2561 	(potential_constant_expression_1): Likewise.  Avoid redundant errors.
   2562 	* method.c (process_subob_fn): Diagnose non-constexpr.
   2563 	(walk_field_subobs): Likewise.
   2564 	(synthesized_method_walk): Don't shortcut if we want diagnostics.
   2565 	(explain_implicit_non_constexpr): New.
   2566 	(defaulted_late_check): Use it.
   2567 	* call.c (build_cxx_call): Remember location.
   2568 
   2569 	* method.c (maybe_explain_implicit_delete): Use pointer_set
   2570 	instead of htab.
   2571 
   2572 	* class.c (finalize_literal_type_property): Update conditions.
   2573 	* method.c (defaulted_late_check): Set TYPE_HAS_CONSTEXPR_CTOR.
   2574 
   2575 	* tree.c (build_vec_init_expr): Don't add TARGET_EXPR.
   2576 	* typeck2.c (digest_init_r): Handle VEC_INIT_EXPR.
   2577 	* semantics.c (cxx_eval_vec_init_1): Correct type.
   2578 
   2579 	* init.c (build_value_init): Decide whether or not to zero-initialize
   2580 	based on user-providedness of default ctor, not any ctor.
   2581 	(build_value_init_noctor): Adjust assert.
   2582 
   2583 	DR 990
   2584 	* call.c (convert_like_real) [ck_user]: Handle value-initialization.
   2585 	(build_new_method_call_1): Likewise.
   2586 	* init.c (expand_default_init): Handle direct list-initialization
   2587 	of aggregates.
   2588 
   2589 2011-06-27  Jakub Jelinek  <jakub (a] redhat.com>
   2590 
   2591 	* cp-tree.h (union lang_tree_node): Use it in chain_next expression.
   2592 
   2593 2011-06-26  Jason Merrill  <jason (a] redhat.com>
   2594 
   2595 	PR c++/49528
   2596 	* semantics.c (potential_constant_expression_1): Check
   2597 	for non-literality rather than cleanup.
   2598 	(cxx_eval_constant_expression): Likewise.
   2599 
   2600 	PR c++/49528
   2601 	* semantics.c (potential_constant_expression_1): A TARGET_EXPR
   2602 	with a cleanup isn't constant.
   2603 	(cxx_eval_constant_expression): Likewise.
   2604 	* init.c (expand_default_init): Use maybe_constant_init.
   2605 
   2606 2011-06-24  Jakub Jelinek  <jakub (a] redhat.com>
   2607 
   2608 	PR c++/46400
   2609 	* cp-tree.h (union lang_tree_node): Use TYPE_NEXT_VARIANT
   2610 	instead of TYPE_CHAIN for chain_next for types.
   2611 
   2612 2011-06-23  Gabriel Charette  <gchare (a] google.com>
   2613 
   2614 	* name-lookup.h (cp_binding_level): Removed unused
   2615 	member names_size. Update all users.
   2616 
   2617 2011-06-23  Jason Merrill  <jason (a] redhat.com>
   2618 
   2619 	* typeck2.c (build_functional_cast): Strip cv-quals for value init.
   2620 	* init.c (build_zero_init_1): Not here.
   2621 
   2622 	PR c++/35255
   2623 	* pt.c (resolve_overloaded_unification): Fix DR 115 handling.
   2624 
   2625 2011-06-23  Paolo Carlini  <paolo.carlini (a] oracle.com>
   2626 
   2627 	PR c++/44625
   2628 	* decl2.c (build_anon_union_vars): Early return error_mark_node
   2629 	for a nested anonymous struct.
   2630 
   2631 2011-06-23  Jason Merrill  <jason (a] redhat.com>
   2632 
   2633 	PR c++/49507
   2634 	* decl2.c (mark_used): Don't call synthesize_method for
   2635 	functions defaulted outside the class.
   2636 
   2637 	* optimize.c (maybe_clone_body): Set linkage flags before
   2638 	cgraph_same_body_alias.
   2639 
   2640 	PR c++/49440
   2641 	* class.c (set_linkage_according_to_type): Hand off to
   2642 	determine_visibility.
   2643 
   2644 	PR c++/49395
   2645 	* init.c (build_zero_init_1): Strip cv-quals from scalar types.
   2646 
   2647 	PR c++/36435
   2648 	* pt.c (most_specialized_instantiation): Do check return types.
   2649 
   2650 2011-06-22  Jason Merrill  <jason (a] redhat.com>
   2651 
   2652 	PR c++/49260
   2653 	* call.c (build_call_a): Set cp_function_chain->can_throw here.
   2654 	(build_cxx_call): Not here.
   2655 
   2656 2011-06-21  Jason Merrill  <jason (a] redhat.com>
   2657 
   2658 	PR c++/49172
   2659 	* decl.c (cp_finish_decl): Adjust init_const_expr_p for refs.
   2660 	(grokdeclarator): constexpr doesn't apply const for refs.
   2661 	* parser.c (cp_parser_initializer_clause): Don't call
   2662 	maybe_constant_value here.
   2663 	* call.c (initialize_reference): Handle constexpr.
   2664 
   2665 	PR c++/49482
   2666 	* semantics.c (maybe_add_lambda_conv_op): Call mark_exp_read for
   2667 	static fn parameters.
   2668 
   2669 	* call.c (add_builtin_candidates): Use cv_unqualified rather than
   2670 	TYPE_MAIN_VARIANT.
   2671 	* pt.c (tsubst_arg_types): Likewise.
   2672 	* except.c (build_throw): Use cv_unqualified.
   2673 
   2674 	PR c++/49418
   2675 	* call.c (cxx_type_promotes_to): Don't strip cv-quals.
   2676 	* semantics.c (lambda_return_type): Strip them here.
   2677 
   2678 2011-06-21  Andrew MacLeod  <amacleod (a] redhat.com>
   2679 
   2680 	* semantics.c: Add sync_ or SYNC__ to builtin names.
   2681 
   2682 2011-06-20  Jason Merrill  <jason (a] redhat.com>
   2683 
   2684 	PR c++/49216
   2685 	* init.c (build_vec_init): Don't try to use a CONSTRUCTOR when
   2686 	base is a pointer.
   2687 	* typeck2.c (process_init_constructor_array): Use {} for classes,
   2688 	too.
   2689 	* call.c (convert_like_real): Handle substitution failure.
   2690 
   2691 	PR c++/48138
   2692 	* pt.c (canonicalize_type_argument): New.
   2693 	(convert_template_argument, unify): Use it.
   2694 
   2695 	PR c++/47080
   2696 	* call.c (rejection_reason_code): Add rr_explicit_conversion.
   2697 	(print_z_candidate): Handle it.
   2698 	(explicit_conversion_rejection): New.
   2699 	(build_user_type_conversion_1): Reject an explicit conversion
   2700 	function that requires more than a qualification conversion.
   2701 
   2702 	PR c++/47635
   2703 	* decl.c (grokdeclarator): Don't set ctype to an ENUMERAL_TYPE.
   2704 
   2705 	PR c++/48138
   2706 	* tree.c (strip_typedefs): Use build_aligned_type.
   2707 
   2708 	PR c++/49205
   2709 	* call.c (sufficient_parms_p): Allow parameter packs too.
   2710 
   2711 	PR c++/43321
   2712 	* semantics.c (describable_type): Remove.
   2713 	* cp-tree.h: Likewise.
   2714 	* decl.c (cp_finish_decl): Don't call it.
   2715 	* init.c (build_new): Likewise.
   2716 	* parser.c (cp_parser_omp_for_loop): Likewise.
   2717 	* pt.c (tsubst_decl): Likewise.
   2718 	(do_auto_deduction): If we fail in a template, try again
   2719 	at instantiation time.
   2720 
   2721 	PR c++/43831
   2722 	* parser.c (cp_parser_lambda_introducer): Complain about redundant
   2723 	captures.
   2724 	* semantics.c (add_capture): Likewise.
   2725 	(register_capture_members): Clear IDENTIFIER_MARKED.
   2726 
   2727 2011-06-17  Jason Merrill  <jason (a] redhat.com>
   2728 
   2729 	PR c++/49458
   2730 	* call.c (convert_class_to_reference_1): Allow binding function
   2731 	lvalue to rvalue reference.
   2732 
   2733 	PR c++/43912
   2734 	Generate proxy VAR_DECLs for better lambda debug info.
   2735 	* cp-tree.h (FUNCTION_NEEDS_BODY_BLOCK): Add lambda operator().
   2736 	(LAMBDA_EXPR_PENDING_PROXIES): New.
   2737 	(struct tree_lambda_expr): Add pending_proxies.
   2738 	* name-lookup.c (pushdecl_maybe_friend_1): Handle capture shadowing.
   2739 	(qualify_lookup): Use is_lambda_ignored_entity.
   2740 	* parser.c (cp_parser_lambda_expression): Don't adjust field names.
   2741 	Call insert_pending_capture_proxies.
   2742 	(cp_parser_lambda_introducer): Use this_identifier.
   2743 	(cp_parser_lambda_declarator_opt): Call the object parameter
   2744 	of the op() "__closure" instead of "this".
   2745 	(cp_parser_lambda_body): Call build_capture_proxy.
   2746 	* semantics.c (build_capture_proxy, is_lambda_ignored_entity): New.
   2747 	(insert_pending_capture_proxies, insert_capture_proxy): New.
   2748 	(is_normal_capture_proxy, is_capture_proxy): New.
   2749 	(add_capture): Add __ to field names here, return capture proxy.
   2750 	(add_default_capture): Use this_identifier, adjust to expect
   2751 	add_capture to return a capture proxy.
   2752 	(outer_lambda_capture_p, thisify_lambda_field): Remove.
   2753 	(finish_id_expression, lambda_expr_this_capture): Adjust.
   2754 	(build_lambda_expr): Initialize LAMBDA_EXPR_PENDING_PROXIES.
   2755 	* pt.c (tsubst_copy_and_build): Check that LAMBDA_EXPR_PENDING_PROXIES
   2756 	is null.
   2757 
   2758 	* name-lookup.c (pushdecl_maybe_friend_1): Do check for shadowing
   2759 	of artificial locals.
   2760 
   2761 	* parser.c (cp_parser_lambda_expression): Clear
   2762 	LAMBDA_EXPR_THIS_CAPTURE after parsing.
   2763 	* pt.c (tsubst_copy_and_build): Make sure it isn't set.
   2764 
   2765 	* cp-tree.h (struct tree_lambda_expr): Change common to typed.
   2766 	Move non-pointers to end of struct.
   2767 
   2768 	* pt.c (tsubst_decl): Handle DECL_VALUE_EXPR on reference.
   2769 	* decl.c (check_initializer): Handle DECL_VALUE_EXPR_P.
   2770 
   2771 	* semantics.c (finish_non_static_data_member): Preserve dereference
   2772 	in template.
   2773 
   2774 2011-06-16  Jason Merrill  <jason (a] redhat.com>
   2775 
   2776 	PR c++/44160
   2777 	* parser.c (cp_parser_lambda_body): Share code between
   2778 	simple and complex cases instead of using cp_parser_function_body.
   2779 
   2780 	PR c++/45378
   2781 	* decl.c (check_initializer): Check narrowing.
   2782 
   2783 	PR c++/49229
   2784 	* pt.c (tsubst_decl) [FUNCTION_DECL]: Handle substitution failure.
   2785 
   2786 	PR c++/49251
   2787 	* semantics.c (finish_id_expression): Mark even dependent
   2788 	variables as used.
   2789 
   2790 	PR c++/49420
   2791 	* error.c (dump_template_argument): Don't try to omit default
   2792 	template args from an argument pack.
   2793 
   2794 2011-06-15  H.J. Lu  <hongjiu.lu (a] intel.com>
   2795 
   2796 	PR c++/49412
   2797 	* decl.c (get_dso_handle_node): Mark __dso_handle hidden if
   2798 	assembler supports hidden visibility.
   2799 
   2800 2011-06-14  Jason Merrill  <jason (a] redhat.com>
   2801 
   2802 	PR c++/49107
   2803 	* cp-tree.h (DEFERRED_NOEXCEPT_SPEC_P): Handle overload.
   2804 	* method.c (defaulted_late_check): Only maybe_instantiate_noexcept
   2805 	if the declaration had an exception-specifier.
   2806 	(process_subob_fn): Don't maybe_instantiate_noexcept.
   2807 	* pt.c (maybe_instantiate_noexcept): Handle overload.
   2808 	* typeck2.c (nothrow_spec_p_uninst): New.
   2809 	(merge_exception_specifiers): Add 'fn' parm.  Build up overload.
   2810 	* typeck.c (merge_types): Adjust.
   2811 
   2812 	* pt.c (deduction_tsubst_fntype): Don't save input_location.
   2813 	(maybe_instantiate_noexcept): Likewise.
   2814 
   2815 2011-06-14  Joseph Myers  <joseph (a] codesourcery.com>
   2816 
   2817 	* Make-lang.in (cp/method.o): Update dependencies.
   2818 	* method.c: Include common/common-target.h.
   2819 	(use_thunk): Use targetm_common.have_named_sections.
   2820 
   2821 2011-06-14  Steve Ellcey  <sje (a] cup.hp.com>
   2822 
   2823 	* decl.c (cxx_init_decl_processing): Use ptr_mode instead of Pmode.
   2824 
   2825 2011-06-14  Jason Merrill  <jason (a] redhat.com>
   2826 
   2827 	* error.c (type_to_string): Print typedef-stripped version too.
   2828 
   2829 	PR c++/49117
   2830 	* call.c (perform_implicit_conversion_flags): Print source type as
   2831 	well as expression.
   2832 
   2833 	PR c++/49389
   2834 	* typeck2.c (build_m_component_ref): Preserve rvalueness.
   2835 
   2836 	PR c++/49369
   2837 	* class.c (build_base_path): Fix cv-quals in unevaluated context.
   2838 
   2839 	PR c++/49290
   2840 	* semantics.c (cxx_fold_indirect_ref): Local, more permissive copy
   2841 	of fold_indirect_ref_1.
   2842 	(cxx_eval_indirect_ref): Use it.
   2843 
   2844 2011-06-11  Jan Hubicka  <jh (a] suse.cz>
   2845 
   2846 	* decl2.c (cp_write_global_declarations): Process aliases; look trhough
   2847 	same body aliases.
   2848 
   2849 2011-06-10  Paolo Carlini  <paolo.carlini (a] oracle.com>
   2850 
   2851 	PR c++/41769
   2852 	* decl.c (grokdeclarator): Reject operator names in parameters.
   2853 
   2854 2011-06-10  Jan Hubicka  <jh (a] suse.cz>
   2855 
   2856 	* decl2.c (clear_decl_external): New functoin.
   2857 	(cp_write_global_declarations): Use it.
   2858 
   2859 2011-06-10  Paolo Carlini  <paolo.carlini (a] oracle.com>
   2860 
   2861 	* cp-tree.h (error_operand_p): Remove.
   2862 
   2863 2011-06-09  David Krauss  <potswa (a] mac.com>
   2864 
   2865 	PR c++/49118
   2866 	* typeck2.c (build_x_arrow): Push fake template context
   2867 	to produce diagnostic on acyclic endless operator-> drill-down.
   2868 	* call.c (build_new_op): Change Boolean overload status
   2869 	value to a pointer to the overload function.
   2870 	* cp-tree.h: Likewise.
   2871 	* typeck.c: Likewise.
   2872 	* parser.c: Likewise.
   2873 	* decl2.c: Likewise.
   2874 	* pt.c: Likewise.
   2875 
   2876 2011-06-09  Jason Merrill  <jason (a] redhat.com>
   2877 
   2878 	* semantics.c (maybe_constant_value): Handle overflowed input.
   2879 	(non_const_var_error): Handle non-constant DECL_INITIAL.
   2880 
   2881 	* pt.c (build_non_dependent_expr): Use fold_non_dependent_expr_sfinae.
   2882 
   2883 	* parser.c (cp_parser_constant_expression): Just return the
   2884 	non-constant expression.
   2885 
   2886 	* semantics.c (finish_compound_literal): Set TREE_HAS_CONSTRUCTOR.
   2887 
   2888 2011-06-09  Paolo Carlini  <paolo.carlini (a] oracle.com>
   2889 
   2890 	PR c++/29003
   2891 	* decl.c (grokdeclarator): Reject operator names in typedefs.
   2892 
   2893 2011-06-08  Jason Merrill  <jason (a] redhat.com>
   2894 
   2895 	PR c++/49107
   2896 	* cp-tree.def (DEFERRED_NOEXCEPT): New.
   2897 	* cp-tree.h (struct tree_deferred_noexcept): New.
   2898 	(DEFERRED_NOEXCEPT_PATTERN, DEFERRED_NOEXCEPT_ARGS): New.
   2899 	(DEFERRED_NOEXCEPT_SPEC_P): New.
   2900 	(enum cp_tree_node_structure_enum): Add TS_CP_DEFERRED_NOEXCEPT.
   2901 	(union lang_tree_node): Add tree_deferred_noexcept.
   2902 	(maybe_instantiate_noexcept): Declare.
   2903 	* cp-objcp-common.c (cp_tree_size): Handle DEFERRED_NOEXCEPT.
   2904 	* error.c (dump_exception_spec): Likewise.
   2905 	* cxx-pretty-print.c (pp_cxx_exception_specification): Likewise.
   2906 	* ptree.c (cxx_print_xnode): Likewise.
   2907 	* tree.c (cp_tree_equal): Likewise.
   2908 	* decl.c (cp_tree_node_structure): Likewise.
   2909 	(duplicate_decls): Call maybe_instantiate_noexcept.
   2910 	* except.c (build_noexcept_spec): Handle DEFERRED_NOEXCEPT.
   2911 	(nothrow_spec_p, type_noexcept_p, type_throw_all_p): Check
   2912 	DEFERRED_NOEXCEPT_SPEC_P.
   2913 	* typeck2.c (merge_exception_specifiers): Likewise.
   2914 	* decl2.c (mark_used): Call maybe_instantiate_noexcept.
   2915 	* method.c (process_subob_fn, defaulted_late_check): Likewise.
   2916 	* pt.c (tsubst_exception_specification): Add defer_ok parm.
   2917 	Build DEFERRED_NOEXCEPT.
   2918 	(maybe_instantiate_noexcept): New.
   2919 	(tsubst, regenerate_decl_from_template, instantiate_decl): Adjust.
   2920 	* search.c (check_final_overrider): Call maybe_instantiate_noexcept.
   2921 
   2922 	* semantics.c (potential_constant_expression_1): Handle destructor
   2923 	call.
   2924 
   2925 2011-06-08  Jakub Jelinek  <jakub (a] redhat.com>
   2926 
   2927 	* cp-tree.h (struct tinst_level): Add chain_next GTY
   2928 	markup.
   2929 
   2930 2011-06-08  Jason Merrill  <jason (a] redhat.com>
   2931 
   2932 	PR c++/49322
   2933 	* pt.c (deduction_tsubst_fntype): Don't free the tinst entry
   2934 	if a pending_template entry is pointing at it.
   2935 
   2936 2011-06-07  Jason Merrill  <jason (a] redhat.com>
   2937 
   2938 	PR c++/48969
   2939 	PR c++/44175
   2940 	* error.c (subst_to_string): New.
   2941 	(cp_printer): Use it for 'S'.
   2942 	(print_instantiation_partial_context_line): Handle subst context.
   2943 	* pt.c (push_tinst_level): Handle subst context.
   2944 	(deduction_tsubst_fntype): Don't track specific substitutions.
   2945 	Use push_tinst_level.
   2946 
   2947 	* pt.c (deduction_tsubst_fntype): Use push_deduction_access_scope.
   2948 	(fn_type_unification): Don't call push_deduction_access_scope here.
   2949 
   2950 2011-06-06  Jason Merrill  <jason (a] redhat.com>
   2951 
   2952 	PR c++/48780
   2953 	* typeck.c (perform_integral_promotions): Don't promote scoped enums.
   2954 	* call.c (convert_arg_to_ellipsis): Promote them here in old ABI.
   2955 
   2956 2011-06-06  Nicola Pero  <nicola.pero (a] meta-innovation.com>,
   2957 
   2958 	PR obj-c++/48275
   2959 	* parser.c (cp_parser_objc_at_property_declaration): Allow setter
   2960 	and getter names to use all the allowed method names.
   2961 
   2962 2011-06-06  Jason Merrill  <jason (a] redhat.com>
   2963 
   2964 	PR c++/49298
   2965 	* semantics.c (potential_constant_expression_1): Handle FIELD_DECL.
   2966 
   2967 	PR objc++/49221
   2968 	* decl.c (cp_finish_decl): Check DECL_FUNCTION_SCOPE_P rather than
   2969 	at_function_scope_p.
   2970 
   2971 	PR c++/49134
   2972 	* tree.c (build_target_expr): Deal with ARM ABI tweaks.
   2973 
   2974 2011-06-04  Jonathan Wakely  <jwakely.gcc (a] gmail.com>
   2975 
   2976 	* init.c (build_delete): Warn when deleting type with non-virtual
   2977 	destructor.
   2978 
   2979 2011-06-03  Jakub Jelinek  <jakub (a] redhat.com>
   2980 
   2981 	PR c++/49276
   2982 	* mangle.c (write_nested_name): Use CP_DECL_CONTEXT instead of
   2983 	DECL_CONTEXT.
   2984 
   2985 2011-06-01  Jason Merrill  <jason (a] redhat.com>
   2986 
   2987 	* pt.c (build_non_dependent_expr): Remove special handling of
   2988 	REFERENCE_REF_P.
   2989 
   2990 	PR c++/44175
   2991 	* pt.c (template_args_equal): Handle one arg being NULL_TREE.
   2992 	(deduction_tsubst_fntype): Handle excessive non-infinite recursion.
   2993 
   2994 	PR c++/49253
   2995 	* typeck2.c (build_x_arrow): Don't use build_min_nt.
   2996 
   2997 2010-05-31  Fabien Chne  <fabien (a] gcc.gnu.org>
   2998 
   2999 	PR c++/48010
   3000 	* name-lookup.c (supplement_binding_1): If the old binding was a
   3001 	type name, also check that the DECL actually refers to the same
   3002 	type or is not a type.
   3003 
   3004 2011-05-31  Jason Merrill  <jason (a] redhat.com>
   3005 
   3006 	PR c++/44870
   3007 	* tree.c (lvalue_kind): Recurse on NON_DEPENDENT_EXPR.  Handle
   3008 	ARROW_EXPR, TYPEID_EXPR, and arbitrary class-valued expressions.
   3009 	(build_min_non_dep): Preserve reference refs.
   3010 	(build_min_non_dep_call_vec): Likewise
   3011 
   3012 2011-05-30  Jakub Jelinek  <jakub (a] redhat.com>
   3013 
   3014 	PR c++/49223
   3015 	* semantics.c (finish_omp_clauses): Call require_complete_type
   3016 	even for copyin/copyprivate clauses.  Only call
   3017 	cxx_omp_create_clause_info if inner_type is COMPLETE_TYPE_P.
   3018 
   3019 2011-05-28  Jason Merrill  <jason (a] redhat.com>
   3020 
   3021 	PR c++/46124
   3022 	* parser.c (cp_parser_lambda_expression): Improve error recovery.
   3023 	(cp_parser_lambda_declarator_opt): Likewise.  Return bool.
   3024 
   3025 2011-05-27  Jason Merrill  <jason (a] redhat.com>
   3026 
   3027 	PR c++/47277
   3028 	* parser.c (cp_parser_pseudo_destructor_name): Commit to parse
   3029 	after we see the ~.
   3030 
   3031 	* mangle.c (mangle_decl_string): Make sure we don't try to mangle
   3032 	templates.
   3033 
   3034 	PR c++/47049
   3035 	* semantics.c (maybe_add_lambda_conv_op): Fix COMDAT sharing.
   3036 	* decl.c (start_preparsed_function): Don't call comdat_linkage for
   3037 	a template.
   3038 
   3039 	PR c++/47132
   3040 	* mangle.c (write_expression): Handle MODOP_EXPR.
   3041 
   3042 	PR c++/47277
   3043 	* parser.c (cp_parser_unqualified_id): Don't check
   3044 	constructor_name_p for enums.
   3045 
   3046 	PR c++/47687
   3047 	* pt.c (dependent_type_p_r): Avoid infinite recursion.
   3048 
   3049 	PR c++/48284
   3050 	* error.c (dump_expr) [COMPONENT_REF]: Use pp_cxx_dot
   3051 	with INDIRECT_REF of REFERENCE_TYPE.
   3052 
   3053 	PR c++/49181
   3054 	* pt.c (get_mostly_instantiated_function_type): Use push_access_scope.
   3055 
   3056 2011-05-27  Nathan Froyd  <froydnj (a] codesourcery.com>
   3057 
   3058 	* cp-tree.h (building_stmt_tree): Delete.
   3059 	* decl.c (save_function_data): Tweak initializer for x_cur_stmt_list.
   3060 	(build_aggr_init_full_exprs): Call building_stmt_list_p
   3061 	instead of building_stmt_tree.
   3062 	(initialize_local_var): Likewise.
   3063 	(finish_function): Likewise.
   3064 	* decl2.c (finish_anon_union): Likewise.
   3065 	* init.c (begin_init_stmts): Likewise.
   3066 	(finish_init_stmts): Likewise.
   3067 	(expand_aggr_init_1): Likewise.
   3068 	* name-lookup.c (do_local_using_decl): Likewise.
   3069 	(do_namespace_alias): Likewise.
   3070 	(do_using_directive): Likewise.
   3071 	(cp_emit_debug_info_for_using): Likewise.
   3072 	* semantics.c (add_stmt): Assert that stmt_list_stack is non-empty.
   3073 
   3074 2011-05-27  Paolo Carlini  <paolo.carlini (a] oracle.com>
   3075 
   3076 	PR c++/42056
   3077 	* typeck2.c (build_functional_cast): Complain early for invalid uses
   3078 	of 'auto' and set type to error_mark_node.
   3079 
   3080 2011-05-26  Jason Merrill  <jason (a] redhat.com>
   3081 
   3082 	PR c++/47721
   3083 	* parser.c (cp_parser_member_declaration): Allow friend T.
   3084 	* friend.c (make_friend_class): Ignore non-classes.
   3085 	* pt.c (instantiate_class_template_1): Handle TEMPLATE_TYPE_PARM.
   3086 
   3087 	DR 1004
   3088 	* pt.c (convert_template_argument): Don't complain about using
   3089 	injected-class-name as template template argument.
   3090 
   3091 	PR c++/47956
   3092 	* decl.c (check_static_variable_definition): Now static.
   3093 	(cp_finish_decl): Call it here.
   3094 	(grokdeclarator): Not here.
   3095 	* pt.c (instantiate_class_template_1): Or here.
   3096 	* cp-tree.h: Don't declare it.
   3097 
   3098 2011-05-26  Janis Johnson  <janis187 (a] us.ibm.com>
   3099 	    Nathan Froyd  <froydnj (a] codesourcery.com>
   3100 
   3101 	PR c++/2288
   3102 	PR c++/18770
   3103 	* name-lookup.h (enum scope_kind): Add sk_cond.
   3104 	* name-lookup.c (pushdecl_maybe_friend): Get scope of shadowed local.
   3105 	Detect and report error for redeclaration from for-init or if
   3106 	or switch condition.
   3107 	(begin_scope): Handle sk_cond.
   3108 	* semantics.c (begin_if_stmt): Use sk_cond.
   3109 	(begin switch_stmt): Ditto.
   3110 
   3111 2011-05-26  Jason Merrill  <jason (a] redhat.com>
   3112 
   3113 	PR c++/48211
   3114 	* name-lookup.h (cp_class_binding): Make base a pointer.
   3115 	* name-lookup.c (new_class_binding): Adjust.
   3116 	(poplevel_class): Adjust.
   3117 
   3118 	PR c++/48424
   3119 	* decl.c (grokparms): Function parameter packs don't need to
   3120 	go at the end.
   3121 	* pt.c (type_unification_real): But they aren't deduced otherwise.
   3122 
   3123 2011-05-25  Jason Merrill  <jason (a] redhat.com>
   3124 
   3125 	PR c++/48536
   3126 	* decl.c (build_enumerator): If incremented enumerator won't fit in
   3127 	previous integral type, find one it will fit in.
   3128 
   3129 	PR c++/48599
   3130 	* decl.c (create_array_type_for_decl): Complain about array of auto.
   3131 
   3132 	PR c++/44994
   3133 	PR c++/49156
   3134 	* error.c (dump_template_bindings): Set processing_template_decl
   3135 	for a partial instantiation.
   3136 
   3137 	PR c++/45401
   3138 	* decl.c (grokdeclarator): Don't change type when adding rvalue ref
   3139 	to another reference type.
   3140 
   3141 	PR c++/44311
   3142 	* decl.c (case_conversion): New.
   3143 	(finish_case_label): Use it.
   3144 
   3145 	* ptree.c (cxx_print_xnode): Handle ARGUMENT_PACK_SELECT.
   3146 
   3147 	PR c++/45698
   3148 	* pt.c (dependent_template_arg_p): See through ARGUMENT_PACK_SELECT.
   3149 
   3150 	PR c++/46005
   3151 	* decl.c (grokdeclarator): Complain about auto typedef.
   3152 
   3153 	PR c++/46245
   3154 	* decl.c (grokdeclarator): Complain later for auto parameter.
   3155 	* pt.c (splice_late_return_type): Handle use in a template
   3156 	type-parameter.
   3157 
   3158 	PR c++/46696
   3159 	* typeck.c (cp_build_modify_expr): Check DECL_DEFAULTED_FN.
   3160 
   3161 	PR c++/47184
   3162 	* parser.c (cp_parser_parameter_declaration): Recognize
   3163 	list-initialization.
   3164 	(cp_parser_direct_declarator): Check for the closing
   3165 	paren before parsing definitely.
   3166 
   3167 	PR c++/48935
   3168 	* parser.c (cp_parser_constructor_declarator_p): Don't check
   3169 	constructor_name_p for enums.
   3170 	(cp_parser_diagnose_invalid_type_name): Correct error message.
   3171 
   3172 	PR c++/45418
   3173 	* init.c (perform_member_init): Handle list-initialization
   3174 	of array of non-trivial class type.
   3175 
   3176 	PR c++/45080
   3177 	* pt.c (instantiate_class_template_1): Call maybe_add_lambda_conv_op.
   3178 	* semantics.c (lambda_function): Check COMPLETE_OR_OPEN_TYPE_P.
   3179 
   3180 	PR c++/48292
   3181 	* pt.c (tsubst_decl) [PARM_DECL]: Handle partial instantiation of
   3182 	function parameter pack.
   3183 	(tsubst_pack_expansion): Likewise.
   3184 
   3185 	* cp-objcp-common.c (cp_common_init_ts): TYPE_ARGUMENT_PACK has
   3186 	TS_COMMON.
   3187 
   3188 2011-05-25  Jakub Jelinek  <jakub (a] redhat.com>
   3189 
   3190 	* cp-objcp-common.c (cp_common_init_ts): Mark CTOR_INITIALIZER
   3191 	as TS_TYPED.
   3192 
   3193 	PR c++/49136
   3194 	* semantics.c (cxx_eval_bit_field_ref): Handle the
   3195 	case when BIT_FIELD_REF doesn't cover only a single field.
   3196 
   3197 2011-05-24  Jason Merrill  <jason (a] redhat.com>
   3198 
   3199 	PR c++/49042
   3200 	* pt.c (get_mostly_instantiated_function_type): Use
   3201 	push_deferring_access_checks rather than set flag_access_control.
   3202 
   3203 2011-05-24  Nicola Pero  <nicola.pero (a] meta-innovation.com>,
   3204 
   3205 	* parser.c (cp_parser_objc_class_ivars): Deal gracefully with a
   3206 	syntax error in declaring an ObjC instance variable.
   3207 
   3208 2011-05-24  Jason Merrill  <jason (a] redhat.com>
   3209 
   3210 	PR c++/48884
   3211 	* class.c (pushclass): Accept NULL argument.
   3212 	(popclass): Deal with popping null class.
   3213 	* pt.c (push_access_scope, pop_access_scope): Use them rather than
   3214 	push_to_top_level/pop_from_top_level.
   3215 	(push_deduction_access_scope, pop_defarg_context): New.
   3216 	(fn_type_unification): Use them.
   3217 	* name-lookup.c (lookup_name_real_1): Check current_class_type.
   3218 
   3219 2011-05-24  Paolo Carlini  <paolo.carlini (a] oracle.com>
   3220 
   3221 	* decl.c (grokdeclarator): Use current_class_name.
   3222 
   3223 2011-05-24  Joseph Myers  <joseph (a] codesourcery.com>
   3224 
   3225 	* Make-lang.in (GXX_OBJS): Remove prefix.o.
   3226 	(g++$(exeext)): Use libcommon-target.a.
   3227 	(CXX_C_OBJS): Remove prefix.o.
   3228 
   3229 2011-05-23  Jason Merrill  <jason (a] redhat.com>
   3230 
   3231 	* pt.c (tsubst_copy_and_build): Use current_class_name.
   3232 
   3233 	PR c++/49102
   3234 	* call.c (convert_arg_to_ellipsis): Call force_rvalue.
   3235 
   3236 	PR c++/49105
   3237 	* typeck.c (cp_build_c_cast): Don't strip cv-quals when
   3238 	converting to reference.
   3239 	(build_static_cast_1): Update for glvalues.
   3240 
   3241 	PR c++/49105
   3242 	* typeck.c (build_const_cast_1): Handle rvalue references.
   3243 
   3244 	PR c++/47263
   3245 	* decl.c (use_eh_spec_block): Do use an EH spec block for a
   3246 	lambda op().
   3247 
   3248 	PR c++/49058
   3249 	* call.c (splice_viable): Be strict in templates.
   3250 
   3251 	PR c++/47336
   3252 	* error.c (dump_template_bindings): Suppress access control.
   3253 
   3254 	PR c++/47544
   3255 	* pt.c (instantiate_decl): Handle =default.
   3256 
   3257 	PR c++/48617
   3258 	* pt.c (invalid_nontype_parm_type_p): Allow DECLTYPE_TYPE.
   3259 
   3260 2011-05-23  Nathan Froyd  <froydnj (a] codesourcery.com>
   3261 
   3262 	* call.c (build_over_call): Tweak call to check_function_arguments.
   3263 	* typeck.c (cp_build_function_call_vec): Likewise.
   3264 
   3265 2011-05-23  Jonathan Wakely  <jwakely.gcc (a] gmail.com>
   3266 
   3267 	PR c++/18016
   3268 	* init.c (perform_member_init): Check for self-initialization.
   3269 
   3270 2011-05-22  Jason Merrill  <jason (a] redhat.com>
   3271 
   3272 	PR c++/48647
   3273 	* typeck.c (composite_pointer_type_r): Return error_mark_node
   3274 	on error in SFINAE context.
   3275 
   3276 2011-05-20  Jason Merrill  <jason (a] redhat.com>
   3277 
   3278 	PR c++/48945
   3279 	* decl.c (grokdeclarator): Don't add set const function-cv-qual
   3280 	for constexpr fns to memfn_quals, just add it to the type.
   3281 	(revert_static_member_fn): Don't complain about quals.
   3282 	(check_static_quals): New.
   3283 	(grokfndecl): Call it.
   3284 	(start_preparsed_function): Don't call revert_static_member_fn.
   3285 
   3286 	PR c++/48945
   3287 	* decl.c (revert_static_member_fn): Ignore const on constexpr fn.
   3288 
   3289 	PR c++/48780
   3290 	* cvt.c (type_promotes_to): Don't promote scoped enums.
   3291 
   3292 	PR c++/49066
   3293 	* decl.c (duplicate_decls): Preserve DECL_DELETED_FN.
   3294 
   3295 	PR c++/48873
   3296 	* tree.c (stabilize_expr): Fix typo.
   3297 
   3298 	DR 1073
   3299 	PR c++/49082
   3300 	* typeck.c (comp_except_specs): noexcept(false) is not compatible
   3301 	with throw(type-list).
   3302 	* typeck2.c (merge_exception_specifiers): noexcept(false)
   3303 	beats any more limited specification.
   3304 
   3305 	PR c++/24163
   3306 	PR c++/29131
   3307 	* pt.c (tsubst_copy_and_build) [CALL_EXPR]: Avoid repeating
   3308 	unqualified lookup.
   3309 	* semantics.c (perform_koenig_lookup): Add complain parm.
   3310 	* cp-tree.h: Adjust.
   3311 	* parser.c (cp_parser_postfix_expression): Adjust.
   3312 	(cp_parser_perform_range_for_lookup): Adjust.
   3313 
   3314 2011-05-20  Jason Merrill  <jason (a] redhat.com>
   3315 
   3316 	* semantics.c (finish_call_expr): SET_EXPR_LOCATION.
   3317 
   3318 2011-05-20  Joseph Myers  <joseph (a] codesourcery.com>
   3319 
   3320 	* Make-lang.in (GXX_OBJS): Remove intl.o and version.o.
   3321 
   3322 2011-05-19  Jakub Jelinek  <jakub (a] redhat.com>
   3323 
   3324 	PR c++/49043
   3325 	* decl.c (check_omp_return): Stop searching on sk_function_parms.
   3326 
   3327 	PR c++/48869
   3328 	* method.c (get_dtor, get_copy_ctor): Add COMPLAIN argument,
   3329 	pass it down to locate_fn_flags.
   3330 	* cp-tree.h (get_dtor, get_copy_ctor): Adjust prototypes.
   3331 	* semantics.c (cxx_omp_create_clause_info): Adjust callers.
   3332 	* cp-gimplify.c: Include splay-tree.h.
   3333 	(splay_tree_compare_decl_uid, omp_var_to_track,
   3334 	omp_cxx_notice_variable): New functions.
   3335 	(struct cp_genericize_omp_taskreg): New type.
   3336 	(struct cp_genericize_data): Add omp_ctx field.
   3337 	(cp_genericize_r): Attempt to determine implicitly determined
   3338 	firstprivate class type variables.
   3339 	(cp_genericize): Clear omp_ctx.
   3340 	* Make-lang.in (cp/cp-gimplify.o): Depend on $(SPLAY_TREE_H).
   3341 
   3342 2011-05-18  Jason Merrill  <jason (a] redhat.com>
   3343 
   3344 	PR c++/48948
   3345 	PR c++/49015
   3346 	* class.c (finalize_literal_type_property): Do check
   3347 	for constexpr member functions of non-literal class.
   3348 	(finish_struct): Don't call check_deferred_constexpr_decls.
   3349 	* cp-tree.h: Don't declare it.
   3350 	(DECL_DEFERRED_CONSTEXPR_CHECK): Remove.
   3351 	* decl.c (grok_special_member_properties): Don't check it
   3352 	(grokfnedcl): Don't call validate_constexpr_fundecl.
   3353 	(start_preparsed_function): Do call it.
   3354 	* pt.c (tsubst_decl): Don't call it.
   3355 	(instantiate_class_template_1): Don't call
   3356 	check_deferred_constexpr_decls.
   3357 	* semantics.c (literal_type_p): Check for any incompleteness.
   3358 	(ensure_literal_type_for_constexpr_object): Likewise.
   3359 	(is_valid_constexpr_fn): Revert deferral changes.
   3360 	(validate_constexpr_fundecl): Likewise.
   3361 	(register_constexpr_fundef): Likewise.
   3362 	(check_deferred_constexpr_decls): Remove.
   3363 
   3364 2011-05-16  Jason Merrill  <jason (a] redhat.com>
   3365 
   3366 	PR c++/48969
   3367 	* pt.c (deduction_tsubst_fntype): Use a VEC initially.
   3368 
   3369 2011-05-15  Paolo Carlini  <paolo.carlini (a] oracle.com>
   3370 
   3371 	* cxx-pretty-print.c: Update comment.
   3372 	* semantics.c (trait_expr_value, finish_trait_expr):
   3373 	Reorder the cases.
   3374 	* parser.c (cp_parser_primary_expression): Likewise.
   3375 
   3376 2011-05-15  Jonathan Wakely  <jwakely.gcc (a] gmail.com>
   3377 
   3378 	PR c++/48994
   3379 	* parser.c (cp_parser_perform_range_for_lookup): Call complete_type.
   3380 
   3381 2011-05-13  Ville Voutilainen  <ville.voutilainen (a] gmail.com>
   3382 
   3383 	Implement final on class.
   3384 	* class.c (check_bases): Diagnose derivation from a final class.
   3385 	* cp-tree.h (lang_type_class): Add is_final and adjust dummy.
   3386 	(CLASSTYPE_FINAL): New.
   3387 	* parser.c (cp_parser_class_head): Parse class-virt-specifier, set
   3388 	CLASSTYPE_FINAL.
   3389 	* pt.c (instantiate_class_template_1): Copy CLASSTYPE_FINAL.
   3390 
   3391 2011-05-13  Jason Merrill  <jason (a] redhat.com>
   3392 
   3393 	PR c++/48969
   3394 	* pt.c (deduction_tsubst_fntype): New.
   3395 	(fn_type_unification): Use it.
   3396 	(init_template_processing): Initialize hash table.
   3397 	(print_template_statistics): Print hash table stats.
   3398 
   3399 	* call.c (build_op_call): Use timevar_cond_start/stop.
   3400 	(build_user_type_conversion): Likewise.
   3401 
   3402 2011-05-12  Jason Merrill  <jason (a] redhat.com>
   3403 
   3404 	* cp-tree.h (DECL_DEFERRED_CONSTEXPR_CHECK): New.
   3405 	* semantics.c (validate_constexpr_fundecl): Set it.
   3406 	(check_deferred_constexpr_decls): Clear it.
   3407 	(register_constexpr_fundef): Make sure it isn't set.
   3408 	* decl.c (grok_special_member_properties): Check it.
   3409 
   3410 2011-05-11  Jason Merrill  <jason (a] redhat.com>
   3411 
   3412 	PR c++/48948
   3413 	* semantics.c (validate_constexpr_fundecl): Defer checking if
   3414 	an argument type is being defined.
   3415 	(is_valid_constexpr_fn): Add defer_ok parm.
   3416 	(cxx_eval_call_expression): Adjust.
   3417 	(check_deferred_constexpr_decls): New.
   3418 	(literal_type_p): Make sure type isn't being defined.
   3419 	(ensure_literal_type_for_constexpr_object): Handle type being defined.
   3420 	* cp-tree.h: Declare check_deferred_constexpr_decls.
   3421 	* decl.c (grokfndecl): Call validate_constexpr_fundecl here.
   3422 	(start_preparsed_function, cp_finish_decl): Not here.
   3423 	* class.c (finalize_literal_type_property): Don't call
   3424 	validate_constexpr_fundecl.
   3425 	(finish_struct): Call check_deferred_constexpr_decls.
   3426 	* pt.c (tsubst_decl): Call validate_constexpr_fundecl.
   3427 	(instantiate_class_template): Call check_deferred_constexpr_decls.
   3428 
   3429 	* semantics.c (validate_constexpr_fundecl): Check DECL_TEMPLATE_INFO
   3430 	rather than DECL_TEMPLATE_INSTANTIATION.
   3431 	(cxx_eval_call_expression): Likewise.
   3432 
   3433 	* semantics.c (register_constexpr_fundef): Add to hash table here.
   3434 	(validate_constexpr_fundecl): Not here.
   3435 
   3436 	* decl.c (grokdeclarator): Only set DECL_DECLARED_CONSTEXPR_P once.
   3437 
   3438 	* pt.c (build_non_dependent_expr): Don't check null_ptr_cst_p,
   3439 	do call maybe_constant_value in C++0x mode.
   3440 	* semantics.c (cxx_eval_constant_expression): Handle TEMPLATE_DECL.
   3441 
   3442 	PR c++/48745
   3443 	* pt.c (value_dependent_expr_p): Handle CONSTRUCTOR.
   3444 
   3445 2011-05-11  Nathan Froyd  <froydnj (a] codesourcery.com>
   3446 
   3447 	* cp-tree.h (TYPENAME_TYPE_FULLNAME, TYPEOF_TYPE_EXPR): Use
   3448 	TYPE_VALUES_RAW.
   3449 	(UNDERLYING_TYPE_TYPE, DECLTYPE_TYPE_EXPR): Likewise.
   3450 	(DECLTYPE_TYPE_ID_EXPR_OR_MEMBER_ACCESS_P): Likewise.
   3451 	(TEMPLATE_TYPE_PARM_INDEX): Likewise.
   3452 
   3453 2011-05-10  Jason Merrill  <jason (a] redhat.com>
   3454 
   3455 	PR c++/48930
   3456 	* class.c (type_build_ctor_call): New.
   3457 	* cp-tree.h: Declare it.
   3458 	* decl.c (check_initializer): Use it instead of
   3459 	TYPE_NEEDS_CONSTRUCTING.
   3460 	* init.c (build_value_init, build_value_init_noctor): Likewise.
   3461 	(perform_member_init, expand_aggr_init_1, build_new_1): Likewise.
   3462 	(build_vec_init): Likewise.
   3463 	* typeck2.c (process_init_constructor_array): Likewise.
   3464 	(process_init_constructor_record): Likewise.
   3465 
   3466 	PR c++/48736
   3467 	* pt.c (tsubst_copy_and_build): Handle substitution of a pack
   3468 	expansion producing another expansion.
   3469 
   3470 2011-05-10  Ville Voutilainen  <ville.voutilainen (a] gmail.com>
   3471 
   3472 	Fixes for override/final.
   3473 	* class.c (check_for_override): Diagnose final on a nonvirtual
   3474 	member function, diagnose override for a virtual with no matching
   3475 	override. Don't fiddle around with DECL_VINDEX.
   3476 
   3477 2011-05-10  Nathan Froyd  <froydnj (a] codesourcery.com>
   3478 
   3479 	* cp-tree.def (EXPR_PACK_EXPANSION): Add an operand.
   3480 	* cp-objcp-common.c (cp_common_init_ts): Mark it as TS_TYPED.
   3481 	* cp-tree.h (PACK_EXPANSION_PARAMETER_PACKS): Use the new
   3482 	operand of EXPR_PACK_EXPANSION.
   3483 	(cp_tree_operand_length): Declare.
   3484 	* tree.c (cp_tree_operand_length): Define.
   3485 	(cp_tree_equal): Call it.
   3486 	* pt.c (value_dependent_expr_P): Likewise.
   3487 	* mangle.c (write_expression): Likewise.
   3488 
   3489 2011-05-09  Paolo Carlini  <paolo.carlini (a] oracle.com>
   3490 
   3491 	PR c++/48737
   3492 	PR c++/48744
   3493 	* decl.c (reshape_init): Take a complain parameter and do
   3494 	not call error if tf_error is not set.
   3495 	(check_initializer, reshape_init_r, reshape_init_array,
   3496 	reshape_init_array_1, reshape_init_vector, reshape_init_class):
   3497 	Adjust.
   3498 	* typeck2.c (digest_init_r): Take a complain parameter and
   3499 	pass it to convert_for_initialization.
   3500 	(digest_init, digest_init_flags, process_init_constructor_array,
   3501 	process_init_constructor_record, process_init_constructor_union,
   3502 	process_init_constructor, digest_init_r): Adjust.
   3503 	* init.c (expand_default_init, build_new_1): Likewise.
   3504 	* typeck.c (cp_build_modify_expr): Likewise.
   3505 	* decl2.c (grokfield): Likewise.
   3506 	* call.c (convert_like_real, convert_default_arg): Likewise.
   3507 	* semantics.c (finish_compound_literal): Pass complain to
   3508 	reshape_init and digest_init.
   3509 	* cp-tree.h: Adjust declarations.
   3510 
   3511 2011-05-07  Fabien Chne  <fabien (a] gcc.gnu.org>
   3512 
   3513 	PR c++/48859
   3514 	* init.c (diagnose_uninitialized_cst_or_ref_member_1): Stop the
   3515 	recursion if there is user defined constructor.
   3516 
   3517 2011-05-09  Jason Merrill  <jason (a] redhat.com>
   3518 
   3519 	PR c++/34772
   3520 	* decl.c (initialize_local_var): Use DECL_INITIAL for simple
   3521 	initialization.
   3522 
   3523 2011-05-08  Ville Voutilainen  <ville.voutilainen (a] gmail.com>
   3524 
   3525 	Implement final/override for member functions.
   3526 	* class.c (check_for_override): Check for DECL_OVERRIDE_P.
   3527 	* cp-tree.h (DECL_OVERRIDE_P, DECL_FINAL_P): New.
   3528 	(cp_virt_specifiers, enum virt_specifier): New.
   3529 	* decl.c (set_virt_specifiers): New.
   3530 	(grokdeclarator): Use them. Diagnose virt-specifiers on non-fields.
   3531 	* parser.c (make_call_declarator): add virt-specifiers parameter.
   3532 	(cp_parser_lambda_declarator_opt): Adjust.
   3533 	(cp_parser_direct_declarator): Likewise.
   3534 	(cp_parser_virt_specifier_seq_opt): New.
   3535 	* search.c (check_final_overrider): Diagnose attempts to override
   3536 	a final member function.
   3537 
   3538 2011-05-09  Dodji Seketeli  <dodji (a] redhat.com>
   3539 
   3540 	PR c++/48574
   3541 	* class.c (fixed_type_or_null): Use type_dependent_p_push to test
   3542 	if the instance has a dependent initializer.
   3543 
   3544 2011-05-08  Paolo Carlini  <paolo.carlini (a] oracle.com>
   3545 
   3546 	PR c++/48816
   3547 	* cxx-pretty-print.c (pp_cxx_template_declaration): Remove
   3548 	effectively unused variable.
   3549 
   3550 2011-05-07  Eric Botcazou  <ebotcazou (a] adacore.com>
   3551 
   3552 	* name-lookup.h (global_bindings_p): Adjust prototype.
   3553 	* name-lookup.c (global_bindings_p): Return bool.
   3554 
   3555 2011-05-06  Jason Merrill  <jason (a] redhat.com>
   3556 
   3557 	* decl.c (stabilize_save_expr_r): Set *walk_subtrees as
   3558 	appropriate.
   3559 
   3560 	PR c++/48909
   3561 	* semantics.c (cxx_eval_conditional_expression): Check
   3562 	integer_zerop instead.
   3563 	(potential_constant_expression_1): Likewise.
   3564 
   3565 	PR c++/48911
   3566 	* semantics.c (cxx_eval_array_reference): Handle implicit
   3567 	initializers.
   3568 
   3569 2011-05-06  Nathan Froyd  <froydnj (a] codesourcery.com>
   3570 
   3571 	* cp-tree.h (type_of_this_parm, class_of_this_parm): New functions.
   3572 	* call.c (standard_conversion): Call class_of_this_parm.
   3573 	* cxx-pretty-print.c (pp_cxx_implicit_parameter_type): Likewise.
   3574 	(pp_cxx_direct_abstract_declarator): Likewise.
   3575 	* decl2.c (change_return_type): Likewise.
   3576 	(cp_reconstruct_complex_type): Likewise.
   3577 	* error.c (dump_type_suffix, dump_function_decl): Likewise.
   3578 	* mangle.c (write_function_type): Likewise.
   3579 	* pt.c (unify): Likewise.
   3580 	* typeck.c (merge_types, type_memfn_quals): Likewise.
   3581 	* decl.c (build_this_parm): Call type_of_this_parm.
   3582 
   3583 2011-05-06  Dodji Seketeli  <dodji (a] redhat.com>
   3584 
   3585 	PR c++/48838
   3586 	* cp-tree.h (non_static_member_function_p): Declare new function.
   3587 	* tree.c (non_static_member_function_p): Define it.
   3588 	* semantics.c (finish_call_expr): Use it.
   3589 
   3590 2011-05-05  Nathan Froyd  <froydnj (a] codesourcery.com>
   3591 
   3592 	* decl.c (finish_case_label): Omit the loc argument to
   3593 	build_case_label.
   3594 
   3595 2011-05-05  Jason Merrill  <jason (a] redhat.com>
   3596 
   3597 	* cp-tree.h (REFERENCE_REF_P): Just check the type.
   3598 	* cvt.c (convert_from_reference): Adjust.
   3599 	* pt.c (build_non_dependent_expr): Adjust.
   3600 	* semantics.c (finish_offsetof): Adjust.
   3601 	* tree.c (lvalue_kind): Use it.
   3602 
   3603 	PR c++/48873
   3604 	* tree.c (stabilize_expr): Don't make gratuitous copies of classes.
   3605 
   3606 2011-05-05  Eric Botcazou  <ebotcazou (a] adacore.com>
   3607 
   3608 	* decl.c (start_preparsed_function): Do not set
   3609 	dont_save_pending_sizes_p.
   3610 
   3611 2011-05-05  Joseph Myers  <joseph (a] codesourcery.com>
   3612 
   3613 	* parser.c (cp_parser_objc_method_definition_list): Update call to
   3614 	objc_start_method_definition.
   3615 
   3616 2011-05-04  Jason Merrill  <jason (a] redhat.com>
   3617 
   3618 	PR c++/48749
   3619 	* class.c (resolves_to_fixed_type_p): Don't look closely
   3620 	in templates.
   3621 
   3622 2011-05-03  Paolo Carlini  <paolo.carlini (a] oracle.com>
   3623 
   3624 	PR c++/28501
   3625 	* call.c (add_builtin_candidate): Handle REALPART_EXPR and
   3626 	IMAGPART_EXPR.
   3627 
   3628 2011-05-02  Lawrence Crowl  <crowl (a] google.com>
   3629 
   3630 	* decl.c: (push_local_name): Change TV_NAME_LOOKUP to start/stop.
   3631 	(poplevel): Refactor POP_TIMEVAR_AND_RETURN to plain code.
   3632 	Change TV_NAME_LOOKUP to start/stop.
   3633 	(define_label): Refactor timevar calls out to a wrapper function.
   3634 	Change TV_NAME_LOOKUP to start/stop.
   3635 	(xref_tag): Likewise.
   3636 	(lookup_label): Refactor timevar calls out to a wrapper function.
   3637 	Change TV_NAME_LOOKUP to start_cond/stop_cond.
   3638 
   3639 	* pt.c: (instantiate_class_template): Add a wrapper to push/pop new
   3640 	TV_TEMPLATE_INST.
   3641 	(instantiate_template): Add a wrapper to push/pop new TV_TEMPLATE_INST.
   3642 	(lookup_template_class): Refactor timevar calls out to a wrapper
   3643 	function.  Change use of TV_NAME_LOOKUP to TV_TEMPLATE_INST.
   3644 	(instantiate_decl): Change TV_PARSE to TV_TEMPLATE_INST.
   3645 
   3646 	* name-lookup.c: (store_bindings): Change TV_NAME_LOOKUP to start/stop.
   3647 	(poplevel_class): Change TV_NAME_LOOKUP to start_cond/stop_cond.
   3648 	(push_namespace): Likewise.
   3649 	(pop_nested_namespace): Likewise.
   3650 	(pushdecl_namespace_level): Likewise.
   3651 	(store_class_bindings): Likewise.
   3652 	(push_to_top_level): Likewise.
   3653 	(identifier_type_value): Refactor timevar calls out to a wrapper
   3654 	function.  Change TV_NAME_LOOKUP to start/stop.
   3655 	(find_binding): Likewise.
   3656 	(push_using_decl): Likewise.
   3657 	(lookup_arg_dependent): Likewise.
   3658 	(push_using_directive): Likewise.
   3659 	(qualified_lookup_using_namespace): Refactor POP_TIMEVAR_AND_RETURN
   3660 	to plain code.  Change TV_NAME_LOOKUP to start/stop.
   3661 	(lookup_type_current_level): Likewise.  Refactor inner return to
   3662 	break.
   3663 	(pushdecl_class_level): Refactor POP_TIMEVAR_AND_RETURN to plain
   3664 	code.  Change TV_NAME_LOOKUP to start_cond/stop_cond.
   3665 	(pushdecl_top_level_1): Likewise.
   3666 	(lookup_using_namespace): Likewise.
   3667 	(pushdecl_with_scope): Refactor timevar calls out to a wrapper
   3668 	function.  Change TV_NAME_LOOKUP to start_cond/stop_cond.
   3669 	(push_overloaded_decl): Likewise.
   3670 	(push_class_level_binding): Likewise.
   3671 	(namespace_binding): Likewise.
   3672 	(set_namespace_binding): Likewise.
   3673 	(supplement_binding): Likewise.
   3674 	(unqualified_namespace_lookup): Likewise.
   3675 	(lookup_name_real): Likewise.
   3676 	(lookup_type_scope): Likewise.
   3677 	(namespace_ancestor): Likewise.
   3678 	(lookup_name_innermost_nonclass_level): Likewise.
   3679 	(pushtag): Likewise.
   3680 	(pop_from_top_level): Likewise.
   3681 	(pushdecl_maybe_friend): Refactor timevar calls out to a wrapper
   3682 	function.  Change TV_NAME_LOOKUP to start_cond/stop_cond.  Wrap long
   3683 	lines.
   3684 	(add_using_namespace): Refactor timevar calls out to a wrapper
   3685 	function.  Change TV_NAME_LOOKUP to start_cond/stop_cond.  Bypass
   3686 	wrapper on call to self.
   3687 
   3688 	* decl2.c: (cp_write_global_declarations):  Add start/stop of
   3689 	new TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_CHECK_DBGINFO.
   3690 	Remove push/pop calls to TV_VARCONST.
   3691 
   3692 	* parser.c: Add include of "timevar.h".
   3693 	(cp_parser_explicit_instantiation): Add push/pop calls to
   3694 	TV_TEMPLATE_INST.
   3695 	(cp_parser_enum_specifier): Add push/pop calls to new TV_PARSE_ENUM.
   3696 	(cp_parser_class_specifier): Add wrapper to add push/pop calls to
   3697 	TV_PARSE_STRUCT.
   3698 	(cp_parser_function_definition_from_specifiers_and_declarator): Add
   3699 	push/pop calls to new TV_PARSE_FUNC or TV_PARSE_INLINE.
   3700 	(cp_parser_late_parsing_for_member):  Add push/pop calls to
   3701 	new TV_PARSE_INMETH.
   3702 
   3703 	* call.c: Add include of "timevar.h".
   3704 	(convert_class_to_reference): Wrap and add push/pop calls to 
   3705 	TV_OVERLOAD.
   3706 	(build_op_call): Likewise.
   3707 	(build_conditional_expr): Likewise.
   3708 	(build_new_op): Likewise.
   3709 	(build_new_method_call): Likewise.
   3710 	(build_user_type_conversion): Reorganize to single return and add
   3711 	push/pop calls to TV_OVERLOAD.
   3712 	(perform_overload_resolution): Likewise.
   3713 
   3714 	* Make-lang.in: Add dependence of call.o and parser.o on $(TIMEVAR_H).
   3715 
   3716 2011-05-02  Jason Merrill  <jason (a] redhat.com>
   3717 
   3718 	* tree.c (build_vec_init_expr): Take complain parm.
   3719 	(build_vec_init_elt): Likewise.  Free arg vector.
   3720 	(diagnose_non_constexpr_vec_init, build_array_copy): Adjust.
   3721 	* cp-tree.h (VEC_INIT_EXPR_SLOT): Use VEC_INIT_EXPR_CHECK.
   3722 	(VEC_INIT_EXPR_INIT): Likewise.
   3723 	Adjust build_vec_init_expr declaration.
   3724 	* init.c (perform_member_init): Adjust.
   3725 
   3726 	Revert:
   3727 	PR c++/40975
   3728 	* cp-tree.def (VEC_INIT_EXPR): Add third operand.
   3729 	* cp-tree.h (VEC_INIT_EXPR_NELTS): New.
   3730 	* cp-gimplify.c (cp_gimplify_expr) [VEC_INIT_EXPR]: Handle it.
   3731 	* tree.c (build_vec_init_expr): Handle getting pointer/nelts.
   3732 	(build_vec_init_elt): Don't expect an array type.
   3733 	(build_array_copy): Adjust.
   3734 	* init.c (perform_member_init): Adjust.
   3735 	(build_new_1): Use build_vec_init_expr.
   3736 
   3737 	PR c++/48834
   3738 	* tree.c (build_vec_init_expr): Set TREE_SIDE_EFFECTS.
   3739 	Protect an explicit target.
   3740 
   3741 	PR c++/48446
   3742 	* decl.c (stabilize_save_expr_r, stabilize_vla_size): New.
   3743 	(compute_array_index_type): Revert earlier 48446 changes.
   3744 	(grokdeclarator): Use stabilize_vla_size.
   3745 
   3746 2011-05-02  Dmitry Gorbachev  <d.g.gorbachev (a] gmail.com>
   3747 	    Eric Botcazou <ebotcazou (a] adacore.com>
   3748 
   3749 	* parser.c (cp_parser_init_declarator): Set pushed_scope to NULL_TREE
   3750 	instead of inappropriate zero values.
   3751 
   3752 2011-05-02  Paolo Carlini  <paolo.carlini (a] oracle.com>
   3753 
   3754 	PR c++/47969
   3755 	* decl.c (compute_array_index_type): Check build_expr_type_conversion
   3756 	return value for NULL_TREE.
   3757 
   3758 2011-04-29  Paolo Carlini  <paolo.carlini (a] oracle.com>
   3759 
   3760 	PR c++/48606
   3761 	* init.c (perform_member_init): Check build_value_init return
   3762 	value for error_mark_node.
   3763 
   3764 2011-04-29  Diego Novillo  <dnovillo (a] google.com>
   3765 	    Le-Chun Wu  <lcwu (a] google.com>
   3766 
   3767 	* call.c (conversion_null_warnings): Also handle assignments
   3768 	when warning about NULL conversions.
   3769 
   3770 2011-04-29  Le-Chun Wu  <lcwu (a] google.com>
   3771 
   3772 	* cp-tree.h (LOOKUP_EXPLICIT_TMPL_ARGS): Define.
   3773 	* call.c (build_new_function_call): Set it for TEMPLATE_ID_EXPRs.
   3774 	(build_over_call): Use it to determine whether to emit a NULL
   3775 	warning for template function instantiations.
   3776 	(build_new_method_call): Set LOOKUP_EXPLICIT_TMPL_ARGS if
   3777 	EXPLICIT_TARGS is set.
   3778 
   3779 2011-04-29  Nicola Pero  <nicola.pero (a] meta-innovation.com>,
   3780 	    Mike Stump <mikestump (a] comcast.net>
   3781 
   3782 	* Make-lang.in ($(srcdir)/cp/cfns.h): Enable the dependency only
   3783 	in maintainer mode.  Use the --output-file option of gperf instead
   3784 	of > to prevent creating an empty cp/cfns.h when gperf is not
   3785 	available.
   3786 
   3787 2011-04-28  Paolo Carlini  <paolo.carlini (a] oracle.com>
   3788 
   3789 	PR c++/48798
   3790 	* semantics.c (finish_base_specifier): cv-qualified base class
   3791 	is fine, per DR 484.
   3792 
   3793 2011-04-28  Dodji Seketeli  <dodji (a] redhat.com>
   3794 
   3795 	PR c++/48656
   3796 	* semantics.c (finish_call_expr): Don't forget BASELINK nodes when
   3797 	considering call expressions involving a member function.
   3798 
   3799 2011-04-28  Paolo Carlini  <paolo.carlini (a] oracle.com>
   3800 
   3801 	PR c++/48530
   3802 	* tree.c (build_cplus_new): Check build_target_expr return
   3803 	value for error_mark_node.
   3804 
   3805 2011-04-28  Paolo Carlini  <paolo.carlini (a] oracle.com>
   3806 
   3807 	PR c++/48771
   3808 	* semantics.c (literal_type_p): Reference types are literal types,
   3809 	per the FDIS.
   3810 	(valid_type_in_constexpr_fundecl_p): Remove.
   3811 	(is_valid_constexpr_fn): Adjust.
   3812 
   3813 2011-04-27  Jason Merrill  <jason (a] redhat.com>
   3814 
   3815 	PR libstdc++/48760
   3816 	Implement list-initialization of _Complex.
   3817 	* decl.c (reshape_init_r): Allow {real,imag} for _Complex.
   3818 	(check_initializer): Likewise.
   3819 	* call.c (build_complex_conv): New.
   3820 	(implicit_conversion): Call it.
   3821 	(convert_like_real): Handle it.
   3822 	* typeck2.c (check_narrowing): Handle it.
   3823 
   3824 	* init.c (build_vec_delete_1): Look for sfk_deleting_destructor to
   3825 	decide whether to delete.
   3826 	(build_vec_init): Pass sfk_complete_destructor.
   3827 
   3828 	PR c++/40975
   3829 	* cp-tree.def (VEC_INIT_EXPR): Add third operand.
   3830 	* cp-tree.h (VEC_INIT_EXPR_NELTS): New.
   3831 	* cp-gimplify.c (cp_gimplify_expr) [VEC_INIT_EXPR]: Handle it.
   3832 	* tree.c (build_vec_init_expr): Handle getting pointer/nelts.
   3833 	(build_vec_init_elt): Don't expect an array type.
   3834 	(build_array_copy): Adjust.
   3835 	* init.c (perform_member_init): Adjust.
   3836 	(build_new_1): Use build_vec_init_expr.
   3837 
   3838 	* class.c (resolve_address_of_overloaded_function): Don't
   3839 	change OVERLOAD to TREE_LIST.
   3840 	* pt.c (print_candidates_1): Remove nonsensical assert.
   3841 
   3842 	PR c++/48046
   3843 	* parser.c (cp_parser_diagnose_invalid_type_name): Commit
   3844 	to tentative parse sooner.
   3845 
   3846 2011-04-26  Jason Merrill  <jason (a] redhat.com>
   3847 
   3848 	PR c++/42687
   3849 	* parser.c (cp_parser_primary_expression): Set *idk to
   3850 	CP_ID_KIND_NONE for a parenthesized identifier.
   3851 
   3852 	* ptree.c (cxx_print_type) [TYPENAME_TYPE]: Dump fullname.
   3853 	(cxx_print_identifier): Correct indentation.
   3854 
   3855 	PR c++/48530
   3856 	* decl.c (cxx_maybe_build_cleanup): Add complain parm.
   3857 	* tree.c (force_target_expr): Add complain parm.
   3858 	(build_target_expr_with_type): Likewise.
   3859 	(get_target_expr_sfinae): Split out.
   3860 	(build_vec_init_expr, bot_manip): Adjust.
   3861 	* init.c (build_vec_delete, build_vec_delete_1): Add complain parm.
   3862 	(build_delete, build_dtor_call): Likewise.
   3863 	(perform_direct_initialization_if_possible): Adjust.
   3864 	(build_vec_init): Handle error return.
   3865 	* cvt.c (force_rvalue): Add complain parm.
   3866 	Call build_special_member_call directly.
   3867 	* decl2.c (delete_sanity): Add complain parm.
   3868 	(build_cleanup): Adjust.
   3869 	* pt.c (tsubst_copy_and_build, tsubst_expr): Adjust.
   3870 	* semantics.c (finish_stmt_expr_expr): Adjust.
   3871 	(finish_compound_literal): Adjust.
   3872 	* parser.c (cp_parser_delete_expression): Adjust.
   3873 	* typeck2.c (build_functional_cast): Adjust.
   3874 	* cp-tree.h: Adjust.
   3875 
   3876 2011-04-26  Martin Jambor  <mjambor (a] suse.cz>
   3877 
   3878 	* class.c (cp_fold_obj_type_ref): Remove.
   3879 	* cp-tree.h (cp_fold_obj_type_ref): Remove declaration.
   3880 
   3881 2011-04-25  Paolo Carlini  <paolo.carlini (a] oracle.com>
   3882 
   3883 	* cp-tree.def: Add a new UNDERLYING_TYPE tree code.
   3884 	* cp-tree.h (enum cp_trait_kind): Add CPTK_UNDERLYING_TYPE, tidy.
   3885 	(UNDERLYING_TYPE_TYPE): Add.
   3886 	* cp-objcp-common.c (cp_common_init_ts): Mark UNDERLYING_TYPE
   3887 	as TS_COMMON.
   3888 	* parser.c (cp_lexer_next_token_is_decl_specifier_keyword,
   3889 	cp_parser_simple_type_specifier): Handle UNDERLYING_TYPE.
   3890 	(cp_parser_trait_expr): Deal with RID_UNDERLYING_TYPE; tidy.
   3891 	* semantics.c (finish_underlying_type): New.
   3892 	* typeck.c (structural_comptypes): Handle UNDERLYING_TYPE.
   3893 	* error.c (dump_type, dump_type_prefix, dump_type_suffix): Likewise.
   3894 	* cxx-pretty-print.c (p_cxx_type_id): Likewise.
   3895 	* tree.c (cp_walk_subtrees): Likewise.
   3896 	* pt.c (for_each_template_parm_r, tsubst, unify,
   3897 	dependent_type_p_r): Likewise.
   3898 	* mangle.c (write_type): Sorry for __underlying_type.
   3899 
   3900 2011-04-25  Jason Merrill  <jason (a] redhat.com>
   3901 
   3902 	PR c++/48707
   3903 	* decl.c (type_dependent_init_p): New.
   3904 	(cp_finish_decl): Check it.
   3905 	* pt.c (any_type_dependent_elements_p): New.
   3906 	* cp-tree.h: Declare it.
   3907 
   3908 2011-04-20  Jason Merrill  <jason (a] redhat.com>
   3909 
   3910 	* semantics.c (finish_compound_literal): Don't put an array
   3911 	with a dtor in a static variable.
   3912 
   3913 	* call.c (build_over_call): Handle trivial dtor.
   3914 
   3915 	* search.c (lookup_fnfields_slot): Call complete_type.
   3916 
   3917 	PR c++/48594
   3918 	* decl2.c (build_offset_ref_call_from_tree): Move
   3919 	non-dependency of object outside condition.
   3920 
   3921 	PR c++/48657
   3922 	* decl.c (cp_finish_decl): Simplify template handling.
   3923 
   3924 2011-04-20  Jim Meyering  <meyering (a] redhat.com>
   3925 
   3926 	* tree.c (cxx_printable_name_internal): Remove useless if-before-free.
   3927 
   3928 2011-04-19  Jason Merrill  <jason (a] redhat.com>
   3929 
   3930 	PR c++/46304
   3931 	* typeck.c (cp_build_binary_op): Fold COMPLEX_EXPR.
   3932 
   3933 	PR c++/45267
   3934 	* decl.c (duplicate_decls): Keep always_inline attribute
   3935 	in sync with DECL_DISREGARD_INLINE_LIMITS.
   3936 
   3937 2011-04-18  Jason Merrill  <jason (a] redhat.com>
   3938 
   3939 	PR c++/48569
   3940 	* typeck2.c (build_functional_cast): Handle VOID_TYPE.
   3941 
   3942 	PR c++/48537
   3943 	* init.c (build_value_init): Handle UNION_TYPE the same.
   3944 
   3945 2011-04-18  Jakub Jelinek  <jakub (a] redhat.com>
   3946 
   3947 	PR c++/48632
   3948 	* parser.c (cp_parser_omp_for_loop): Don't use cp_parser_omp_for_incr
   3949 	for type dependent pointers.
   3950 
   3951 2011-04-18  Jim Meyering  <meyering (a] redhat.com>
   3952 
   3953 	* pt.c (type_unification_real): Fix typo in comment: s/in in/in/.
   3954 
   3955 2011-04-17  Jan Hubicka  <jh (a] suse.cz>
   3956 
   3957 	* semantics.c (finish_goto_stmt): Do set UNINLINABLE flag on computed
   3958 	gotos.
   3959 
   3960 2011-04-17  Jason Merrill  <jason (a] redhat.com>
   3961 
   3962 	PR c++/48531
   3963 	* typeck2.c (build_functional_cast): Disallow array type.
   3964 
   3965 	* tree.c (get_target_expr): Handle VEC_INIT_EXPR.
   3966 
   3967 2011-04-17  Jan Hubicka  <jh (a] suse.cz>
   3968 
   3969 	* class.c (cp_fold_obj_type_ref): Drop vtable_method.
   3970 
   3971 2011-04-15  Rodrigo Rivas Costa <rodrigorivascosta (a] gmail.com>
   3972 
   3973 	Implement N3271
   3974 	* parser.c (cp_convert_range_for): Split into
   3975 	cp_parser_perform_range_for_lookup.
   3976 	(cp_parser_perform_range_for_lookup): New.
   3977 	(cp_parser_range_for_member_function): New.
   3978 	(cp_parser_for_init_statement): Correct error message.
   3979 	* semantics.c (finish_call_expr): Accept COMPONENT_REF.
   3980 
   3981 2011-04-14  Nicola Pero  <nicola.pero (a] meta-innovation.com>
   3982 
   3983 	* parser.c (cp_parser_objc_protocol_declaration): Updated for
   3984 	change from objc_declare_protocols() to objc_declare_protocol().
   3985 
   3986 2011-04-14  Nathan Froyd  <froydnj (a] codesourcery.com>
   3987 
   3988 	PR objc++/48479
   3989 	* typeck.c (cxx_mark_addressable) [CONST_DECL]: Mark addressable
   3990 	and return immediately.
   3991 
   3992 2011-04-14  Nathan Froyd  <froydnj (a] codesourcery.com>
   3993 
   3994 	* cp-tree.def (SWITCH_STMT): Add an extra operand.
   3995 	* cp-objcp-common.c (cp_common_init_ts): Mark it as TS_TYPED.
   3996 	* cp-tree.h (SWITCH_STMT_SCOPE): Define.
   3997 	* semantics.c (begin_switch__stmt): Pass scope to build_stmt.
   3998 	(finish_switch_stmt): Use SWITCH_STMT_SCOPE instead of TREE_CHAIN.
   3999 
   4000 2011-04-14  Nathan Froyd  <froydnj (a] codesourcery.com>
   4001 
   4002 	* cp-tree.def (IF_STMT): Add an extra operand.
   4003 	* cp-objcp-common.c (cp_common_init_ts): Mark it as TS_TYPED.
   4004 	* cp-tree.h (IF_SCOPE): Define.
   4005 	* semantics.c (begin_if_stmt): Pass scope to build_stmt.
   4006 	(finish_if_stmt): Use IF_SCOPE instead of TREE_CHAIN.
   4007 
   4008 2011-04-14  Nathan Froyd  <froydnj (a] codesourcery.com>
   4009 
   4010 	* cp-tree.def (FOR_STMT, RANGE_FOR_STMT): Add an extra operand.
   4011 	* cp-objcp-common.c (cp_common_init_ts): Mark them as TS_TYPED.
   4012 	* cp-tree.h (FOR_SCOPE, RANGE_FOR_SCOPE): Define.
   4013 	* semantics.c (begin_for_stmt): Pass an extra arg to build_stmt.
   4014 	Use FOR_SCOPE instead of TREE_CHAIN.
   4015 	(begin_range_for_stmt): Likewise, with RANGE_FOR_SCOPE.
   4016 	(finish_for_stmt): Likewise.
   4017 
   4018 2011-04-14  Jason Merrill  <jason (a] redhat.com>
   4019 
   4020 	* parser.c (cp_parser_postfix_expression): Fix flags passed to
   4021 	build_new_method_call.
   4022 	* semantics.c (finish_call_expr): Likewise.
   4023 
   4024 	PR c++/48531
   4025 	* init.c (build_value_init_noctor): Check complain consistently.
   4026 
   4027 	PR c++/48557
   4028 	* typeck.c (cp_build_binary_op): Don't decay void operands.
   4029 
   4030 	PR c++/48446
   4031 	* decl.c (compute_array_index_type): Use get_temp_regvar instead
   4032 	of variable_size.
   4033 	* init.c (get_temp_regvar): No longer static.
   4034 	* cp-tree.h: Declare it.
   4035 
   4036 2011-04-14  Nicola Pero  <nicola.pero (a] meta-innovation.com>
   4037 
   4038 	* parser.c (cp_parser_objc_class_declaration): Updated for change
   4039 	in objc_declare_class().
   4040 
   4041 2011-04-14  Nathan Froyd  <froydnj (a] codesourcery.com>
   4042 
   4043 	* decl.c (poplevel): Use block_chainon.
   4044 
   4045 2011-04-13  Jason Merrill  <jason (a] redhat.com>
   4046 
   4047 	PR c++/48594
   4048 	* decl2.c (build_offset_ref_call_from_tree): Fix calling a functor
   4049 	or pointer to (non-member) function.
   4050 
   4051 2011-04-13  Jakub Jelinek  <jakub (a] redhat.com>
   4052 
   4053 	PR c++/48570
   4054 	* semantics.c (cxx_eval_array_reference): Handle reading from
   4055 	wchar_t, char16_t and char32_t STRING_CST.
   4056 
   4057 2011-04-13  Dodji Seketeli  <dodji (a] redhat.com>
   4058 
   4059 	PR c++/48574
   4060 	* class.c (fixed_type_or_null): We cannot determine the dynamic
   4061 	type of a reference variable if its initializer is dependent.
   4062 
   4063 2011-04-13  Jason Merrill  <jason (a] redhat.com>
   4064 
   4065 	PR c++/48581
   4066 	* pt.c (tsubst_copy_and_build) [CALL_EXPR]: Don't complain about
   4067 	unqualified lookup failing if we're still in a template.
   4068 
   4069 2011-04-12  Nathan Froyd  <froydnj (a] codesourcery.com>
   4070 
   4071 	* cp-lang.c (cp_init_ts): Call cp_common_init_ts.  Move
   4072 	tree_contains_struct initialization to...
   4073 	* cp-objcp-common.c (cp_common_init_ts): ...here.  Use MARK_*
   4074 	macros.
   4075 	* cp-objcp-common.h (cp_common_init_ts): Declare.
   4076 	* cp-tree.h (union lang_tree_node): Check for TS_COMMON before
   4077 	calling TREE_CHAIN.
   4078 
   4079 2011-04-12  Nicola Pero  <nicola.pero (a] meta-innovation.com>
   4080 
   4081 	* parser.c (cp_parser_objc_message_expression): Updated call
   4082 	to objc_build_message_expr.
   4083 
   4084 2011-04-12  Martin Jambor  <mjambor (a] suse.cz>
   4085 
   4086 	* class.c (cp_fold_obj_type_ref): Call cgraph_get_node instead of
   4087 	cgraph_get_create_node.
   4088 	* decl2.c (cp_write_global_declarations): Call cgraph_get_node
   4089 	instead of cgraph_get_create_node.
   4090 	* method.c (make_alias_for_thunk): Call cgraph_get_node
   4091 	instead of cgraph_get_create_node, assert it returns non-NULL.
   4092 	(use_thunk): Likewise.
   4093 	* optimize.c (maybe_clone_body): Call cgraph_same_body_alias only
   4094 	when flag_syntax_only is not set.  Call cgraph_get_node instead of
   4095 	cgraph_get_create_node.
   4096 	(maybe_clone_body): Call cgraph_get_node instead of
   4097 	cgraph_get_create_node.
   4098 
   4099 2011-04-12  Martin Jambor  <mjambor (a] suse.cz>
   4100 
   4101 	* class.c (cp_fold_obj_type_ref): Call cgraph_get_create_node
   4102 	instead of cgraph_node.
   4103 	* decl2.c (cxx_callgraph_analyze_expr): Likewise.
   4104 	(cp_write_global_declarations): Likewise.
   4105 	* optimize.c (maybe_clone_body): Likewise.
   4106 	* semantics.c (maybe_add_lambda_conv_op): Likewise.
   4107 	* mangle.c (mangle_decl): Likewise.
   4108 	* method.c (make_alias_for_thunk): Likewise.
   4109 	(use_thunk): Likewise.
   4110 
   4111 2011-04-11  Jason Merrill  <jason (a] redhat.com>
   4112 
   4113 	PR c++/48535
   4114 	* decl.c (cp_complete_array_type_or_error): New.
   4115 	* semantics.c (finish_compound_literal): Use it.
   4116 	* cp-tree.h: Declare it.
   4117 
   4118 	PR c++/48535
   4119 	* semantics.c (finish_compound_literal): Handle references.
   4120 
   4121 	PR c++/48535
   4122 	* semantics.c (finish_compound_literal): Take complain parm.
   4123 	(build_lambda_object): Adjust.
   4124 	* cp-tree.h: Adjust.
   4125 	* call.c (convert_like_real): Adjust.
   4126 	* decl.c (check_initializer): Adjust.
   4127 	* parser.c (cp_parser_postfix_expression): Adjust.
   4128 	(cp_parser_functional_cast): Adjust.
   4129 	* pt.c (tsubst_copy_and_build): Adjust.
   4130 	* typeck2.c (process_init_constructor_record): Adjust.
   4131 
   4132 	PR c++/48534
   4133 	* cvt.c (ocp_convert): Use build_nop to convert to underlying type
   4134 	of scoped enum.
   4135 
   4136 	PR c++/48523
   4137 	* tree.c (maybe_dummy_object): Use build_x_indirect_ref rather
   4138 	than cp_build_indirect_ref.
   4139 
   4140 	PR c++/48457, Core 1238
   4141 	* call.c (reference_binding): Allow rvalue reference to bind to
   4142 	function lvalue.
   4143 	* tree.c (lvalue_kind): Functions are always lvalues.
   4144 
   4145 2011-04-07  Jason Merrill  <jason (a] redhat.com>
   4146 
   4147 	PR c++/48500
   4148 	* semantics.c (potential_constant_expression_1) [CALL_EXPR]: Check
   4149 	arguments even if we don't know the function.
   4150 
   4151 	PR c++/48481
   4152 	* tree.c (build_overload): Allow an unwrapped FUNCTION_DECL
   4153 	at the end of the chain.
   4154 	* pt.c (dependent_template_p): Use OVL_CURRENT/NEXT.
   4155 	(iterative_hash_template_arg): Likewise.
   4156 
   4157 	PR c++/48481
   4158 	* cp-tree.h (OVL_ARG_DEPENDENT): New.
   4159 	* name-lookup.c (add_function): Set it.
   4160 	* semantics.c (finish_call_expr): Free OVERLOADs if it's set.
   4161 
   4162 	PR c++/48481
   4163 	* call.c (build_user_type_conversion_1): Use lookup_fnfields_slot.
   4164 	Release unused vector.
   4165 
   4166 	PR c++/48451
   4167 	* pt.c (fn_type_unification): Don't clear incomplete pack flag.
   4168 	(type_unification_real): Clear it here instead.
   4169 
   4170 	PR c++/48468
   4171 	* except.c (build_noexcept_spec): Propagate error_mark_node.
   4172 	(finish_noexcept_expr): Likewise.
   4173 
   4174 	PR c++/48452
   4175 	* typeck.c (build_x_compound_expr_from_list): Return error_mark_node
   4176 	in SFINAE context.
   4177 
   4178 	PR c++/48450
   4179 	* call.c (resolve_args): Take complain.
   4180 	(build_new_function_call, build_operator_new_call): Pass it.
   4181 	(build_op_call, build_new_op, build_new_method_call): Pass it.
   4182 
   4183 	PR c++/48450
   4184 	* typeck.c (check_for_casting_away_constness): Take complain.
   4185 	(build_static_cast_1, build_reinterpret_cast_1): Pass it.
   4186 	(build_const_cast_1): Pass it.  Take full complain parm.
   4187 	(build_const_cast, cp_build_c_cast): Adjust.
   4188 
   4189 	* tree.c (build_aggr_init_expr): Always return error_mark_node
   4190 	on abstract violation.
   4191 
   4192 	PR c++/48450
   4193 	* tree.c (build_cplus_new, build_aggr_init_expr): Take complain.
   4194 	(bot_manip): Adjust.
   4195 	* cp-tree.h: Adjust.
   4196 	* call.c (convert_like_real, build_cxx_call): Adjust.
   4197 	(perform_direct_initialization_if_possible): Adjust.
   4198 	* cvt.c (ocp_convert): Adjust.
   4199 	* init.c (build_value_init): Adjust.
   4200 	* semantics.c (maybe_add_lambda_conv_op): Adjust.
   4201 	* typeck.c (unary_complex_lvalue, cp_build_modify_expr): Adjust.
   4202 	* typeck2.c (build_functional_cast): Adjust.
   4203 
   4204 	* init.c (build_value_init_noctor): Handle REFERENCE_TYPE at top
   4205 	level.
   4206 	(perform_member_init): Not here.
   4207 	* typeck2.c (build_functional_cast): Limit REFERENCE_TYPE special
   4208 	case to templates.
   4209 	(abstract_virtuals_error_sfinae): Remove RESULT_DECL special case.
   4210 
   4211 	PR c++/48449
   4212 	* typeck2.c (build_functional_cast): Check complain consistently.
   4213 	Use build_value_init and abstract_virtuals_error_sfinae.
   4214 	(abstract_virtuals_error_sfinae): Split out.
   4215 	* cp-tree.h: Declare it.
   4216 	* init.c (build_new_1): Use it.
   4217 	(build_value_init_noctor): Handle FUNCTION_TYPE.
   4218 
   4219 	* semantics.c (finish_decltype_type): Simplify handling of unknown
   4220 	type.
   4221 
   4222 	* semantics.c (finish_decltype_type): Add complain parm.
   4223 	* cp-tree.h: Adjust.
   4224 	* parser.c (cp_parser_decltype): Adjust.
   4225 	* pt.c (tsubst): Adjust.
   4226 
   4227 	PR c++/48450
   4228 	* cvt.c (ocp_convert): Handle converting scoped enum to bool.
   4229 
   4230 2011-03-31  Jason Merrill  <jason (a] redhat.com>
   4231 
   4232 	PR c++/48277
   4233 	* semantics.c (finish_call_expr): Remove assert.
   4234 
   4235 	PR c++/48280
   4236 	* method.c (defaultable_fn_check): Templates are not defaultable.
   4237 
   4238 	* parser.c (cp_parser_init_declarator): Avoid redundant
   4239 	cp_finish_decl for member declarations.
   4240 
   4241 2011-03-30  Jason Merrill  <jason (a] redhat.com>
   4242 
   4243 	PR c++/48212
   4244 	* semantics.c (non_const_var_error): Just return if DECL_INITIAL
   4245 	is error_mark_node.
   4246 
   4247 2011-03-30  Jason Merrill  <jason (a] redhat.com>
   4248 
   4249 	PR c++/48369
   4250 	* semantics.c (potential_constant_expression_1): Handle
   4251 	UNORDERED_EXPR and ORDERED_EXPR.
   4252 
   4253 	PR c++/48281
   4254 	* semantics.c (finish_compound_literal): Do put static/constant
   4255 	arrays in static variables.
   4256 
   4257 	* call.c (convert_like_real) [ck_list]: Build up the
   4258 	initializer_list object directly.
   4259 	* decl.c (build_init_list_var_init): Adjust.
   4260 
   4261 	* call.c (convert_like_real): Correct TREE_CONSTANT on CONSTRUCTOR.
   4262 	* decl.c (reshape_init_array_1): Likewise.
   4263 
   4264 2011-03-29  Jason Merrill  <jason (a] redhat.com>
   4265 
   4266 	PR c++/48265
   4267 	* pt.c (value_dependent_expression_p) [VAR_DECL]: Make sure
   4268 	the variable is constant before looking at its initializer.
   4269 
   4270 	PR c++/48319
   4271 	* pt.c (value_dependent_expression_p): Handle TEMPLATE_ID_EXPR.
   4272 
   4273 	PR c++/48089
   4274 	* semantics.c (potential_constant_expression_1): Change error about
   4275 	use of *this in constructor into sorry.
   4276 
   4277 	PR c++/48296
   4278 	* decl.c (cp_finish_decl): Defer validation of constexpr member
   4279 	functions.
   4280 	* class.c (finalize_literal_type_property): Validate them here.
   4281 	* semantics.c (is_valid_constexpr_fn): Don't check completeness.
   4282 
   4283 	* semantics.c (is_valid_constexpr_fn): Specify input location.
   4284 
   4285 2011-03-28  Jason Merrill  <jason (a] redhat.com>
   4286 
   4287 	PR c++/48313
   4288 	* pt.c (maybe_adjust_types_for_deduction): Handle T&& deduction
   4289 	from overloaded function.
   4290 
   4291 	Core 1232
   4292 	* call.c (build_array_conv): New.
   4293 	(implicit_conversion): Use it.
   4294 
   4295 	* call.c (reference_binding): Allow direct binding to an array
   4296 	rvalue.
   4297 
   4298 	Core 898
   4299 	* parser.c (cp_parser_compound_statement): Add function_body parm.
   4300 	Complain about non-body compound-stmt in constexpr fn.
   4301 	(cp_parser_primary_expression, cp_parser_statement): Adjust.
   4302 	(cp_parser_implicitly_scoped_statement): Adjust.
   4303 	(cp_parser_function_body, cp_parser_try_block): Adjust.
   4304 	(cp_parser_handler, cp_parser_objc_synchronized_statement): Adjust.
   4305 	(cp_parser_objc_try_catch_finally_statement): Adjust.
   4306 
   4307 	Core 898
   4308 	* semantics.c (constexpr_fn_retval): New.  Allow using-declaration
   4309 	and using-definition.
   4310 	(register_constexpr_fundef): Call it.
   4311 
   4312 	* except.c (build_noexcept_spec): Call cxx_constant_value after
   4313 	converting to bool.
   4314 
   4315 2011-03-25  Kai Tietz  <ktietz (a] redhat.com>
   4316 
   4317 	* lex.c (interface_strcmp): Handle dos-paths.
   4318 	(handle_pragma_implementation): Use filename_cmp instead of
   4319 	strcmp.
   4320 	(in_main_input_context): Likewise.
   4321 
   4322 2011-03-25  Jason Merrill  <jason (a] redhat.com>
   4323 
   4324 	Core 1135
   4325 	* method.c (defaulted_late_check): Check for exception spec mismatch.
   4326 	(defaultable_fn_check): Allow exception spec and virtual.
   4327 	* class.c (check_for_override): A virtual dtor is non-trivial.
   4328 
   4329 	PR c++/48289
   4330 	* pt.c (build_non_dependent_expr): Keep dereferences outside the
   4331 	NON_DEPENDENT_EXPR.
   4332 
   4333 2011-03-25  Kai Tietz  <ktietz (a] redhat.com>
   4334 
   4335 	* decl.c (decls_match): Replace target hook
   4336 	call of comp_type_attributes by version in tree.c file.
   4337 	* search.c (check_final_overrider): Likewise.
   4338 	* typeck.c (structural_comptypes): Likewise.
   4339 
   4340 2011-03-21  Kai Tietz  <ktietz (a] redhat.com>
   4341 
   4342 	PR target/12171
   4343 	* cxx-pretty-print.c (pp_cxx_ptr_operator):
   4344 	Display allowed attributes for function pointer types.
   4345 	* error.c (dump_type_prefix): Likewise.
   4346 
   4347 	* tree.c (cxx_attribute_table): Adjust table.
   4348 
   4349 2011-03-18  Jason Merrill  <jason (a] redhat.com>
   4350 
   4351 	PR c++/48162
   4352 	* semantics.c (finish_call_expr): Allow TARGET_EXPR for now.
   4353 
   4354 	PR c++/48118
   4355 	* call.c (build_over_call): Don't skip ck_rvalue.
   4356 
   4357 2011-03-17  Jason Merrill  <jason (a] redhat.com>
   4358 
   4359 	PR c++/47504
   4360 	* semantics.c (cxx_eval_constant_expression) [NOP_EXPR]: Don't let
   4361 	the conversion set TREE_OVERFLOW.
   4362 
   4363 	Core 1212
   4364 	* semantics.c (finish_decltype_type): Return T&& for xvalue.
   4365 	* typeck.c (unlowered_expr_type): Preserve cv-quals.
   4366 
   4367 	PR c++/48166
   4368 	* decl.c (revert_static_member_fn): Strip function-cv-quals.
   4369 
   4370 2011-03-16  Jason Merrill  <jason (a] redhat.com>
   4371 
   4372 	PR c++/48089
   4373 	* semantics.c (potential_constant_expression_1): Don't allow *this
   4374 	in a constructor.
   4375 	(register_constexpr_fundef): Use potential_rvalue_constant_expression.
   4376 
   4377 	PR c++/47301
   4378 	* decl.c (compute_array_index_type): Don't bother trying to deal
   4379 	with literal classes in ABI v1.
   4380 
   4381 	PR c++/46336
   4382 	* decl.c (duplicate_decls): Return NULL_TREE for clashing
   4383 	C functions.
   4384 
   4385 	PR c++/47570
   4386 	* semantics.c (cxx_eval_constant_expression) [COMPOUND_EXPR]: Don't
   4387 	use the generic binary expression handling.
   4388 
   4389 2011-03-16  Diego Novillo  <dnovillo (a] google.com>
   4390 
   4391 	* Make-lang.in (CXX_PARSER_H): New.
   4392 	(cp/parser.o): Add dependency on CXX_PARSER_H.
   4393 	Add dependency on tree-pretty-print.h
   4394 	(cp/cp-lang.o): Add dependency on CXX_PARSER_H.
   4395 	* cp-lang.c: Include parser.h.
   4396 	* parser.c: Include parser.h.
   4397 	(struct cp_token): Add bitfield purged_p.
   4398 	Update all users.
   4399 	Move to parser.h.
   4400 	(CPP_PURGED): Remove.  Update all users.
   4401 	(struct cp_lexer): Change field buffer to be a VEC of cp_token.
   4402 	Remove field buffer_length.
   4403 	Update all users.
   4404 	Move to parser.h.
   4405 	(struct tree_check): Move to parser.h.
   4406 	(cp_token_position): Likewise.
   4407 	(struct cp_token_cache): Likewise.
   4408 	(CPP_KEYWORD): Likewise.
   4409 	(CPP_TEMPLATE_ID): Likewise.
   4410 	(CPP_NESTED_NAME_SPECIFIER): Likewise.
   4411 	(N_CP_TTYPES): Likewise.
   4412 	(enum cp_parser_status_kind): Likewise.
   4413 	(struct cp_parser_context): Likewise.
   4414 	(struct cp_default_arg_entry_d): Likewise.
   4415 	(struct cp_unparsed_functions_entry_d): Likewise.
   4416 	(struct cp_parser): Likewise.
   4417 	(cp_lexer_dump_tokens): New.
   4418 	(cp_lexer_debug_tokens): New.
   4419 	(cp_lexer_finished_p): New.
   4420 	(cp_lexer_alloc): Factor out of cp_lexer_new_main.
   4421 	(cp_lexer_new_main): Re-write main lexing loop to push
   4422 	tokens into the new VEC buffer.
   4423 	(cp_lexer_print_token): Improve printing of CPP_NUMBER tokens.
   4424 	Do not abort if the token type is not recognized, just print
   4425 	its code.
   4426 	* parser.h: New file.
   4427 	* config-lang.in (gtfiles): Add cp/parser.h.
   4428 
   4429 2011-03-16  Jason Merrill  <jason (a] redhat.com>
   4430 
   4431 	Core 1148
   4432 	* typeck.c (check_return_expr): Fix conditions for setting
   4433 	LOOKUP_PREFER_RVALUE.
   4434 
   4435 	* call.c (build_over_call): Remove require_complete_type_sfinae call.
   4436 
   4437 	PR c++/48132
   4438 	* decl.c (check_array_designated_initializer): Allow integer index.
   4439 	(reshape_init_array_1): Set index on the elements.
   4440 
   4441 2011-03-16  Jason Merrill  <jason (a] redhat.com>
   4442 
   4443 	PR c++/48113
   4444 	* typeck.c (convert_for_initialization): Use
   4445 	perform_implicit_conversion_flags.
   4446 	* call.c (standard_conversion): If LOOKUP_PREFER_RVALUE, set
   4447 	rvaluedness_matches_p on ck_rvalue.
   4448 	(convert_like_real) [ck_rvalue]: And restore it here.
   4449 
   4450 	PR c++/48115
   4451 	* call.c (convert_arg_to_ellipsis): Handle incomplete type.
   4452 
   4453 2011-03-16  Jason Merrill  <jason (a] redhat.com>
   4454 
   4455 	* parser.c (cp_parser_abort_tentative_parse): Make sure we haven't
   4456 	committed to this tentative parse.
   4457 
   4458 	PR c++/47999
   4459 	* semantics.c (finish_call_expr): Preserve reference semantics
   4460 	in templates.
   4461 
   4462 	* call.c (convert_default_arg): Use LOOKUP_IMPLICIT.
   4463 
   4464 2011-03-16  Jakub Jelinek  <jakub (a] redhat.com>
   4465 
   4466 	* cp-objcp-common.c (cp_function_decl_explicit_p): Don't crash if
   4467 	DECL_LANG_SPECIFIC is NULL.
   4468 
   4469 2011-03-15  Jason Merrill  <jason (a] redhat.com>
   4470 
   4471 	Core 1074
   4472 	* pt.c (value_dependent_expression_p) [NOEXCEPT_EXPR]: Don't
   4473 	check value_dependent_expression_p on the operand.
   4474 
   4475 	* semantics.c (push_cx_call_context): Return bool.
   4476 	(cxx_eval_call_expression): Handle excess depth.
   4477 
   4478 	Core 1191
   4479 	* method.c (synthesized_method_walk): Cleanups don't affect the
   4480 	triviality of a constructor, but do affect deletion and exception
   4481 	specification.
   4482 
   4483 2011-03-15  Rodrigo Rivas Costa  <rodrigorivascosta (a] gmail.com>
   4484 
   4485 	* decl2.c (cp_check_const_attributes): New.
   4486 	(cplus_decl_attributes): Call cp_check_const_attributes.
   4487 
   4488 2011-03-15  Jason Merrill  <jason (a] redhat.com>
   4489 
   4490 	PR c++/34758
   4491 	* call.c (convert_default_arg): Use DECL_ORIGIN of fn.  Check for
   4492 	recursion first.
   4493 	(push_defarg_context, pop_defarg_context): New.
   4494 	* parser.c (cp_parser_late_parsing_default_args): Use them.
   4495 	* cp-tree.h: Declare them.
   4496 
   4497 2011-03-11  Dodji Seketeli  <dodji (a] redhat.com>
   4498 
   4499 	* call.c (add_builtin_candidate)<case INDIRECT_REF>: The type of
   4500 	the argument of the indirection operator should not be dependent.
   4501 	Fix the comment.
   4502 
   4503 2011-03-11  Jason Merrill  <jason (a] redhat.com>
   4504 
   4505 	PR c++/47125
   4506 	* pt.c (tsubst) [TYPENAME_TYPE]: Only give errors if tf_error.
   4507 
   4508 	PR c++/47144
   4509 	* parser.c (cp_parser_template_type_arg): Set
   4510 	type_definition_forbidden_message.
   4511 
   4512 	PR c++/47808
   4513 	* decl.c (compute_array_index_type): Discard folding
   4514 	if it didn't produce a constant.
   4515 
   4516 2011-03-11  Jakub Jelinek  <jakub (a] redhat.com>
   4517 
   4518 	PR c++/48035
   4519 	* init.c (build_zero_init_1): Extracted from build_zero_init.
   4520 	Add FIELD_SIZE argument, if non-NULL and field bit_position
   4521 	as not smaller than that, don't add that field's initializer.
   4522 	Pass DECL_SIZE as last argument to build_zero_init_1
   4523 	for DECL_FIELD_IS_BASE fields.
   4524 	(build_zero_init): Use build_zero_init_1.
   4525 
   4526 2011-03-10  Jason Merrill  <jason (a] redhat.com>
   4527 
   4528 	PR c++/48029
   4529 	* pt.c (iterative_hash_template_arg): Remove special case for
   4530 	ARRAY_TYPE.
   4531 
   4532 	PR c++/47198
   4533 	* parser.c (cp_parser_single_declaration): Just return if
   4534 	cp_parser_parse_and_diagnose_invalid_type_name complained.
   4535 
   4536 2011-03-09  Jason Merrill  <jason (a] redhat.com>
   4537 
   4538 	PR c++/44629
   4539 	* pt.c (unify): An unresolved overload is a nondeduced context.
   4540 
   4541 2011-03-09  Martin Jambor  <mjambor (a] suse.cz>
   4542 
   4543 	PR tree-optimization/47714
   4544 	* method.c (use_thunk): Clear addressable flag of thunk arguments.
   4545 
   4546 2011-03-08  Dodji Seketeli  <dodji (a] redhat.com>
   4547 
   4548 	PR c++/47705
   4549 	* pt.c (convert_nontype_argument): Only call decay_conversion on
   4550 	arrays.
   4551 
   4552 2011-03-08  Jason Merrill  <jason (a] redhat.com>
   4553 
   4554 	PR c++/47488
   4555 	* mangle.c (write_template_arg_literal) [STRING_CST]: Sorry.
   4556 
   4557 	PR c++/47705
   4558 	* pt.c (convert_nontype_argument): Don't crash on non-pointer
   4559 	argument to pointer parameter.
   4560 
   4561 	PR c++/45651
   4562 	* pt.c (instantiate_decl): Don't clear DECL_INTERFACE_KNOWN on
   4563 	!TREE_PUBLIC decls.
   4564 
   4565 2011-03-08  Dodji Seketeli  <dodji (a] redhat.com>
   4566 
   4567 	PR c++/47957
   4568 	* name-lookup.c (binding_to_template_parms_of_scope_p): Only
   4569 	consider scopes of primary template definitions.  Adjust comments.
   4570 
   4571 2011-03-07  Jason Merrill  <jason (a] redhat.com>
   4572 
   4573 	PR c++/48003
   4574 	* pt.c (convert_nontype_argument): Fix -fpermissive allowing
   4575 	integer overflow.
   4576 	* semantics.c (potential_constant_expression_1): Check TREE_OVERFLOW.
   4577 
   4578 	PR c++/48015
   4579 	* init.c (constant_value_1): Always require init to be TREE_CONSTANT.
   4580 
   4581 	PR c++/48008
   4582 	* mangle.c (write_type): Strip cv-quals from FUNCTION_TYPE here.
   4583 	(write_CV_qualifiers_for_type): Not here.
   4584 
   4585 2011-03-06  Joseph Myers  <joseph (a] codesourcery.com>
   4586 
   4587 	* lang-specs.h: Match -save-temps* instead of -save-temps.
   4588 
   4589 2011-03-05  Jason Merrill  <jason (a] redhat.com>
   4590 
   4591 	* mangle.c (write_expression): Change ABI v6 to v5.
   4592 	(write_type): Likewise.
   4593 
   4594 2011-03-04  Jan Hubicka  <jh (a] suse.cz>
   4595 
   4596 	PR lto/47497
   4597 	* optimize.c (maybe_clone_body): Update call of cgraph_same_body_alias
   4598 	and cgraph_add_thunk.
   4599 	* method.c (make_alias_for_thunk, use_thunk): Likewise.
   4600 	* mangle.c (mangle_decl): Likewise.
   4601 
   4602 2011-03-04  Jason Merrill  <jason (a] redhat.com>
   4603 
   4604 	PR c++/47971
   4605 	* pt.c (tsubst_copy_and_build) [PSEUDO_DTOR_EXPR]: Use tsubst for type.
   4606 	(tsubst_copy) [default]: Just return t if !ENABLE_CHECKING.
   4607 
   4608 	PR c++/46220
   4609 	* search.c (check_final_overrider): Allow pointer to same incomplete
   4610 	class type with different cv-quals.
   4611 
   4612 2011-03-03  Paolo Carlini  <paolo.carlini (a] oracle.com>
   4613 
   4614 	PR c++/47974
   4615 	* pt.c (tsubst_template_args): Check argument t for error_mark_node.
   4616 
   4617 2011-03-03  Jason Merrill  <jason (a] redhat.com>
   4618 
   4619 	PR c++/47950
   4620 	* pt.c (tsubst_copy_and_build) [TARGET_EXPR]: Retain TREE_CONSTANT.
   4621 
   4622 2011-03-02  Jason Merrill  <jason (a] redhat.com>
   4623 
   4624 	PR c++/47950
   4625 	* parser.c (cp_parser_condition): Don't fold_non_dependent_expr here.
   4626 
   4627 	PR c++/47774
   4628 	* tree.c (build_vec_init_elt): Split out from...
   4629 	(build_vec_init_expr): ...here.
   4630 	(diagnose_non_constexpr_vec_init): New fn.
   4631 	* semantics.c (potential_constant_expression_1): Use it.
   4632 	* cp-tree.h: Declare it.
   4633 
   4634 2011-03-01  Jason Merrill  <jason (a] redhat.com>
   4635 
   4636 	PR c++/46159
   4637 	* parser.c (cp_parser_primary_expression): Don't warn about a
   4638 	failed tentative parse.
   4639 
   4640 	PR c++/47200
   4641 	* semantics.c (cxx_bind_parameters_in_call): Don't call
   4642 	adjust_temp_type on non-constant args.
   4643 
   4644 	PR c++/47851
   4645 	* call.c (standard_conversion): Provide requested cv-quals on
   4646 	class rvalue conversion.
   4647 
   4648 	PR c++/46282
   4649 	* decl2.c (grokbitfield): Handle type-dependent width.
   4650 
   4651 2011-02-28  Jason Merrill  <jason (a] redhat.com>
   4652 
   4653 	PR c++/47873
   4654 	* class.c (update_vtable_entry_for_fn): Check BINFO_LOST_PRIMARY_P
   4655 	after checking for a non-thunk.
   4656 
   4657 2011-02-26  Jason Merrill  <jason (a] redhat.com>
   4658 
   4659 	PR c++/47904
   4660 	* tree.c (cp_tree_equal): Compare DECL_PARM_LEVEL.
   4661 	* pt.c (iterative_hash_template_arg): And hash it.
   4662 
   4663 	PR c++/47897
   4664 	* semantics.c (non_const_var_error): Split out from...
   4665 	(cxx_eval_constant_expression): ...here.
   4666 	(potential_constant_expression_1) [VAR_DECL]: Use it.
   4667 	Allow dependent variables.
   4668 
   4669 2011-02-24  Jason Merrill  <jason (a] redhat.com>
   4670 
   4671 	* parser.c (cp_parser_constant_expression): Set
   4672 	non_integral_constant_expression correctly for C++0x too.
   4673 	(cp_parser_static_assert): Allow non-constant expression.
   4674 	(cp_parser_direct_declarator): Expect non_constant_p to be set
   4675 	properly for C++0x.
   4676 	* pt.c (value_dependent_expression_p): Handle TYPEID_EXPR.
   4677 	* semantics.c (maybe_constant_value): Check type_unknown_p too.
   4678 	(potential_rvalue_constant_expression): New.
   4679 	(require_potential_rvalue_constant_expression): New.
   4680 
   4681 2011-02-23  Jason Merrill  <jason (a] redhat.com>
   4682 
   4683 	* cp-tree.h (DECL_PARM_LEVEL): New.
   4684 	(struct lang_decl_parm): Add level field.
   4685 	* name-lookup.c (function_parm_depth): New fn.
   4686 	* name-lookup.h: Declare it.
   4687 	* parser.c (cp_parser_parameter_declaration_list): Use it.
   4688 	* mangle.c (struct globals): Add parm_depth field.
   4689 	(write_bare_function_type): Adjust it.
   4690 	(write_expression): Include the level delta in PARM_DECL mangling
   4691 	for abi >= 6.
   4692 
   4693 	* semantics.c (finish_decltype_type): Remove shortcut for decltype
   4694 	of id-expression.
   4695 	* mangle.c (write_type) [DECLTYPE_TYPE]: Strip it here for abi < 6.
   4696 
   4697 2011-02-23  Nathan Froyd  <froydnj (a] codesourcery.com>
   4698 
   4699 	PR c++/46868
   4700 	* parser.c (cp_parser_class_specifier): Require a closing brace
   4701 	to attempt error recovery.
   4702 
   4703 2011-02-23  Jakub Jelinek  <jakub (a] redhat.com>
   4704 
   4705 	PR c++/47833
   4706 	* pt.c (struct pending_template): Add chain_next GTY option.
   4707 	* decl.c (struct named_label_use_entry): Likewise.
   4708 
   4709 2011-02-22  Paolo Carlini  <paolo.carlini (a] oracle.com>
   4710 
   4711 	PR c++/47242
   4712 	* semantics.c (build_lambda_object): Bail out if a field is
   4713 	error_mark_node.
   4714 
   4715 2011-02-22  Dodji Seketeli  <dodji (a] redhat.com>
   4716 
   4717 	PR c++/47666
   4718 	* class.c (dfs_declare_virt_assop_and_dtor)
   4719 	(declare_virt_assop_and_dtor): New static functions.
   4720 	(add_implicitly_declared_members): Use
   4721 	declare_virt_assop_and_dtor.
   4722 
   4723 2011-02-21  Jason Merrill  <jason (a] redhat.com>
   4724 
   4725 	PR c++/47207
   4726 	* decl2.c (decl_constant_var_p): A constexpr var needs an
   4727 	initializer to be constant.
   4728 	* semantics.c (cxx_eval_constant_expression): Complain about
   4729 	constexpr var used in its own initializer.
   4730 	* call.c (set_up_extended_ref_temp): Set
   4731 	DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P too.
   4732 
   4733 2011-02-20  Jason Merrill  <jason (a] redhat.com>
   4734 
   4735 	PR c++/47199
   4736 	* semantics.c (cxx_eval_call_expression): Call
   4737 	cxx_eval_constant_expression in trivial shortcut.
   4738 
   4739 	PR c++/46831
   4740 	* call.c (convert_class_to_reference): Don't try to set up a
   4741 	second conv sequence for non-viable candidates.
   4742 
   4743 	PR c++/47703
   4744 	* error.c (location_of): Handle non-tagged types.
   4745 
   4746 	PR c++/46472
   4747 	* method.c (process_subob_fn): Instantiate constexpr templates.
   4748 	* optimize.c (maybe_clone_body): Propagate DECL_DECLARED_CONSTEXPR_P.
   4749 
   4750 2011-02-20  Dodji Seketeli  <dodji (a] redhat.com>
   4751 
   4752 	PR c++/46394
   4753 	* pt.c (tsubst_pack_expansion): do not use
   4754 	cp_tree_equal/same_type_p to detect an expansion of a parameter
   4755 	pack.
   4756 
   4757 2011-02-19  Jason Merrill  <jason (a] redhat.com>
   4758 
   4759 	PR c++/47503
   4760 	* semantics.c (cxx_eval_call_expression): Shortcut trivial copy.
   4761 
   4762 2011-02-18  Paolo Carlini  <paolo.carlini (a] oracle.com>
   4763 
   4764 	PR c++/47795
   4765 	* semantics.c (finish_non_static_data_member): Early return if
   4766 	object is error_mark_node.
   4767 
   4768 2011-02-18  Dodji Seketeli  <dodji (a] redhat.com>
   4769 
   4770 	PR c++/47208
   4771 	* pt.c (do_auto_deduction): Do not mention error_mark_node in
   4772 	diagnostics.
   4773 	* semantics.c (finish_id_expression): Do not pass erroneous decl
   4774 	to decl_constant_var_p.
   4775 
   4776 2011-02-17  Jakub Jelinek  <jakub (a] redhat.com>
   4777 
   4778 	PR c++/47783
   4779 	* cvt.c (convert_from_reference): Call mark_exp_read.
   4780 
   4781 2011-02-11  Dodji Seketeli  <dodji (a] redhat.com>
   4782 
   4783 	PR c++/47172
   4784 	* pt.c (finish_call_expr): Consider a call expression that has a
   4785 	dependent "this" pointer as being dependent.  Add comments.
   4786 	(dependent_type_p, type_dependent_expression_p): Update comments.
   4787 
   4788 2011-02-16  Dodji Seketeli  <dodji (a] redhat.com>
   4789 
   4790 	PR c++/47326
   4791 	* pt.c (tsubst_copy)<case SIZEOF_EXPR>: Ensure that even pack
   4792 	expansion arguments are not evaluated.
   4793 
   4794 2011-02-16  Jakub Jelinek  <jakub (a] redhat.com>
   4795 
   4796 	PR c++/47704
   4797 	* cp-tree.h (ENUM_FIXED_UNDERLYING_TYPE_P): Use TYPE_LANG_FLAG_5
   4798 	instead of TYPE_LANG_FLAG_3.
   4799 	* pt.c (lookup_template_class): Copy over
   4800 	ENUM_FIXED_UNDERLYING_TYPE_P.
   4801 
   4802 2011-02-15  Jason Merrill  <jason (a] redhat.com>
   4803 
   4804 	PR c++/46807
   4805 	* method.c (synthesized_method_walk): Always exit early for
   4806 	trivial fn in C++98 mode.
   4807 
   4808 2011-02-14  Jason Merrill  <jason (a] redhat.com>
   4809 
   4810 	PR c++/47482
   4811 	* parser.c (cp_parser_enumerator_definition): Call
   4812 	fold_non_dependent_expr.
   4813 
   4814 2011-02-09  Jason Merrill  <jason (a] redhat.com>
   4815 
   4816 	* decl.c (cp_make_fname_decl): Set DECL_THIS_STATIC at toplevel.
   4817 	* semantics.c (finish_fname): Only return the name if we're in
   4818 	a function.
   4819 
   4820 	* decl.c (build_enumerator): Don't perform integral promotions on
   4821 	non-integral constants.
   4822 
   4823 	* cvt.c (convert_to_void): Handle null op1.
   4824 
   4825 	* class.c (type_has_constexpr_default_constructor): Make sure the
   4826 	caller stripped an enclosing array.
   4827 	* init.c (perform_member_init): Strip arrays before calling it.
   4828 
   4829 	PR c++/47511
   4830 	* semantics.c (potential_constant_expression_1): Handle TEMPLATE_DECL.
   4831 
   4832 2011-02-03  Dodji Seketeli  <dodji (a] redhat.com>
   4833 
   4834 	PR c++/47398
   4835 	* tree.c (cp_tree_equal)<TEMPLATE_PARM_INDEX>: Take the number of
   4836 	template parameters in account.
   4837 
   4838 2011-02-03  Nathan Froyd  <froydnj (a] codesourcery.com>
   4839 
   4840 	PR c++/46890
   4841 	* parser.c (cp_parser_class_specifier): Fix setting of
   4842 	want_semicolon.
   4843 
   4844 2011-01-31  Jakub Jelinek  <jakub (a] redhat.com>
   4845 
   4846 	PR c++/47416
   4847 	* semantics.c (build_data_member_initialization): Handle
   4848 	STATEMENT_LIST always instead of just for CLEANUP_BODY.
   4849 
   4850 2011-01-31  Rainer Orth  <ro (a] CeBiTec.Uni-Bielefeld.DE>
   4851 
   4852 	* g++spec.c (lang_specific_driver) [HAVE_LD_STATIC_DYNAMIC] Use
   4853 	LD_STATIC_OPTION, LD_DYNAMIC_OPTION.
   4854 
   4855 2011-01-29  Dodji Seketeli  <dodji (a] redhat.com>
   4856 
   4857 	PR c++/47311
   4858 	* cp-tree.h (fixup_template_parms): Declare.
   4859 	* pt.c (end_template_parm_list): Do not fixup template parms here.
   4860 	(fixup_template_parms): Remove static. Fix typo in the
   4861 	comments. Remove useless code statement.
   4862 	(fixup_template_parm): For a template template parameter, fixup
   4863 	its attributes before fixing up its type.
   4864 	* parser.c
   4865 	(cp_parser_template_declaration_after_export): After parsing
   4866 	template parameters fixup their types.
   4867 
   4868 2011-01-26  Jakub Jelinek  <jakub (a] redhat.com>
   4869 
   4870 	PR c++/47476
   4871 	* semantics.c (potential_constant_expression_1): Handle
   4872 	TRUTH_XOR_EXPR.
   4873 
   4874 2011-01-26  Dave Korn  <dave.korn.cygwin (a] gmail.com>
   4875 
   4876 	PR c++/43601
   4877 	* semantics.c (expand_or_defer_fn_1): Handle it.
   4878 	* decl2.c (decl_needed_p): Likewise.
   4879 
   4880 2011-01-21  Jason Merrill  <jason (a] redhat.com>
   4881 
   4882 	PR c++/47041
   4883 	* semantics.c (build_constexpr_constructor_member_initializers):
   4884 	Handle trivial copy.
   4885 
   4886 2011-01-21  Jakub Jelinek  <jakub (a] redhat.com>
   4887 
   4888 	PR c++/47388
   4889 	* semantics.c (begin_for_stmt): If -fno-for-scope, don't
   4890 	assume init must be NULL if scope is NULL.
   4891 	(begin_range_for_stmt): Likewise.
   4892 
   4893 2011-01-21  Jason Merrill  <jason (a] redhat.com>
   4894 
   4895 	PR c++/46552
   4896 	* semantics.c (cxx_eval_constant_expression): Handle OFFSET_REF.
   4897 
   4898 	PR c++/46977
   4899 	* semantics.c (potential_constant_expression_1): Split out from
   4900 	potential_constant_expression.  Add want_rval parm.  Handle
   4901 	template expression forms.  Don't enforce restriction on address
   4902 	of automatic variable here.  Add a couple of diagnostics that
   4903 	had been missing.
   4904 	(require_potential_constant_expression): New entry point.
   4905 	(build_data_member_initialization, register_constexpr_fundef): Adjust.
   4906 	(maybe_constant_value): Check potential_constant_expression.
   4907 	* pt.c (fold_non_dependent_expr_sfinae): Likewise.
   4908 	* tree.c (build_vec_init_expr): Adjust.
   4909 
   4910 2011-01-19  Jakub Jelinek  <jakub (a] redhat.com>
   4911 
   4912 	PR c++/47303
   4913 	* decl2.c (finish_anon_union): Only call mangle_decl if TREE_STATIC
   4914 	or DECL_EXTERNAL.
   4915 
   4916 2011-01-17  Jason Merrill  <jason (a] redhat.com>
   4917 
   4918 	PR c++/47067
   4919 	* semantics.c (base_field_constructor_elt): New fn.
   4920 	(cxx_eval_bare_aggregate): Use it.
   4921 	(build_data_member_initialization): Leave COMPONENT_REF for
   4922 	vfield inits.
   4923 
   4924 2011-01-14  Rodrigo Rivas Costa <rodrigorivascosta (a] gmail.com>
   4925 
   4926 	* parser.c (cp_parser_range_for): Remove the "unused variable" warning
   4927 	workaround.
   4928 
   4929 2011-01-15  Giovanni Funchal  <gafunchal (a] gmail.com>
   4930 	    Jonathan Wakely  <jwakely.gcc (a] gmail.com>
   4931 
   4932 	PR c++/33558
   4933 	* decl.c (grokdeclarator): Reject mutable reference members.
   4934 
   4935 2011-01-14  Jason Merrill  <jason (a] redhat.com>
   4936 
   4937 	PR c++/47289
   4938 	* pt.c (coerce_template_parms): Fix error recovery.
   4939 
   4940 	PR c++/46903
   4941 	* typeck2.c (check_narrowing): Only check arithmetic types.
   4942 
   4943 	PR c++/46688
   4944 	* tree.c (build_vec_init_expr): Handle flexible array
   4945 	properly.
   4946 
   4947 2011-01-13  Kai Tietz  <kai.tietz (a] onevision.com>
   4948 
   4949 	PR c++/47213
   4950 	* cp-tree.h (CLASSTYPE_VISIBILITY): Use
   4951 	TYPE_MAIN_DECL instead of TYPE_NAME.
   4952 	(CLASSTYPE_VISIBILITY_SPECIFIED): Likewise.
   4953 	* decl2.c (determine_visibility): Add check
   4954 	of CLASS_TYPE_P for underlying_type.
   4955 
   4956 2011-01-12  Rodrigo Rivas Costa <rodrigorivascosta (a] gmail.com>
   4957 
   4958 	* cp-tree.h (begin_for_scope): New prototype.
   4959 	(begin_for_stmt): Update prototype.
   4960 	(begin_range_for_stmt): Update prototype.
   4961 	* init.c (build_vec_init): Update call to begin_for_stmt.
   4962 	* parser.c (cp_parser_for): New.
   4963 	(cp_parser_c_for): Add three new parameters.
   4964 	(cp_parser_range_for): Likewise. Most parsing code removed.
   4965 	(cp_parser_iteration_statement): Call cp_parser_for instead of
   4966 	cp_parser_c_for and cp_parser_range_for.
   4967 	(cp_parser_for_init_statement): Add new parameter and return type.
   4968 	(cp_parser_block_declaration): Update call to
   4969 	cp_parser_simple_declaration.
   4970 	(cp_parser_simple_declaration): Add new parameter.
   4971 	Update call to cp_parser_init_declarator.
   4972 	(cp_parser_init_declarator): Add new parameter.
   4973 	* pt.c (tsubst_expr): Update call to begin_for_stmt.
   4974 	* semantics.c (begin_for_scope): New.
   4975 	(begin_for_stmt): Add two new parameters.
   4976 	(begin_range_for_stmt): Likewise.
   4977 
   4978 2011-01-12  Nicola Pero  <nicola.pero (a] meta-innovation.com>
   4979 
   4980 	* parser.c (cp_parser_objc_at_property_declaration): Improved
   4981 	error message.
   4982 
   4983 2011-01-11  Dodji Seketeli  <dodji (a] redhat.com>
   4984 
   4985 	PR debug/46955
   4986 	* cp-lang.c (get_template_innermost_arguments_folded)
   4987 	(get_template_argument_pack_elems_folded)
   4988 	(template_arg_needs_folding, fold_cplus_constants): New static
   4989 	functions.
   4990 	(LANG_HOOKS_GET_INNERMOST_GENERIC_ARGS): Set this hook to
   4991 	get_template_innermost_arguments_folded.
   4992 	(LANG_HOOKS_GET_ARGUMENT_PACK_ELEMS): Set this hook to
   4993 	get_template_argument_pack_elems_folded.
   4994 
   4995 2011-01-11  Jason Merrill  <jason (a] redhat.com>
   4996 
   4997 	PR c++/46658
   4998 	* init.c (build_new_1): Handle value-init in templates differently.
   4999 
   5000 	PR c++/45520
   5001 	* tree.c (maybe_dummy_object): Check current_class_ref against
   5002 	context, not current_class_type.
   5003 
   5004 2011-01-08  Nicola Pero  <nicola.pero (a] meta-innovation.com>
   5005 
   5006 	PR objc/47078
   5007 	* parser.c (cp_parser_objc_typename): If the type is unknown, for
   5008 	error recovery purposes behave as if it was not specified so that
   5009 	the default type is used.
   5010 
   5011 2011-01-07  Jakub Jelinek  <jakub (a] redhat.com>
   5012 
   5013 	PR c++/47022
   5014 	* pt.c (tsubst_copy_and_build): Use tsubst instead of tsubst_copy
   5015 	for the second build_x_va_arg argument.
   5016 
   5017 2011-01-05  Tom Tromey  <tromey (a] redhat.com>
   5018 
   5019 	* typeck.c (cp_build_addr_expr_1): Update call to lvalue_error.
   5020 	(lvalue_or_else): Likewise.
   5021 
   5022 2011-01-01  Kai Tietz  <kai.tietz (a] onevision.com>
   5023 
   5024 	PR target/38662
   5025 	* tree.c (cxx_type_hash_eq):
   5026 	Allow METHOD_TYPE, too.
   5027 
   5028 
   5030 Copyright (C) 2011 Free Software Foundation, Inc.
   5031 
   5032 Copying and distribution of this file, with or without modification,
   5033 are permitted in any medium without royalty provided the copyright
   5034 notice and this notice are preserved.
   5035