1. 30 May, 2014 18 commits
    • sanitizer.def (BUILT_IN_ASAN_REPORT_LOAD_N, [...]): New. · 40f9f6bb
      	* sanitizer.def (BUILT_IN_ASAN_REPORT_LOAD_N,
      	BUILT_IN_ASAN_REPORT_STORE_N): New.
      	* asan.c (struct asan_mem_ref): Change access_size type to
      	HOST_WIDE_INT.
      	(asan_mem_ref_init, asan_mem_ref_new, get_mem_refs_of_builtin_call,
      	update_mem_ref_hash_table): Likewise.
      	(asan_mem_ref_hasher::hash): Hash in a HWI.
      	(report_error_func): Change size_in_bytes argument to HWI.
      	Use *_N builtins if size_in_bytes is larger than 16 or not power of
      	two.
      	(build_shadow_mem_access): New function.
      	(build_check_stmt): Use it.  Change size_in_bytes argument to HWI.
      	Handle size_in_bytes not power of two or larger than 16.
      	(instrument_derefs): Don't give up if size_in_bytes is not
      	power of two or is larger than 16.
      
      From-SVN: r211091
      Jakub Jelinek committed
    • asan_test.C: Add -std=c++11 and -DSANITIZER_USE_DEJAGNU_GTEST=1 to dg-options... · 8465be9f
      	* g++.dg/asan/asan_test.C: Add -std=c++11 and
      	-DSANITIZER_USE_DEJAGNU_GTEST=1 to dg-options, remove
      	-DASAN_USE_DEJAGNU_GTEST=1.
      	* g++.dg/asan/asan_mem_test.cc: Updated from upstream
      	r209283.
      	* g++.dg/asan/asan_oob_test.cc: Likewise.
      	* g++.dg/asan/sanitizer_test_utils.h: Likewise.
      	* g++.dg/asan/asan_str_test.cc: Likewise.
      	* g++.dg/asan/asan_test_utils.h: Likewise.
      	* g++.dg/asan/sanitizer_test_config.h: Likewise.
      	* g++.dg/asan/asan_test.cc: Likewise.  Allow size 12
      	for long double.
      	* g++.dg/asan/sanitizer_pthread_wrappers.h: New file.
      	Imported from upstream r209283.
      	* g++.dg/asan/asan_test_config.h: Likewise.
      
      From-SVN: r211090
      Jakub Jelinek committed
    • re PR target/60104 (load not folded into indirect branch on x86-64) · cb105922
      	PR target/60104
      	* config/i386/i386.c (x86_output_mi_thunk): Add memory case
      	for sibling-tail-calls.
      	* config/i386/i386.md (sibcall_insn_operand): Add memory-constrain
      	to its use.
      	* config/i386/predicates.md (sibcall_memory_operand): New predicate.
      	(sibcall_insn_operand): Add check for sibcall_memory_operand.
      
      	PR target/60104
      	* gcc.target/i386/sibcall-1.c: New test.
      	* gcc.target/i386/sibcall-2.c: New test.
      	* gcc.target/i386/sibcall-3.c: New test.
      	* gcc.target/i386/sibcall-4.c: New test.
      
      From-SVN: r211089
      Kai Tietz committed
    • re PR libstdc++/61011 (libstdc++-v3 should be target-libstdc++-v3 in top level configure) · 1007a55c
      	PR libstdc++/61011
      	* configure.ac (--disable-libstdcxx): Set noconfigdirs correctly.
      	Disable libcilkrts, libitm, libsanitizer when not building libstdc++.
      	* configure: Regenerate.
      
      From-SVN: r211087
      Jonathan Wakely committed
    • appendix_contributing.xml (list.copyright): Replace Benjamin's old email address. · 2c936344
      	* doc/xml/manual/appendix_contributing.xml (list.copyright): Replace
      	Benjamin's old email address.
      
      From-SVN: r211086
      Jonathan Wakely committed
    • avr-mcus.def: Change ATA6289 ISA to AVR4 · 150e0639
      	* config/avr/avr-mcus.def: Change ATA6289 ISA to AVR4
      	* config/avr/avr-tables.opt: Regenerate.
      	* config/avr/t-multilib: Regenerate.
      	* doc/avr-mmcu.texi: Regenerate.
      
      From-SVN: r211085
      Pitchumani Sivanupandi committed
    • re PR c++/60992 (ICE in tsubst_copy, at cp/pt.c:12637) · d1a902a2
      	PR c++/60992
      	* pt.c (tsubst_init): Split out from...
      	(tsubst_expr) [DECL_EXPR]: Here.
      	(tsubst_copy) [VAR_DECL]: Use it.
      	* semantics.c (finish_id_expression): Return the decl for static/const.
      
      From-SVN: r211084
      Jason Merrill committed
    • runtime: Use _mm_pause rather than __builtin_ia32_pause. · 7480a39b
      Based on a patch from Peter Collingbourne.
      
      From-SVN: r211081
      Ian Lance Taylor committed
    • sanitizer_stacktrace.cc: Cherry pick upstream r209879. · ecd5543f
      	* sanitizer_common/sanitizer_stacktrace.cc: Cherry pick upstream
      	r209879.
      	* sanitizer_common/sanitizer_common.h: Likewise.
      	* asan/asan_mapping.h: Likewise.
      	* asan/asan_linux.cc: Likewise.
      	* tsan/tsan_mman.cc: Cherry pick upstream r209744.
      	* sanitizer_common/sanitizer_allocator.h: Likewise.
      
      From-SVN: r211080
      Jakub Jelinek committed
    • xmmintrin.h (_mm_pause): Move out of scope of pragma target("sse"). · f9a8f6d9
      gcc/:
      	* config/i386/xmmintrin.h (_mm_pause): Move out of scope of pragma
      	target("sse").
      testsuite/:
      	* gcc.target/i386/pause-2.c: New test.
      
      From-SVN: r211079
      Ian Lance Taylor committed
    • -fuse-caller-save - Enable for i386 · 5028356f
      2014-05-30  Tom de Vries  <tom@codesourcery.com>
      
      	* config/i386/i386.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
      	Redefine as true.
      
      	* gcc.target/i386/fuse-caller-save.c: New test.
      	* gcc.dg/ira-shrinkwrap-prep-1.c: Run with -fno-use-caller-save.
      	* gcc.dg/ira-shrinkwrap-prep-2.c: Same.
      
      From-SVN: r211078
      Tom de Vries committed
    • libstdc++.exp (libstdc++_init): Adjust regexp to work with previous versions of Tcl. · 29f09521
      	* testsuite/lib/libstdc++.exp (libstdc++_init): Adjust regexp to
      	work with previous versions of Tcl.
      
      From-SVN: r211077
      Jonathan Wakely committed
    • * generate_libstdcxx_web_docs: New script. · 269cf22b
      From-SVN: r211076
      Jonathan Wakely committed
    • Add execution tests of ARM REV intrinsics. · a523dac2
      	gcc.target/arm/simd/vrev16p8_1.c: New file.
      	gcc.target/arm/simd/vrev16qp8_1.c: New file.
      	gcc.target/arm/simd/vrev16qs8_1.c: New file.
      	gcc.target/arm/simd/vrev16qu8_1.c: New file.
      	gcc.target/arm/simd/vrev16s8_1.c: New file.
      	gcc.target/arm/simd/vrev16u8_1.c: New file.
      	gcc.target/arm/simd/vrev32p16_1.c: New file.
      	gcc.target/arm/simd/vrev32p8_1.c: New file.
      	gcc.target/arm/simd/vrev32qp16_1.c: New file.
      	gcc.target/arm/simd/vrev32qp8_1.c: New file.
      	gcc.target/arm/simd/vrev32qs16_1.c: New file.
      	gcc.target/arm/simd/vrev32qs8_1.c: New file.
      	gcc.target/arm/simd/vrev32qu16_1.c: New file.
      	gcc.target/arm/simd/vrev32qu8_1.c: New file.
      	gcc.target/arm/simd/vrev32s16_1.c: New file.
      	gcc.target/arm/simd/vrev32s8_1.c: New file.
      	gcc.target/arm/simd/vrev32u16_1.c: New file.
      	gcc.target/arm/simd/vrev32u8_1.c: New file.
      	gcc.target/arm/simd/vrev64f32_1.c: New file.
      	gcc.target/arm/simd/vrev64p16_1.c: New file.
      	gcc.target/arm/simd/vrev64p8_1.c: New file.
      	gcc.target/arm/simd/vrev64qf32_1.c: New file.
      	gcc.target/arm/simd/vrev64qp16_1.c: New file.
      	gcc.target/arm/simd/vrev64qp8_1.c: New file.
      	gcc.target/arm/simd/vrev64qs16_1.c: New file.
      	gcc.target/arm/simd/vrev64qs32_1.c: New file.
      	gcc.target/arm/simd/vrev64qs8_1.c: New file.
      	gcc.target/arm/simd/vrev64qu16_1.c: New file.
      	gcc.target/arm/simd/vrev64qu32_1.c: New file.
      	gcc.target/arm/simd/vrev64qu8_1.c: New file.
      	gcc.target/arm/simd/vrev64s16_1.c: New file.
      	gcc.target/arm/simd/vrev64s32_1.c: New file.
      	gcc.target/arm/simd/vrev64s8_1.c: New file.
      	gcc.target/arm/simd/vrev64u16_1.c: New file.
      	gcc.target/arm/simd/vrev64u32_1.c: New file.
      	gcc.target/arm/simd/vrev64u8_1.c: New file.
      
      From-SVN: r211075
      Alan Lawrence committed
    • -fuse-caller-save - Support in lra · 10e1bdb2
      2014-05-30  Tom de Vries  <tom@codesourcery.com>
      
      	* lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
      	* lra.c (initialize_lra_reg_info_element): Add init of
      	actual_call_used_reg_set field.
      	(lra): Call lra_create_live_ranges before lra_inheritance for
      	-fuse-caller-save.
      	* lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
      	-fuse-caller-save.
      	* lra-constraints.c (need_for_call_save_p): Use actual_call_used_reg_set
      	instead of call_used_reg_set for -fuse-caller-save.
      	* lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
      
      From-SVN: r211074
      Tom de Vries committed
    • [ARM] Use mov_imm type for movw operations consistently · 56912037
      	* config/arm/thumb2.md (*thumb2_movhi_insn): Set type of movw
      	to mov_imm.
      	* config/arm/vfp.md (*thumb2_movsi_vfp): Likewise.
      
      From-SVN: r211073
      Kyrylo Tkachov committed
    • ira.c (ira_get_dup_out_num): Check for output operands at the start of the loop. · 98f2f031
      gcc/
      	* ira.c (ira_get_dup_out_num): Check for output operands at
      	the start of the loop.  Handle cases where an included alternative
      	follows an excluded one.
      
      From-SVN: r211072
      Richard Sandiford committed
    • Daily bump. · 3901578c
      From-SVN: r211071
      GCC Administrator committed
  2. 29 May, 2014 15 commits
    • re PR target/61352 (gcc 4.9.0 fails to execute dsymutil when linking executables on darwin) · 79abf19f
      	PR debug/61352
      	* collect2.c (maybe_run_lto_and_relink): Be sure to always run
      	post ld passes when lto is used.
      
      From-SVN: r211067
      Mike Stump committed
    • runtime: add the --without-libatomic configure option · 9a85ed03
      This adds the --without-libatomic configure option, which is useful for building libgo
      with a non-gcc compiler.
      
      It disables libgo's dependency on libatomic. This
      is useful for platforms where it is known that the libatomic runtime
      functions are not required, or where the compiler automatically
      provides an implementation of them.
      
      From-SVN: r211065
      Ian Lance Taylor committed
    • re PR rtl-optimization/61325 (aarch64_be build fails) · cc8849a1
      2014-05-29  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR rtl-optimization/61325
      	* lra-constraints.c (process_address): Rename to
      	process_address_1.
      	(process_address): New function.
      
      2014-05-29  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR rtl-optimization/61325
      	* gcc.target/aarch64/pr61325.c: New.
      
      From-SVN: r211061
      Vladimir Makarov committed
    • Add execution tests of ARM EXT intrinsics · e4c03722
      	gcc.target/arm/simd/vextQf32_1.c: New file.
      	gcc.target/arm/simd/vextQp16_1.c: New file.
      	gcc.target/arm/simd/vextQp8_1.c: New file.
      	gcc.target/arm/simd/vextQs16_1.c: New file.
      	gcc.target/arm/simd/vextQs32_1.c: New file.
      	gcc.target/arm/simd/vextQs64_1.c: New file.
      	gcc.target/arm/simd/vextQs8_1.c: New file.
      	gcc.target/arm/simd/vextQu16_1.c: New file.
      	gcc.target/arm/simd/vextQu32_1.c: New file.
      	gcc.target/arm/simd/vextQu64_1.c: New file.
      	gcc.target/arm/simd/vextQu8_1.c: New file.
      	gcc.target/arm/simd/vextQp64_1.c: New file.
      	gcc.target/arm/simd/vextf32_1.c: New file.
      	gcc.target/arm/simd/vextp16_1.c: New file.
      	gcc.target/arm/simd/vextp8_1.c: New file.
      	gcc.target/arm/simd/vexts16_1.c: New file.
      	gcc.target/arm/simd/vexts32_1.c: New file.
      	gcc.target/arm/simd/vexts64_1.c: New file.
      	gcc.target/arm/simd/vexts8_1.c: New file.
      	gcc.target/arm/simd/vextu16_1.c: New file.
      	gcc.target/arm/simd/vextu32_1.c: New file.
      	gcc.target/arm/simd/vextu64_1.c: New file.
      	gcc.target/arm/simd/vextu8_1.c: New file.
      	gcc.target/arm/simd/vextp64_1.c: New file.
      
      From-SVN: r211059
      Alan Lawrence committed
    • Detect EXT patterns to vec_perm_const, use for EXT intrinsics · ae0533da
              * config/aarch64/aarch64-builtins.c (aarch64_types_binopv_qualifiers,
              TYPES_BINOPV): New static data.
              * config/aarch64/aarch64-simd-builtins.def (im_lane_bound): New builtin.
              * config/aarch64/aarch64-simd.md (aarch64_ext, aarch64_im_lane_boundsi):
              New patterns.
              * config/aarch64/aarch64.c (aarch64_expand_vec_perm_const_1): Match
              patterns for EXT.
              (aarch64_evpc_ext): New function.
      
              * config/aarch64/iterators.md (UNSPEC_EXT): New enum element.
      
              * config/aarch64/arm_neon.h (vext_f32, vext_f64, vext_p8, vext_p16,
              vext_s8, vext_s16, vext_s32, vext_s64, vext_u8, vext_u16, vext_u32,
              vext_u64, vextq_f32, vextq_f64, vextq_p8, vextq_p16, vextq_s8,
              vextq_s16, vextq_s32, vextq_s64, vextq_u8, vextq_u16, vextq_u32,
              vextq_u64): Replace __asm with __builtin_shuffle and im_lane_boundsi.
      
      From-SVN: r211058
      Alan Lawrence committed
    • Fix rtl-check build · ed00b1fb
      2014-05-29  Tom de Vries  <tom@codesourcery.com>
      
      	* rtl.h (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_FLAGS.
      
      From-SVN: r211057
      Tom de Vries committed
    • bool_set: Use UTF-8 for accented characters. · 710d672b
      	* include/tr2/bool_set: Use UTF-8 for accented characters.
      	* scripts/run_doxygen: Handle Doxygen 1.8.x change.
      	* doc/doxygen/user.cfg.in: Update to Doxygen 1.8.6 format. Set
      	QUIET=YES, remove obsolete SYMBOL_CACHE_SIZE tag.
      
      From-SVN: r211053
      Jonathan Wakely committed
    • extend.texi: Rewrite inline asm page / re-org asm-related pages. · 2556511e
      2014-05-09  David Wohlferd <LimeGreenSocks@yahoo.com>
      	Andrew Haley <aph@redhat.com>
      	Richard Sandiford <rdsandiford@googlemail.com>
      
      	* doc/extend.texi: Rewrite inline asm page / re-org asm-related
      	pages.
      
      From-SVN: r211051
      David Wohlferd committed
    • iterators.md (shiftable_ops): New code iterator. · 004d3809
              * arm/iterators.md (shiftable_ops): New code iterator.
              (t2_binop0, arith_shift_insn): New code attributes.
      	* arm/predicates.md (shift_nomul_operator): New predicate.
              * arm/arm.md (insn_enabled): Delete.
              (enabled): Remove insn_enabled test.
              (*arith_shiftsi): Delete.  Replace with ...
              (*<arith_shift_insn>_multsi): ... new pattern.
      	(*<arith_shift_insn>_shiftsi): ... new pattern.
      	* config/arm/arm.c (arm_print_operand): Handle operand format 'b'.
      
      Co-Authored-By: Richard Sandiford <rdsandiford@googlemail.com>
      
      From-SVN: r211050
      Richard Earnshaw committed
    • -fuse-caller-save - Enable for MIPS · c2db3f3d
      2014-05-29  Radovan Obradovic  <robradovic@mips.com>
                  Tom de Vries  <tom@codesourcery.com>
      
      	* config/mips/mips.h (POST_CALL_TMP_REG): Define.
      	* config/mips/mips.c (mips_emit_call_insn): Add POST_CALL_TMP_REG
      	clobber.
      	(mips_split_call): Use POST_CALL_TMP_REG.
      	(TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine to true.
      
      	* gcc.target/mips/mips.exp: Add use-caller-save to -ffoo/-fno-foo
      	options.
      	* gcc.target/mips/fuse-caller-save.h: New include file.
      	* gcc.target/mips/fuse-caller-save.c: New test.
      	* gcc.target/mips/fuse-caller-save-mips16.c: Same.
      	* gcc.target/mips/fuse-caller-save-micromips.c: Same.
      
      Co-Authored-By: Tom de Vries <tom@codesourcery.com>
      
      From-SVN: r211049
      Radovan Obradovic committed
    • pr52252-ld.c: Fix target and options for the test. · 41455f89
      gcc/testsuite/
              * gcc.dg/vect/pr52252-ld.c: Fix target and options for the test.
      
      From-SVN: r211048
      Evgeny Stupachenko committed
    • Fix bootstrap on powerpc64le-linux-gnu · 4b29b965
      2014-05-29  Tom de Vries  <tom@codesourcery.com>
      
      	* final.c (collect_fn_hard_reg_usage): Guard variable declaration
      	with #ifdef STACK_REGS.
      
      From-SVN: r211047
      Tom de Vries committed
    • varasm.c (get_variable_section): Walk aliases. · 726f0774
      
      	* varasm.c (get_variable_section): Walk aliases.
      	(place_block_symbol): Walk aliases.
      
      From-SVN: r211045
      Jan Hubicka committed
    • Daily bump. · 88650827
      From-SVN: r211041
      GCC Administrator committed
    • runtime: disable split stacks for runtime_printf function under Clang · d76a1885
      LLVM's code generator does not currently support split stacks for vararg
      functions, so we disable split stacks for the only function that uses this
      feature under Clang. This appears to be OK as long as:
      - this function only calls non-inlined, internal-linkage (hence no dynamic
        loader) functions compiled with split stacks (i.e. go_vprintf), which can
        allocate more stack space as required;
      - this function itself does not occupy more than BACKOFF bytes of stack space
        (see libgcc/config/i386/morestack.S).
      These conditions are currently known to be satisfied by Clang on x86-32 and
      x86-64. Note that signal handlers receive slightly less stack space than they
      would normally do if they happen to be called while this function is being
      run. If this turns out to be a problem we could consider increasing BACKOFF.
      
      From-SVN: r211037
      Ian Lance Taylor committed
  3. 28 May, 2014 7 commits
    • runtime: fix misc gcc-isms and undefined behavior · 93c521ea
      This includes the use of __complex and __builtin_ functions where
      unprefixed entities would suffice, and the use of a union for
      bit-casting between types.
      
      From-SVN: r211036
      Ian Lance Taylor committed
    • Fix demangler testsuite crashes with CP_DEMANGLE_DEBUG defined · bc2eed9a
      Running the demangler's testsuite with CP_DEMANGLE_DEBUG defined
      crashes, with:
      
       Program received signal SIGSEGV, Segmentation fault.
       0x000000000040a8c3 in d_dump (dc=0x1, indent=12) at ../../src/libiberty/cp-demangle.c:567
       567       switch (dc->type)
      
       (gdb) bt 3
       #0  0x000000000040a8c3 in d_dump (dc=0x1, indent=12) at ../../src/libiberty/cp-demangle.c:567
       #1  0x000000000040ae47 in d_dump (dc=0x7fffffffd098, indent=10) at ../../src/libiberty/cp-demangle.c:787
       #2  0x000000000040ae47 in d_dump (dc=0x7fffffffd0c8, indent=8) at ../../src/libiberty/cp-demangle.c:787
      
      Note dc=0x1, which is obviously a bogus pointer.  This is the end of
      d_dump recursing for a component type that that doesn't actually have
      subtrees:
      
       787       d_dump (d_left (dc), indent + 2);
       788       d_dump (d_right (dc), indent + 2);
      
      This fixes the two cases the testsuite currently trips on.
      
      libiberty/
      2014-05-28  Pedro Alves  <palves@redhat.com>
      
      	* cp-demangle.c (d_dump): Handle DEMANGLE_COMPONENT_FUNCTION_PARAM
      	and DEMANGLE_COMPONENT_NUMBER.
      
      From-SVN: r211035
      Pedro Alves committed
    • Add myself to MAINTAINERS. · fd9ed1ae
      2014-05-28  Pedro Alves  <palves@redhat.com>
      
      	* MAINTAINERS (Write After Approval): Add myself.
      
      From-SVN: r211034
      Pedro Alves committed
    • revert: lra-int.h (struct lra_reg): Add field actual_call_used_reg_set. · ea0b381f
      2014-05-28  Tom de Vries  <tom@codesourcery.com>
      
      	Revert:
      	2014-05-28  Tom de Vries  <tom@codesourcery.com>
      
      	* lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
      	* lra.c (initialize_lra_reg_info_element): Add init of
      	actual_call_used_reg_set field.
      	(lra): Call lra_create_live_ranges before lra_inheritance for
      	-fuse-caller-save.
      	* lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
      	-fuse-caller-save.
      	* lra-constraints.c (need_for_call_save_p): Use actual_call_used_reg_set
      	instead of call_used_reg_set for -fuse-caller-save.
      	* lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
      
      From-SVN: r211033
      Tom de Vries committed
    • md.texi: Document that the % constraint character must be at the beginning of the string. · 73f793e3
      gcc/
      	* doc/md.texi: Document that the % constraint character must
      	be at the beginning of the string.
      	* genoutput.c (validate_insn_alternatives): Check that '=',
      	'+' and '%' only appear at the beginning of a constraint.
      	* ira.c (commutative_constraint_p): Delete.
      	(ira_get_dup_out_num): Expect the '%' commutativity marker to be
      	at the start of the string.
      	* config/alpha/alpha.md (*movmemdi_1, *clrmemdi_1): Remove
      	duplicate '='s.
      	* config/arm/neon.md (bicdi3_neon): Likewise.
      	* config/iq2000/iq2000.md (addsi3_internal, subsi3_internal, sgt_si)
      	(slt_si, sltu_si): Likewise.
      	* config/vax/vax.md (sbcdi3): Likewise.
      	* config/h8300/h8300.md (*cmpstz): Remove duplicate '+'.
      	* config/arc/arc.md (mulsi_600, mulsidi_600, umulsidi_600)
      	(mul64): Move '%' to beginning of constraint.
      	* config/arm/arm.md (*xordi3_insn): Likewise.
      	* config/nds32/nds32.md (add<mode>3, mulsi3, andsi3, iorsi3)
      	(xorsi3): Likewise.
      
      From-SVN: r211031
      Richard Sandiford committed
    • md.texi: Document the restrictions on the "enabled" attribute. · 5a7555ab
      gcc/
      	* doc/md.texi: Document the restrictions on the "enabled" attribute.
      
      From-SVN: r211030
      Richard Sandiford committed
    • re PR c++/47202 (Endless recursion during mangling) · d67ff7b7
      	PR c++/47202
      gcc/cp/
      	* decl.c (cxx_comdat_group): Return a decl.
      	* optimize.c (cdtor_comdat_group): Get its DECL_ASSEMBLER_NAME.
      gcc/
      	* cgraph.h (symtab_node::get_comdat_group_id): New.
      	* cgraphunit.c (analyze_functions): Call it.
      	* symtab.c (dump_symtab_node): Likewise.
      	* tree.c (decl_comdat_group_id): New.
      	* tree.h: Declare it.
      	* lto-streamer-out.c (write_symbol): Use it.
      	* trans-mem.c (ipa_tm_create_version_alias): Likewise.
      
      From-SVN: r211026
      Jason Merrill committed