Commit Graph

123471 Commits

Author SHA1 Message Date
Jonathan Wakely a9769eb0d9 unique_ptr.h (make_unique): Define.
* include/bits/unique_ptr.h (make_unique): Define.
	* testsuite/20_util/unique_ptr/creation/single.cc: New.
	* testsuite/20_util/unique_ptr/creation/array.cc: New.
	* testsuite/20_util/unique_ptr/creation/array_neg.cc: New.

From-SVN: r199057
2013-05-18 16:07:02 +01:00
Richard Sandiford 8da2e0598d recog.h (Recog_data): Rename to...
gcc/
	* recog.h (Recog_data): Rename to...
	(recog_data_d): ...this.
	(recog_data): Update accordingly.
	* recog.c (recog_data): Likewise.
	* reload.c (save_recog_data): Likewise.
	* config/picochip/picochip.c (picochip_saved_recog_data): Likewise.
	(picochip_save_recog_data, picochip_restore_recog_data): Likewise.

From-SVN: r199050
2013-05-18 07:58:55 +00:00
Julian Brown 2df013f3cd gcse.c (compute_ld_motion_mems): If a non-simple MEM is found in a REG_EQUAL note, invalidate it.
* gcse.c (compute_ld_motion_mems): If a non-simple MEM is
       found in a REG_EQUAL note, invalidate it.

From-SVN: r199049
2013-05-17 21:48:18 -06:00
Easwaran Raman 933f507d1f tree-ssa-reassoc.c (find_insert_point): New function.
2013-05-17   Easwaran Raman  <eraman@google.com>

        * tree-ssa-reassoc.c (find_insert_point): New function.
        (insert_stmt_after): Likewise.
        (get_def_stmt): Likewise.
        (ensure_ops_are_available): Likewise.
        (not_dominated_by): Likewise.
        (rewrite_expr_tree): Do not move statements beyond what is
        necessary. Remove call to swap_ops_for_binary_stmt...
        (reassociate_bb): ... and move it here.
        (build_and_add_sum): Assign UIDs for new statements.
        (linearize_expr): Likewise.
        (do_reassoc): Renumber gimple statement UIDs.

testsuite/ChangeLog:

2013-05-17   Easwaran Raman  <eraman@google.com>

        * gcc.dg/tree-ssa/reassoc-28.c: New testcase.

From-SVN: r199048
2013-05-18 01:35:04 +00:00
GCC Administrator 1f2f6dc2bc Daily bump.
From-SVN: r199047
2013-05-18 00:16:44 +00:00
Jan Hubicka e01c7cca63 lto-symtab.c (lto_symtab_merge_cgraph_nodes): Resolve cross module weakrefs.
* lto-symtab.c (lto_symtab_merge_cgraph_nodes): Resolve cross module
	weakrefs.
	* cgraph.c (dump_cgraph_node): Do not ice on unresolved alias.
	* cgraphunit.c (handle_alias_pairs): Store target of unresolved weakrefs.
	(output_weakrefs): Update.

From-SVN: r199041
2013-05-17 22:20:58 +00:00
Jan Hubicka 8ee0505114 lto-partition.c (privatize_symbol_name): Return true when privatizing happened.
* lto-partition.c (privatize_symbol_name): Return true when
	privatizing happened.
	(rename_statics): Do not go into infinite loop when privatizing
	is not needed.

From-SVN: r199040
2013-05-17 22:15:47 +00:00
Po-Chun Chang c3272a921a re PR middle-end/57276 (Waste work in cgraph_edge_brings_all_agg_vals_for_node())
2013-05-17  Po-Chun Chang  <pchang9@cs.wisc.edu>
	    Martin Jambor  <mjambor@suse.cz>

	PR middle-end/57276
	* ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Break when a
	value that corresponds to the given aggval is found in values vector.


Co-Authored-By: Martin Jambor <mjambor@suse.cz>

From-SVN: r199035
2013-05-17 23:12:34 +02:00
Uros Bizjak 11c2aa3984 driver-i386.c (host_detect_local_cpu): Pass mmx, 3dnow, sse, sse2, sse3, ssse3 and sse4a flags to options.
* config/i386/driver-i386.c (host_detect_local_cpu): Pass mmx, 3dnow,
	sse, sse2, sse3, ssse3 and sse4a flags to options.

From-SVN: r199034
2013-05-17 22:09:01 +02:00
David Malcolm abecc8c689 gengtype-state.c: (s_expr_writer): New class, to handle prettifying of output layout of s-expressions.
2013-05-17  David Malcolm  <dmalcolm@redhat.com>

	* gengtype-state.c: (s_expr_writer): New class, to handle
	prettifying of output layout of s-expressions.
	(state_writer): New class, to write out gtype.state.
	(state_written_type_count): Move this variable into member data of
	state_writer.
	(s_expr_writer::s_expr_writer): New code: constructor for new class
	(state_writer::state_writer(): ditto
	(s_expr_writer::write_new_line): New function
	(s_expr_writer::write_any_indent): ditto
	(s_expr_writer::begin_s_expr): ditto
	(s_expr_writer::end_s_expr): ditto
	(write_state_fileloc): convert to method of state_writer...
	(state_writer:: write_state_fileloc): ...and use methods of
	s_expr_writer to write indentation into the gtype.state output file
	to visually represent the hierarchical structure of the list
	structures
	(write_state_fields): ditto, renaming to...
	(state_writer::write_state_fields)
	(write_state_a_string): ditto, renaming to...
	(state_writer::write_state_a_string)
	(write_state_string_option): ditto, renaming to...
	(state_writer::write_state_string_option)
	(write_state_type_option): ditto, renaming to...
	(state_writer::write_state_type_option)
	(write_state_nested_option): ditto, renaming to...
	(state_writer::write_state_nested_option)
	(write_state_option): ditto, renaming to...
	(state_writer::write_state_option)
	(write_state_options): ditto, renaming to...
	(state_writer::write_state_options)
	(write_state_lang_bitmap): ditto, renaming to...
	(state_writer::write_state_lang_bitmap)
	(write_state_version): ditto, renaming to...
	(state_writer::write_state_version)
	(write_state_scalar_type): ditto, renaming to...
	(state_writer::write_state_scalar_type)
	(write_state_string_type): ditto, renaming to...
	(state_writer::write_state_string_type)
	(write_state_undefined_type): ditto, renaming to...
	(state_writer::write_state_undefined_type)
	(write_state_struct_union_type): ditto, renaming to...
	(state_writer::write_state_struct_union_type)
	(write_state_struct_type): ditto, renaming to...
	(state_writer::write_state_struct_type)
	(write_state_user_struct_type): ditto, renaming to...
	(state_writer::write_state_user_struct_type)
	(write_state_lang_struct_type): ditto, renaming to...
	(state_writer::write_state_lang_struct_type)
	(write_state_param_struct_type): ditto, renaming to...
	(state_writer::write_state_param_struct_type)
	(write_state_pointer_type): ditto, renaming to...
	(state_writer::write_state_pointer_type)
	(write_state_array_type): ditto, renaming to...
	(state_writer::write_state_array_type)
	(write_state_gc_used): ditto, renaming to...
	(state_writer::write_state_gc_used)
	(write_state_common_type_content): ditto, renaming to...
	(state_writer::write_state_common_type_content)
	(write_state_type): ditto, renaming to...
	(state_writer::write_state_type)
	(write_state_pair_list): ditto, renaming to...
	(state_writer::write_state_pair_list)
	(write_state_pair): ditto, renaming to...
	(state_writer::write_state_pair)
	(write_state_typedefs): ditto, renaming to...
	(state_writer::write_state_typedefs)
	(write_state_structures): ditto, renaming to...
	(state_writer::write_state_structures)
	(write_state_param_structs): ditto, renaming to...
	(state_writer::write_state_param_structs)
	(write_state_variables): ditto, renaming to...
	(state_writer::write_state_variables)
	(write_state_srcdir): ditto, renaming to...
	(state_writer::write_state_srcdir)
	(write_state_files_list): ditto, renaming to...
	(state_writer::write_state_files_list)
	(write_state_languages): ditto, renaming to...
	(state_writer::write_state_languages)
	(write_state): create a state_writer instance and use it when
	writing out the state file

From-SVN: r199032
2013-05-17 19:23:35 +00:00
Mike Stump 816a3f7345 re PR rtl-optimization/57304 (Revision 198896 segfaults building cpu2000 benchmark 176.gcc)
PR rtl-optimization/57304
	* web.c (union_match_dups): Ensure that DF_REF_LOC exists before
	accessing DF_REF_REAL_LOC.

From-SVN: r199030
2013-05-17 19:12:14 +00:00
Mike Stump d6545f29e7 web.c (union_match_dups): Ensure that DF_REF_LOC exists before accessing DF_REF_REAL_LOC.
* web.c (union_match_dups): Ensure that DF_REF_LOC exists before
	accessing DF_REF_REAL_LOC.

From-SVN: r199029
2013-05-17 19:09:56 +00:00
David Malcolm 6db9ce91e4 MAINTAINERS (Write After Approval): Add myself.
* MAINTAINERS (Write After Approval): Add myself.

From-SVN: r199022
2013-05-17 15:53:09 +00:00
Marc Glisse 0cf5320ed7 re PR testsuite/57313 (gcc.dg/binop-xor3.c scan-tree-dump-times)
2013-05-17  Marc Glisse  <marc.glisse@inria.fr>

	PR testsuite/57313
	* gcc.dg/binop-xor3.c: Restrict to platforms known to work (x86).

From-SVN: r199020
2013-05-17 15:31:02 +00:00
Richard Henderson 0ec3322408 re PR target/49146 (segv from libgcc_s when raising an exception, or unwinding stack with backtrace with ms_abi)
PR target/49146

	* unwind-dw2.c (UNWIND_COLUMN_IN_RANGE): New macro.
	(execute_cfa_program): Use it when storing to fs->regs.

From-SVN: r199019
2013-05-17 08:27:37 -07:00
Jakub Jelinek 38c821cf31 re PR rtl-optimization/57281 (x86_64-linux loop fails to terminate at -O3 -m32)
PR rtl-optimization/57281
	PR rtl-optimization/57300
	* config/i386/i386.md (extendsidi2_1 dead reg splitter): Remove.
	(extendsidi2_1 peephole2s): Add instead 2 new peephole2s, that undo
	what the other splitter did if the registers are dead.

	* gcc.dg/pr57300.c: New test.
	* gcc.c-torture/execute/pr57281.c: New test.

From-SVN: r199018
2013-05-17 17:22:24 +02:00
Richard Biener 2a293391ec tree-ssa-alias.c (stmt_kills_ref_p_1): Properly compare MEM_REF offsets.
2013-05-17  Richard Biener  <rguenther@suse.de>

	* tree-ssa-alias.c (stmt_kills_ref_p_1): Properly compare
	MEM_REF offsets.

From-SVN: r199014
2013-05-17 12:47:45 +00:00
Paolo Carlini 38050e90ba re PR c++/18126 (sizeof compound-literal not parsed correctly)
/cp
2013-05-17  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/18126
	* parser.c (cp_parser_sizeof_operand): As a GNU Extension, parse
	correctly sizeof compound-literal; update comments.

/testsuite
2013-05-17  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/18126
	* g++.dg/ext/sizeof-complit.C: New.

From-SVN: r199012
2013-05-17 12:35:44 +00:00
Jakub Jelinek 17042d2b38 gcc.c (SANITIZER_SPEC): Reject -fsanitize=address -fsanitize=thread linking.
* gcc.c (SANITIZER_SPEC): Reject -fsanitize=address -fsanitize=thread
	linking.

From-SVN: r199009
2013-05-17 14:17:14 +02:00
Marek Polacek 5b115c1f2b Add tree-ssa-strlen optimization.
From-SVN: r199006
2013-05-17 09:32:01 +00:00
Jakub Jelinek 68119618f7 tree-vect-patterns.c (vect_recog_rotate_pattern): For vect_external_def oprnd1 with loop_vinfo...
* tree-vect-patterns.c (vect_recog_rotate_pattern): For
	vect_external_def oprnd1 with loop_vinfo, try to emit
	optional cast, negation and and stmts on the loop preheader
	edge instead of into the pattern def seq.

	* gcc.target/i386/rotate-4.c: Compile only with -mavx
	instead of -mavx2, require only avx instead of avx2.
	* gcc.target/i386/rotate-4a.c: Include avx-check.h instead
	of avx2-check.h and turn into an avx runtime test instead of
	avx2 runtime test.

From-SVN: r199005
2013-05-17 11:13:33 +02:00
Rainer Orth 0a91f65deb solaris_pow_int_overload should use __cplusplus
* inclhack.def (solaris_pow_int_overload): Update comment.
	Change guard to match <cmath>.
	* fixincl.x: Regenerate.
	* tests/base/iso/math_iso.h [SOLARIS_POW_INT_OVERLOAD_CHECK]:
	Matching change.

From-SVN: r199003
2013-05-17 08:39:37 +00:00
Jakub Jelinek 52d8441318 re PR tree-optimization/57051 (Optimization regression in 4.8.0 from 4.7.2)
PR tree-optimization/57051
	* fold-const.c (const_binop) <case VEC_LSHIFT_EXPR,
	case VEC_RSHIFT_EXPR>: Fix BYTES_BIG_ENDIAN handling.

From-SVN: r199002
2013-05-17 10:31:32 +02:00
Nick Clifton 17b962bd33 rl78.c (rl78_attribute_table): Add naked.
* config/rl78/rl78.c (rl78_attribute_table): Add naked.
	(rl78_is_naked_func): New function.
	(rl78_expand_prologue): Skip prologue generation for naked
	functions.
	(rl78_expand_epilogue): Skip epilogue generation for naked
	functions.
	* doc/extend.texi (naked): Add RL78 to the list of processors
	that supports this attribute.

From-SVN: r199001
2013-05-17 07:51:53 +00:00
Jeff Law b1a0f84edb * Makefile.in (tree-switch-conversion.o): Depend on $(OPTABS_H).
From-SVN: r198999
2013-05-16 21:32:23 -06:00
GCC Administrator 672f251e32 Daily bump.
From-SVN: r198997
2013-05-17 00:16:26 +00:00
Uros Bizjak cf92d7811d i386.c (ix86_option_override_internal): Add missing PTA_FXSR flag to Athlon-4.
* config/i386/i386.c (ix86_option_override_internal):
	Add missing PTA_FXSR flag to Athlon-4.

From-SVN: r198993
2013-05-17 00:41:55 +02:00
Uros Bizjak 5d280e2b26 i386.c (ix86_option_override_internal): Revert removal of Athlon-4 PTA_SSE flag.
* config/i386/i386.c (ix86_option_override_internal):
	Revert removal of Athlon-4 PTA_SSE flag.

From-SVN: r198992
2013-05-17 00:37:13 +02:00
Uros Bizjak af0e415bd0 driver-i386.c (host_detect_local_cpu): Determine cache parameters using detect_caches_amd also for CYRIX...
* config/i386/driver-i386.c (host_detect_local_cpu): Determine
	cache parameters using detect_caches_amd also for CYRIX,
	NSC and TM2 signatures.

From-SVN: r198989
2013-05-16 23:41:26 +02:00
Marc Glisse 749dee7e60 call.c (build_conditional_expr_1): Use cp_build_binary_op instead of directly calling fold_build2.
2013-05-16  Marc Glisse  <marc.glisse@inria.fr>

gcc/cp/
	* call.c (build_conditional_expr_1): Use cp_build_binary_op
	instead of directly calling fold_build2.

gcc/testsuite/
	* g++.dg/ext/vector22.C: Uncomment working test.

From-SVN: r198988
2013-05-16 20:32:42 +00:00
Uros Bizjak 19db293ad5 re PR target/45359 (poor -march=native choices for VIA C7 Esther processors)
PR target/45359
	PR target/46396
	* config/i386/driver-i386.c (host_detect_local_cpu): Detect
	VIA/Centaur processors and determine their cache parameters
	using detect_caches_amd.


Co-Authored-By: Dzianis Kahanovich <mahatma@eu.by>

From-SVN: r198987
2013-05-16 21:53:36 +02:00
Teresa Johnson 251a41b978 cfgrtl.c (verify_hot_cold_block_grouping): Return err.
2013-05-16  Teresa Johnson  <tejohnson@google.com>

	* cfgrtl.c (verify_hot_cold_block_grouping): Return err.
	(rtl_verify_edges): New function.
	(rtl_verify_bb_insns): Ditto.
	(rtl_verify_bb_pointers): Ditto.
	(rtl_verify_bb_insn_chain): Ditto.
	(rtl_verify_fallthru): Ditto.
	(rtl_verify_bb_layout): Ditto.
	(rtl_verify_flow_info_1): Outline checks into new functions.
	(rtl_verify_flow_info): Ditto.

From-SVN: r198982
2013-05-16 17:45:35 +00:00
Jason Merrill 1e5b06335f add quotes
From-SVN: r198981
2013-05-16 13:41:13 -04:00
Steve Ellcey f14540b635 cfghooks.c (copy_bbs): Add update_dominance argument.
2013-05-16  Steve Ellcey  <sellcey@imgtec.com>

	* cfghooks.c (copy_bbs): Add update_dominance argument.
	* cfghooks.h (copy_bbs): Update prototype.
	* tree-cfg.c (gimple_duplicate_sese_region):
	Add update_dominance argument.
	* tree-flow.h (gimple_duplicate_sese_region): Update prototype.
	* tree-ssa-loop-ch.c (copy_loop_headers): Update
	gimple_duplicate_sese_region call.
	* tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg):
	Update copy_bbs call.
	* cfgloopmanip.c (duplicate_loop_to_header_edge): Ditto.
	* trans-mem.c (ipa_uninstrument_transaction): Ditto.

From-SVN: r198980
2013-05-16 17:09:40 +00:00
Paolo Carlini 45f9820f00 re PR c++/17410 (Specialization of nested template rejected because of unrelated declaration)
2013-05-16  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/17410
	* g++.dg/template/pr17410.C: New.

From-SVN: r198979
2013-05-16 16:56:08 +00:00
Jakub Jelinek 7e9a3abbb8 tree-vectorizer.h (NUM_PATTERNS): Increment.
* tree-vectorizer.h (NUM_PATTERNS): Increment.
	* tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
	vect_recog_rotate_pattern.
	(vect_recog_rotate_pattern): New function.

	* gcc.target/i386/rotate-3.c: New test.
	* gcc.target/i386/rotate-3a.c: New test.
	* gcc.target/i386/rotate-4.c: New test.
	* gcc.target/i386/rotate-4a.c: New test.
	* gcc.target/i386/rotate-5.c: New test.
	* gcc.target/i386/rotate-5a.c: New test.

From-SVN: r198978
2013-05-16 18:24:19 +02:00
Jason Merrill 427b248dd0 Makefile.in (LLINKER): New variable.
* Makefile.in (LLINKER): New variable.
	(mostlyclean): Remove link mutex.
	* configure.ac: Handle --enable-link-mutex.
	* lock-and-run.sh: New script.

From-SVN: r198977
2013-05-16 11:09:31 -04:00
Jason Merrill 11678eb383 re PR c++/57279 ([C++11] alias declaration fails to declare function types with cv-qualifiers)
PR c++/57279
	* decl.c (grokdeclarator): Allow member function qualifiers in
	TYPENAME context.

From-SVN: r198975
2013-05-16 11:03:25 -04:00
Rainer Orth f999cd107a Require section_anchors in gcc.dg/visibility-21.c
* gcc.dg/visibility-21.c: Require section_anchors.

From-SVN: r198974
2013-05-16 14:39:21 +00:00
Ramana Radhakrishnan b871e3d225 Fix breakage with missing decl check for arm-none-eabi builds.
2013-05-16  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	PR target/19599
	* config/arm/arm.c (arm_function_ok_for_sibcall): Add check
	for NULL decl.

From-SVN: r198973
2013-05-16 14:31:24 +00:00
Rainer Orth ce85812624 Restore bootstrap on non-cc0 targets
* reorg.c (link_cc0_insns): Wrap in #ifdef HAVE_cc0.

From-SVN: r198971
2013-05-16 12:52:18 +00:00
Greta Yorsh 798d3d0454 Internal memcpy using LDRD/STRD
2013-05-16  Greta Yorsh  <Greta.Yorsh@arm.com>

gcc/

	* config/arm/arm-protos.h (gen_movmem_ldrd_strd): New declaration.
	* config/arm/arm.c (next_consecutive_mem): New function.
	(gen_movmem_ldrd_strd): Likewise.
	* config/arm/arm.md (movmemqi): Update condition and code.
	(unaligned_loaddi, unaligned_storedi): New patterns.

gcc/testsuite

	* gcc.target/arm/unaligned-memcpy-2.c: Adjust expected output.
	* gcc.target/arm/unaligned-memcpy-3.c: Likewise.
	* gcc.target/arm/unaligned-memcpy-4.c: Likewise.

From-SVN: r198970
2013-05-16 13:02:06 +01:00
Rainer Orth 0baddc4592 Obsolete Solaris 9 support
gcc:
	* config.gcc: Obsolete *-*-solaris2.9*.
	* doc/install.texi (Specific, *-*-solaris2*): Document it.

	contrib:
	* config-list.mk (LIST): Add -enable-obsolete for
	sparc-sun-solaris2.9, i686-solaris2.9.

From-SVN: r198969
2013-05-16 11:36:39 +00:00
Richard Biener aa9d5bcf37 passes.c (init_optimization_passes): Move pass_parallelize_loops earlier...
2013-05-16  Richard Biener  <rguenther@suse.de>

	* passes.c (init_optimization_passes): Move pass_parallelize_loops
	earlier, after GRAPHITE transforms and IV canonicalization.

From-SVN: r198968
2013-05-16 11:19:40 +00:00
Jakub Jelinek 5a0f4dd395 omp-low.c (extract_omp_for_data): For collapsed loops...
* omp-low.c (extract_omp_for_data): For collapsed loops,
	if at least one of the loops is known at compile time to
	iterate zero times, set count to 0.
	(expand_omp_regimplify_p): New function.
	(expand_omp_for_generic): For collapsed loops, if at least
	one of the loops isn't known to iterate at least once,
	add runtime check with setting count to 0.
	(expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
	For unsigned types if it isn't known at compile time that
	the loop will iterate at least once, add runtime check to bypass
	the whole loop if initial condition isn't true.

	* testsuite/libgomp.c/loop-13.c: New test.
	* testsuite/libgomp.c/loop-14.c: New test.
	* testsuite/libgomp.c/loop-15.c: New test.
	* testsuite/libgomp.c++/loop-13.C: New test.
	* testsuite/libgomp.c++/loop-14.C: New test.
	* testsuite/libgomp.c++/loop-15.C: New test.

From-SVN: r198966
2013-05-16 12:43:33 +02:00
Nathan Sidwell e375378583 varasm.c (default_use_anchors_for_symbol_p): Use decl_replaceable_p.
gcc/
	* varasm.c (default_use_anchors_for_symbol_p): Use decl_replaceable_p.

	gcc/testsuite/
	* gcc.dg/visibility-21.c: New.

From-SVN: r198965
2013-05-16 10:29:42 +00:00
Marc Glisse 43bb4dd14d re PR middle-end/57286 (infinite recursion in fold-const.c:10037)
2013-05-16  Marc Glisse  <marc.glisse@inria.fr>

	PR middle-end/57286
gcc/
	* fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Disable some
	transformations to avoid an infinite loop.

gcc/testsuite/
	* gcc.dg/pr57286.c: New testcase.
	* gcc.dg/vector-shift-2.c: Don't assume int has size 4.
	* g++.dg/ext/vector22.C: Comment out transformations not
	performed anymore.

From-SVN: r198964
2013-05-16 10:26:51 +00:00
Marek Polacek 3571dde6ea Add SCEV cprop dumping.
From-SVN: r198963
2013-05-16 09:23:47 +00:00
Dodji Seketeli f5b6d0d1d2 PR c++/56782 - Regression with empty pack expansions
In the example of the patch below, during the instantiation of
is_convertible at #1, we see at some point Tuple<>.  (Let's note '{}'
an empty argument pack.)  In that context, during the partial
specialization the member template

template<class... U>
Tuple<>::Tuple<U,
	       typename enable_if<and_<is_convertible<U, {}>...
                                      >::value,
                                  int
			         >::type
              >

Let's look at what happens to the expansion "is_convertible<U, {}>...."

To express the result of that expansion tsubst_pack_expansion receives
the expansion is_convertible<U, T>, with the argument list [{}].  This
function should detect that we have an empty argument pack for the
parameter pack T and no argument pack for the parameter pack U.  It
should thus return a pack expansion "is_convertible<U,T>..." that has this
information: "I have gotten an argument list, that is not complete
because U doesn't have any argument pack; the argument pack for T is
'{}', so I'll wait for the next time I am passed to
tsubst_pack_expansion with enough additional argument packs, to really
perform the substitution".  That information is conveyed by attaching
the the '{}' to the PACK_EXPANSION_EXTRA property of the pack expansion
returned by tsubst_pack_expansion.

The problem in this report is that we are not setting
PACK_EXPANSION_EXTRA when the non-complete argument pack list is made
of an empty argument pack, because use_pack_expansion_extra_args_p
doesn't detect this case.

Fixed thus.

gcc/cp/

	* pt.c (use_pack_expansion_extra_args_p): When at least a
	parameter pack has an empty argument pack, and another parameter
	pack has no argument pack at all, use the PACK_EXPANSION_EXTRA
	mechanism.

From-SVN: r198956
2013-05-16 08:14:49 +02:00
GCC Administrator ad56ed7ebc Daily bump.
From-SVN: r198955
2013-05-16 00:16:28 +00:00