1. 06 Nov, 2017 23 commits
    • re PR c++/65579 ([C++11] gcc requires definition of a static constexpr member… · 65371a7e
      re PR c++/65579 ([C++11] gcc requires definition of a static constexpr member even though it is not odr-used)
      
      /cp
      2017-11-06  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/65579
      	* decl2.c (finish_static_data_member_decl): If there's an initializer,
      	complete the type and re-apply the quals.
      
      /testsuite
      2017-11-06  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/65579
      	* g++.dg/cpp0x/constexpr-template11.C: New.
      
      From-SVN: r254461
      Paolo Carlini committed
    • collect2.c (add_lto_object): Compile for OBJECT_COFF. · d3722bf7
      * collect2.c (add_lto_object): Compile for OBJECT_COFF.
      (scan_prog_file): Don't skip PASS_LTOINFO. Scan for LTO objects.
      
      From-SVN: r254460
      David Edelsohn committed
    • ipa-fnsummary.c: fix use-after-free crash (PR jit/82826) · de4381a4
      gcc/ChangeLog:
      	PR jit/82826
      	* ipa-fnsummary.c (ipa_fnsummary_c_finalize): New function.
      	* ipa-fnsummary.h (ipa_fnsummary_c_finalize): New decl.
      	* toplev.c: Include "ipa-fnsummary.h".
      	(toplev::finalize): Call ipa_fnsummary_c_finalize.
      
      From-SVN: r254458
      David Malcolm committed
    • re PR tree-optimization/82838 (ICE in verify_ssa failed w/ store-merging) · 3e2927a1
      	PR tree-optimization/82838
      	* gimple-ssa-store-merging.c
      	(imm_store_chain_info::output_merged_store): Call force_gimple_operand_1
      	on a separate gimple_seq which is then appended to seq.
      
      	* gcc.c-torture/compile/pr82838.c: New test.
      
      From-SVN: r254457
      Jakub Jelinek committed
    • re PR target/82788 (wrong code with -fstack-clash-protection… · 7a1bdd66
      re PR target/82788 (wrong code with -fstack-clash-protection --param=stack-clash-protection-probe-interval=10 on simple code)
      
      	PR target/82788
      	* config/i386/i386.c (PROBE_INTERVAL): Remove.
      	(get_probe_interval): New functions.
      	(ix86_adjust_stack_and_probe_stack_clash): Use get_probe_interval.
      	(ix86_adjust_stack_and_probe): Likewise.
      	(output_adjust_stack_and_probe): Likewise.
      	(ix86_emit_probe_stack_range): Likewise.
      	(ix86_expand_prologue): Likewise.
      
      	PR target/82788
      	* gcc.dg/pr82788.c: New test.
      
      From-SVN: r254456
      Jeff Law committed
    • Check in right version of stack-check-12.c · 5422b1f0
      From-SVN: r254455
      Jeff Law committed
    • PR82816: Widening multiplies of bitfields · 9134df2c
      In this PR we tried to create a widening multiply of two 3-bit numbers,
      but that isn't a widening multiply at the optab/rtl level, since both
      the input and output still have the same mode.
      
      We could trap this either in is_widening_mult_p or (as the patch does)
      in the routines that actually ask for an optab.  The latter seemed
      more natural since is_widening_mult_p doesn't otherwise care about modes.
      
      2017-11-03  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	PR tree-optimization/82816
      	* tree-ssa-math-opts.c (convert_mult_to_widen): Return false
      	if the modes of the two types are the same.
      	(convert_plusminus_to_widen): Likewise.
      
      gcc/testsuite/
      	* gcc.c-torture/compile/pr82816.c: New test.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r254454
      Richard Sandiford committed
    • [gcc] · 962b9668
      2017-11-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
      
      	* config/rs6000/altivec.md (*p9_vadu<mode>3) Rename to
      	p9_vadu<mode>3.
      	(usadv16qi): New define_expand.
      	(usadv8hi): New define_expand.
      
      [gcc/testsuite]
      
      2017-11-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
      
      	* gcc.target/powerpc/sad-vectorize-1.c: New file.
      	* gcc.target/powerpc/sad-vectorize-2.c: New file.
      	* gcc.target/powerpc/sad-vectorize-3.c: New file.
      	* gcc.target/powerpc/sad-vectorize-4.c: New file.
      
      From-SVN: r254453
      Bill Schmidt committed
    • re PR bootstrap/82832 (Broken PGO LTO bootstrap on x86_64 after r254379) · 8e7d1486
      
      	PR bootstrap/82832
      	* ipa-inline-transform.c (update_noncloned_frequencies): Always
      	scale.
      	(inline_transform): Likewise.
      	* predict.c (counts_to_freqs): Remove useless conditional.
      	* profile-count.h (profile_count::apply_scale): Move sanity check.
      	* tree-inline.c (copy_bb): Always scale.
      	(copy_cfg_body): Likewise.
      
      From-SVN: r254452
      Jan Hubicka committed
    • Fix -Wreturn-type fallout. · 454f8b2b
      2017-11-06  Martin Liska  <mliska@suse.cz>
      
      	* c-c++-common/cilk-plus/AN/pr57541-2.c (foo1): Return a value
      	for functions with non-void return type, or change type to void,
      	or add -Wno-return-type for test.
      	(foo2): Likewise.
      	* c-c++-common/cilk-plus/AN/pr57541.c (foo): Likewise.
      	(foo1): Likewise.
      	* c-c++-common/cilk-plus/CK/errors.c: Likewise.
      	* c-c++-common/cilk-plus/CK/pr60197.c: Likewise.
      	* c-c++-common/cilk-plus/CK/spawn_in_return.c: Likewise.
      	* c-c++-common/fold-masked-cmp-1.c (test_pic): Likewise.
      	(test_exe): Likewise.
      	* c-c++-common/fold-masked-cmp-2.c (test_exe): Likewise.
      	* g++.dg/cilk-plus/AN/builtin_fn_mutating_tplt.cc (my_func): Likewise.
      	* g++.dg/cilk-plus/CK/pr68997.cc (fa2): Likewise.
      	* g++.dg/eh/sighandle.C (dosegv): Likewise.
      	* g++.dg/ext/vector14.C (foo): Likewise.
      	(main): Likewise.
      	* g++.dg/graphite/pr41305.C: Likewise.
      	* g++.dg/graphite/pr42930.C: Likewise.
      	* g++.dg/opt/pr46640.C (struct QBasicAtomicInt): Likewise.
      	(makeDir): Likewise.
      	* g++.dg/other/i386-8.C (foo): Likewise.
      	* g++.dg/pr45788.C: Likewise.
      	* g++.dg/pr64688.C (at_c): Likewise.
      	* g++.dg/pr65032.C (G::DecodeVorbis): Likewise.
      	* g++.dg/pr71633.C (c3::fn2): Likewise.
      	* g++.dg/stackprotectexplicit2.C (A): Likewise.
      	* g++.old-deja/g++.law/weak.C (main): Likewise.
      2017-11-06  Martin Liska  <mliska@suse.cz>
      
      	* testsuite/libgomp.c++/loop-2.C: Return a value
      	for functions with non-void return type, or change type to void,
      	or add -Wno-return-type for test.
      	* testsuite/libgomp.c++/loop-4.C: Likewise.
      	* testsuite/libgomp.c++/parallel-1.C: Likewise.
      	* testsuite/libgomp.c++/shared-1.C: Likewise.
      	* testsuite/libgomp.c++/single-1.C: Likewise.
      	* testsuite/libgomp.c++/single-2.C: Likewise.
      2017-11-06  Martin Liska  <mliska@suse.cz>
      
      	* testsuite/27_io/basic_fstream/cons/char/path.cc (main):
      	  Return a value for functions with non-void return type,
      	  or change type to void, or add -Wno-return-type for test.
      	* testsuite/27_io/basic_ifstream/cons/char/path.cc (main):
      	Likewise.
      	* testsuite/27_io/basic_ofstream/open/char/path.cc (main):
      	Likewise.
      
      From-SVN: r254451
      Martin Liska committed
    • deduction.cc: Avoid -Wreturn-type warnings. · 98910bc2
      2017-11-06  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* testsuite/20_util/optional/cons/deduction.cc: Avoid -Wreturn-type
      	warnings.
      	* testsuite/20_util/pair/cons/deduction.cc: Likewise.
      	* testsuite/20_util/pair/traits.cc: Likewise.
      	* testsuite/20_util/tuple/cons/deduction.cc: Likewise.
      	* testsuite/20_util/variant/compile.cc: Likewise.
      	* testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise.
      	* testsuite/23_containers/unordered_map/modifiers/try_emplace.cc:
      	Likewise.
      
      From-SVN: r254450
      Paolo Carlini committed
    • gcov: New directory. · 6b6b9e5b
      	* gnat.dg/gcov: New directory.
      	* gnat.dg/gcov/gcov.exp: New driver.
      	* gnat.dg/gcov/check.adb: New test.
      
      From-SVN: r254447
      Eric Botcazou committed
    • [ARM] PR 67591 ARM v8 Thumb IT blocks are deprecated part 2 · d276dc31
      2017-11-06  Christophe Lyon  <christophe.lyon@linaro.org>
      
      	PR target/67591
      	* config/arm/arm.md (*sub_shiftsi): Add predicable_short_it
      	attribute.
      	(*cmp_ite0): Add enabled_for_depr_it attribute.
      	(*cmp_ite1): Likewise.
      
      From-SVN: r254446
      Christophe Lyon committed
    • [testsuite] Fix directives order · caa3209e
      2017-11-06  Christophe Lyon  <christophe.lyon@linaro.org>
      
      	* gcc.c-torture/execute/pr23135.c: Move dg-add-options after
      	dg-options.
      	* gcc.dg/torture/pr78305.c: Move dg-do as first directive.
      	* gcc.misc-tests/gcov-3.c: Likewise.
      	* gcc.target/arm/cmse/baseline/cmse-11.c: Move dg-options before dg-add-options.
      	* gcc.target/arm/cmse/baseline/cmse-13.c: Likewise.
      	* gcc.target/arm/cmse/baseline/cmse-2.c: Likewise.
      	* gcc.target/arm/cmse/baseline/cmse-6.c: Likewise.
      	* gcc.target/arm/cmse/baseline/softfp.c: Likewise.
      	* gcc.target/arm/cmse/mainline/hard-sp/cmse-13.c: Likewise.
      	* gcc.target/arm/cmse/mainline/hard-sp/cmse-5.c: Likewise.
      	* gcc.target/arm/cmse/mainline/hard-sp/cmse-7.c: Likewise.
      	* gcc.target/arm/cmse/mainline/hard-sp/cmse-8.c: Likewise.
      	* gcc.target/arm/cmse/mainline/hard/cmse-13.c: Likewise.
      	* gcc.target/arm/cmse/mainline/hard/cmse-5.c: Likewise.
      	* gcc.target/arm/cmse/mainline/hard/cmse-7.c: Likewise.
      	* gcc.target/arm/cmse/mainline/hard/cmse-8.c: Likewise.
      	* gcc.target/arm/cmse/mainline/soft/cmse-13.c: Likewise.
      	* gcc.target/arm/cmse/mainline/soft/cmse-5.c: Likewise.
      	* gcc.target/arm/cmse/mainline/soft/cmse-7.c: Likewise.
      	* gcc.target/arm/cmse/mainline/soft/cmse-8.c: Likewise.
      	* gcc.target/arm/cmse/mainline/softfp-sp/cmse-5.c: Likewise.
      	* gcc.target/arm/cmse/mainline/softfp-sp/cmse-7.c: Likewise.
      	* gcc.target/arm/cmse/mainline/softfp-sp/cmse-8.c: Likewise.
      	* gcc.target/arm/cmse/mainline/softfp/cmse-13.c: Likewise.
      	* gcc.target/arm/cmse/mainline/softfp/cmse-5.c: Likewise.
      	* gcc.target/arm/cmse/mainline/softfp/cmse-7.c: Likewise.
      	* gcc.target/arm/cmse/mainline/softfp/cmse-8.c: Likewise.
      	* gcc.target/arm/lp1189445.c: Likewise.
      
      From-SVN: r254445
      Christophe Lyon committed
    • re PR c++/80955 (Macros expanded in definition of user-defined literals) · 7d19c460
      /libcpp
      2017-11-06  Mukesh Kapoor  <mukesh.kapoor@oracle.com>
      
      	PR c++/80955
      	* lex.c (lex_string): When checking for a valid macro for the
      	warning related to -Wliteral-suffix (CPP_W_LITERAL_SUFFIX),
      	check that the macro name does not start with an underscore
      	before calling is_macro().
      
      /gcc/testsuite
      2017-11-06  Mukesh Kapoor  <mukesh.kapoor@oracle.com>
      
      	PR c++/80955
      	* g++.dg/cpp0x/udlit-macros.C: New.
      
      From-SVN: r254443
      Mukesh Kapoor committed
    • [multiple changes] · 16f681db
       2017-11-06  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/69739
      	* trans-expr.c (gfc_map_intrinsic_function): Return false for
      	bounds without the DIM argument instead of ICEing.
      
      2017-11-06  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/69739
      	* gfortran.dg/pr69739.f90: New test.
      
      From-SVN: r254441
      Paul Thomas committed
    • Fix test-suite fallout of default -Wreturn-type. · 19520957
      2017-11-06  Martin Liska  <mliska@suse.cz>
      
      	* c-c++-common/Wimplicit-fallthrough-8.c: Return a value for
      	functions with non-void return type, or change type to void, or
      	add -Wno-return-type for test.
      	* c-c++-common/asan/pr63638.c (f): Likewise.
      	* c-c++-common/goacc/parallel-1.c (firstprivate): Likewise.
      	* c-c++-common/gomp/sink-1.c (depend): Likewise.
      	* c-c++-common/missing-symbol.c: Likewise.
      	* c-c++-common/pr36513-2.c (main2): Likewise.
      	* c-c++-common/pr36513.c (main1): Likewise.
      	* c-c++-common/pr49706-2.c: Likewise.
      	* c-c++-common/pr65120.c: Likewise.
      	* c-c++-common/tm/volatile-1.c (f): Likewise.
      	* c-c++-common/vector-1.c (f): Likewise.
      	* c-c++-common/vector-2.c (f): Likewise.
      	* g++.dg/abi/abi-tag14.C (f): Likewise.
      	(g): Likewise.
      	* g++.dg/abi/abi-tag18.C (f): Likewise.
      	* g++.dg/abi/abi-tag18a.C (f): Likewise.
      	* g++.dg/abi/covariant2.C (struct c3): Likewise.
      	(struct c7): Likewise.
      	* g++.dg/abi/covariant3.C (c1::f6): Likewise.
      	* g++.dg/abi/mangle7.C (f1): Likewise.
      	* g++.dg/asan/pr81340.C (class e): Likewise.
      	(e::f): Likewise.
      	* g++.dg/concepts/fn8.C (struct S): Likewise.
      	* g++.dg/concepts/pr65575.C (f): Likewise.
      	* g++.dg/concepts/template-parm11.C (f): Likewise.
      	* g++.dg/conversion/op6.C: Likewise.
      	* g++.dg/cpp0x/Wunused-variable-1.C (foo): Likewise.
      	* g++.dg/cpp0x/access01.C: Likewise.
      	* g++.dg/cpp0x/alignas3.C (class alignas): Likewise.
      	* g++.dg/cpp0x/auto2.C (f): Likewise.
      	(struct A): Likewise.
      	(main): Likewise.
      	* g++.dg/cpp0x/constexpr-array17.C (struct D): Likewise.
      	* g++.dg/cpp0x/constexpr-defarg2.C (a): Likewise.
      	(B::foo): Likewise.
      	(B::bar): Likewise.
      	* g++.dg/cpp0x/constexpr-memfn1.C (struct Y): Likewise.
      	* g++.dg/cpp0x/dc1.C (struct D): Likewise.
      	* g++.dg/cpp0x/dc3.C (struct D): Likewise.
      	* g++.dg/cpp0x/decltype12.C: Likewise.
      	* g++.dg/cpp0x/decltype17.C (main): Likewise.
      	* g++.dg/cpp0x/decltype3.C: Likewise.
      	* g++.dg/cpp0x/decltype41.C (struct C): Likewise.
      	(struct D): Likewise.
      	* g++.dg/cpp0x/defaulted28.C (f): Likewise.
      	* g++.dg/cpp0x/enum_base3.C (struct D): Likewise.
      	* g++.dg/cpp0x/gen-attrs-4.C (five): Likewise.
      	* g++.dg/cpp0x/initlist96.C: Likewise.
      	* g++.dg/cpp0x/lambda/lambda-58566.C (struct A): Likewise.
      	* g++.dg/cpp0x/lambda/lambda-conv10.C: Likewise.
      	* g++.dg/cpp0x/lambda/lambda-conv12.C: Likewise.
      	* g++.dg/cpp0x/lambda/lambda-defarg3.C: Likewise.
      	* g++.dg/cpp0x/lambda/lambda-ice3.C (Klass::dostuff): Likewise.
      	* g++.dg/cpp0x/lambda/lambda-ice5.C (foo): Likewise.
      	* g++.dg/cpp0x/lambda/lambda-nested2.C (f1): Likewise.
      	* g++.dg/cpp0x/lambda/lambda-template12.C (class X): Likewise.
      	* g++.dg/cpp0x/lambda/lambda-template2.C (struct T): Likewise.
      	* g++.dg/cpp0x/lambda/lambda-this12.C (struct A): Likewise.
      	* g++.dg/cpp0x/nolinkage1.C (main): Likewise.
      	* g++.dg/cpp0x/nolinkage1a.cc (dummy): Likewise.
      	* g++.dg/cpp0x/nsdmi-template5.C: Likewise.
      	* g++.dg/cpp0x/parse1.C (B::B): Likewise.
      	* g++.dg/cpp0x/pr34054.C (foo): Likewise.
      	* g++.dg/cpp0x/pr47416.C: Likewise.
      	* g++.dg/cpp0x/pr58781.C: Likewise.
      	* g++.dg/cpp0x/pr70538.C: Likewise.
      	* g++.dg/cpp0x/pr81325.C: Likewise.
      	* g++.dg/cpp0x/range-for13.C (begin): Likewise.
      	(end): Likewise.
      	* g++.dg/cpp0x/range-for14.C (begin): Likewise.
      	(end): Likewise.
      	* g++.dg/cpp0x/rv2n.C (test2_18): Likewise.
      	(test2_28): Likewise.
      	(test2_38): Likewise.
      	(test2_58): Likewise.
      	(test2_68): Likewise.
      	(test2_78): Likewise.
      	* g++.dg/cpp0x/rv3n.C (test3_128): Likewise.
      	* g++.dg/cpp0x/static_assert10.C (foo): Likewise.
      	* g++.dg/cpp0x/static_assert11.C (struct A): Likewise.
      	* g++.dg/cpp0x/static_assert12.C: Likewise.
      	* g++.dg/cpp0x/static_assert13.C: Likewise.
      	* g++.dg/cpp0x/trailing1.C (struct A): Likewise.
      	* g++.dg/cpp0x/trailing5.C (foo): Likewise.
      	(bar): Likewise.
      	* g++.dg/cpp0x/variadic114.C: Likewise.
      	* g++.dg/cpp0x/variadic57.C (Dims...>::foo): Likewise.
      	(bar): Likewise.
      	* g++.dg/cpp0x/variadic65.C: Likewise.
      	* g++.dg/cpp0x/variadic66.C (bind): Likewise.
      	* g++.dg/cpp0x/variadic97.C: Likewise.
      	* g++.dg/cpp0x/variadic98.C (__attribute__): Likewise.
      	* g++.dg/cpp1y/auto-fn11.C: Likewise.
      	* g++.dg/cpp1y/auto-fn29.C: Likewise.
      	* g++.dg/cpp1y/auto-fn38.C: Likewise.
      	* g++.dg/cpp1y/constexpr-return2.C: Likewise.
      	* g++.dg/cpp1y/lambda-init7.C (foo): Likewise.
      	* g++.dg/cpp1y/pr63996.C: Likewise.
      	* g++.dg/cpp1y/pr65202.C: Likewise.
      	* g++.dg/cpp1y/pr66443-cxx14.C (Ok): Likewise.
      	* g++.dg/cpp1y/pr79253.C (struct D): Likewise.
      	* g++.dg/cpp1y/static_assert1.C: Likewise.
      	* g++.dg/cpp1y/static_assert2.C: Likewise.
      	* g++.dg/cpp1y/var-templ44.C: Likewise.
      	* g++.dg/cpp1z/fold6.C (f): Likewise.
      	* g++.dg/cpp1z/inline-var2.C (foo): Likewise.
      	* g++.dg/cpp1z/lambda-this1.C (struct B): Likewise.
      	* g++.dg/cpp1z/static_assert-nomsg.C: Likewise.
      	* g++.dg/debug/dwarf-eh-personality-1.C (foobar): Likewise.
      	* g++.dg/debug/dwarf2/dwarf4-typedef.C (struct B): Likewise.
      	* g++.dg/debug/dwarf2/icf.C: Likewise.
      	* g++.dg/debug/dwarf2/pr61433.C (main): Likewise.
      	* g++.dg/debug/nullptr01.C (g): Likewise.
      	* g++.dg/debug/pr16792.C (foo): Likewise.
      	* g++.dg/debug/pr46241.C (class btCollisionWorld): Likewise.
      	* g++.dg/debug/pr46338.C (struct S): Likewise.
      	* g++.dg/debug/pr47106.C (baz): Likewise.
      	(bar): Likewise.
      	(foo): Likewise.
      	* g++.dg/debug/pr71057.C (fn1): Likewise.
      	* g++.dg/debug/pr71432.C (class CLIParameterType): Likewise.
      	(CLIParameterType::checkSwitched): Likewise.
      	* g++.dg/debug/pr80461.C (struct B): Likewise.
      	* g++.dg/dfp/44473-1.C (bar): Likewise.
      	* g++.dg/dfp/44473-2.C (bar): Likewise.
      	(foo): Likewise.
      	* g++.dg/eh/builtin1.C: Likewise.
      	* g++.dg/eh/builtin2.C: Likewise.
      	* g++.dg/eh/builtin3.C: Likewise.
      	* g++.dg/eh/pr45569.C (j): Likewise.
      	* g++.dg/eh/unwind2.C: Likewise.
      	* g++.dg/expr/bitfield11.C: Likewise.
      	* g++.dg/expr/static_cast7.C (f): Likewise.
      	* g++.dg/ext/altivec-14.C: Likewise.
      	* g++.dg/ext/asm13.C (fn1): Likewise.
      	* g++.dg/ext/builtin-object-size3.C: Likewise.
      	* g++.dg/ext/has_nothrow_assign_odr.C (main): Likewise.
      	(S::operator=): Likewise.
      	* g++.dg/ext/label7.C (f): Likewise.
      	* g++.dg/ext/label8.C (f): Likewise.
      	* g++.dg/ext/tmplattr7.C (test): Likewise.
      	* g++.dg/ext/vector8.C (f): Likewise.
      	* g++.dg/ext/visibility/anon1.C: Likewise.
      	* g++.dg/ext/visibility/anon2.C (f): Likewise.
      	* g++.dg/ext/visibility/namespace1.C (__attribute): Likewise.
      	* g++.dg/ext/vla16.C (fn1): Likewise.
      	* g++.dg/goacc/reference.C: Likewise.
      	* g++.dg/gomp/pr37189.C: Likewise.
      	* g++.dg/gomp/pr39495-1.C: Likewise.
      	* g++.dg/gomp/pr39495-2.C: Likewise.
      	* g++.dg/gomp/pr82054.C: Likewise.
      	* g++.dg/inherit/covariant10.C (struct c6): Likewise.
      	(struct c17): Likewise.
      	* g++.dg/inherit/covariant11.C (struct c1): Likewise.
      	(struct c3): Likewise.
      	(struct c11): Likewise.
      	(struct c15): Likewise.
      	* g++.dg/inherit/protected1.C (A::operator==): Likewise.
      	* g++.dg/init/inline1.C (struct A): Likewise.
      	* g++.dg/init/new18.C: Likewise.
      	* g++.dg/init/reference2.C (f): Likewise.
      	* g++.dg/init/reference3.C: Likewise.
      	* g++.dg/init/switch1.C (f): Likewise.
      	* g++.dg/ipa/devirt-10.C (struct wxDCBase): Likewise.
      	* g++.dg/ipa/devirt-13.C (main): Likewise.
      	* g++.dg/ipa/devirt-14.C (main): Likewise.
      	* g++.dg/ipa/devirt-15.C (main): Likewise.
      	* g++.dg/ipa/devirt-16.C (main): Likewise.
      	* g++.dg/ipa/devirt-17.C (main): Likewise.
      	* g++.dg/ipa/devirt-18.C (main): Likewise.
      	* g++.dg/ipa/devirt-19.C: Likewise.
      	* g++.dg/ipa/devirt-21.C (main): Likewise.
      	* g++.dg/ipa/devirt-23.C (main): Likewise.
      	* g++.dg/ipa/devirt-38.C: Likewise.
      	* g++.dg/ipa/devirt-40.C (A::m_fn1): Likewise.
      	* g++.dg/ipa/devirt-41.C (main): Likewise.
      	* g++.dg/ipa/devirt-42.C (main): Likewise.
      	* g++.dg/ipa/devirt-44.C (struct A): Likewise.
      	(main): Likewise.
      	* g++.dg/ipa/devirt-45.C (struct A): Likewise.
      	(main): Likewise.
      	* g++.dg/ipa/devirt-48.C (struct B): Likewise.
      	(struct D): Likewise.
      	* g++.dg/ipa/devirt-52.C: Likewise.
      	* g++.dg/ipa/nothrow-1.C (main): Likewise.
      	* g++.dg/ipa/pr43812.C (LocalSurface::bbox): Likewise.
      	* g++.dg/ipa/pr44372.C: Likewise.
      	* g++.dg/ipa/pr45572-1.C (fgetc_unlocked): Likewise.
      	(putc_unlocked): Likewise.
      	(getline): Likewise.
      	(ferror_unlocked): Likewise.
      	* g++.dg/ipa/pr58371.C: Likewise.
      	* g++.dg/ipa/pr59176.C: Likewise.
      	* g++.dg/ipa/pr60640-1.C (class G): Likewise.
      	* g++.dg/ipa/pr61540.C (struct top): Likewise.
      	* g++.dg/ipa/pr63470.C (class FTjackSupport): Likewise.
      	* g++.dg/ipa/pr63587-1.C: Likewise.
      	* g++.dg/ipa/pr63587-2.C: Likewise.
      	* g++.dg/ipa/pr63838.C (__attribute__): Likewise.
      	* g++.dg/ipa/pr63894.C (J::m_fn3): Likewise.
      	* g++.dg/ipa/pr64068.C (class A): Likewise.
      	(A::m_fn2): Likewise.
      	(class C): Likewise.
      	* g++.dg/ipa/pr64896.C (struct D): Likewise.
      	* g++.dg/ipa/pr65002.C: Likewise.
      	* g++.dg/ipa/pr65008.C (__attribute__): Likewise.
      	* g++.dg/ipa/pr65465.C (struct D): Likewise.
      	* g++.dg/ipa/pr66896.C (struct A): Likewise.
      	* g++.dg/ipa/pr68851.C (class G): Likewise.
      	(C::checkPseudoClass): Likewise.
      	* g++.dg/ipa/pr78211.C: Likewise.
      	* g++.dg/ipa/pr79931.C (AttrImpl::insertBefore): Likewise.
      	* g++.dg/ipa/pure-const-1.C (main): Likewise.
      	* g++.dg/ipa/pure-const-2.C (main): Likewise.
      	* g++.dg/ipa/pure-const-3.C (main): Likewise.
      	* g++.dg/ipa/remref-1.C (main): Likewise.
      	* g++.dg/ipa/remref-2.C (main): Likewise.
      	* g++.dg/lookup/builtin2.C (f): Likewise.
      	* g++.dg/lookup/crash3.C (struct A): Likewise.
      	(struct B): Likewise.
      	(crash): Likewise.
      	* g++.dg/lookup/friend20.C: Likewise.
      	* g++.dg/lookup/pr80891-5.C (vf2_subgraph_iso): Likewise.
      	* g++.dg/lookup/struct2.C (A::c): Likewise.
      	* g++.dg/lto/20080709_0.C (f): Likewise.
      	* g++.dg/lto/20080907_0.C: Likewise.
      	* g++.dg/lto/20080915_0.C (struct Baz): Likewise.
      	* g++.dg/lto/20080916_0.C (g): Likewise.
      	* g++.dg/lto/20081022_0.C (main): Likewise.
      	* g++.dg/lto/20081023_0.C (main): Likewise.
      	* g++.dg/lto/20081118_0.C (foo::method): Likewise.
      	* g++.dg/lto/20081118_1.C (bar::method): Likewise.
      	* g++.dg/lto/20081120-1_0.C: Likewise.
      	* g++.dg/lto/20081120-1_1.C: Likewise.
      	* g++.dg/lto/20081127_1.C (main): Likewise.
      	* g++.dg/lto/20081217-2_0.C (struct A): Likewise.
      	* g++.dg/lto/20090303_0.C: Likewise.
      	* g++.dg/lto/20090311-1_0.C: Likewise.
      	* g++.dg/lto/20090312_0.C: Likewise.
      	* g++.dg/lto/20090315_0.C (main): Likewise.
      	* g++.dg/lto/20091002-1_0.C: Likewise.
      	* g++.dg/lto/20091002-2_0.C (class DataArray): Likewise.
      	* g++.dg/lto/20091002-3_0.C (class DataArray): Likewise.
      	* g++.dg/lto/20091004-1_0.C: Likewise.
      	* g++.dg/lto/20091004-2_0.C: Likewise.
      	* g++.dg/lto/20091004-3_1.C (All_Torus_Intersections): Likewise.
      	* g++.dg/lto/20100721-1_0.C (__gthread_active_p): Likewise.
      	* g++.dg/lto/20101010-1_0.C: Likewise.
      	* g++.dg/lto/20101010-2_0.C: Likewise.
      	* g++.dg/lto/pr45679-1_0.C: Likewise.
      	* g++.dg/lto/pr45679-1_1.C: Likewise.
      	* g++.dg/lto/pr45679-2_0.C: Likewise.
      	* g++.dg/lto/pr48042_0.C (B::x): Likewise.
      	* g++.dg/lto/pr51650-1_0.C (fn): Likewise.
      	(main): Likewise.
      	* g++.dg/lto/pr51650-3_0.C (fn): Likewise.
      	(main): Likewise.
      	* g++.dg/lto/pr63270_1.C: Likewise.
      	* g++.dg/lto/pr65193_0.C: Likewise.
      	* g++.dg/lto/pr65302_0.C: Likewise.
      	* g++.dg/lto/pr65316_0.C: Likewise.
      	* g++.dg/lto/pr65475c_0.C: Likewise.
      	* g++.dg/lto/pr65549_0.C (main): Likewise.
      	* g++.dg/lto/pr69077_0.C (cWeightedStdDev::netPack): Likewise.
      	* g++.dg/lto/pr69589_0.C: Likewise.
      	* g++.dg/opt/combine.C (qvariant_cast): Likewise.
      	(QScriptDebuggerBackendPrivate::trace): Likewise.
      	* g++.dg/opt/complex3.C (j): Likewise.
      	* g++.dg/opt/covariant1.C (struct T): Likewise.
      	* g++.dg/opt/declone3.C (Item::m_fn1): Likewise.
      	* g++.dg/opt/dump1.C (__attribute__): Likewise.
      	* g++.dg/opt/inline15.C (struct C): Likewise.
      	(fn2): Likewise.
      	* g++.dg/opt/local1.C (h): Likewise.
      	* g++.dg/opt/memcpy1.C (csBoxClipper::Clip): Likewise.
      	* g++.dg/opt/new1.C: Likewise.
      	* g++.dg/opt/nrv8.C (main): Likewise.
      	* g++.dg/opt/pr23299.C (struct A): Likewise.
      	(struct B): Likewise.
      	(struct C): Likewise.
      	* g++.dg/opt/pr27826.C (struct Geometry): Likewise.
      	* g++.dg/opt/pr44919.C (back_inserter): Likewise.
      	* g++.dg/opt/pr47615.C (main): Likewise.
      	* g++.dg/opt/pr55329.C (struct A): Likewise.
      	* g++.dg/opt/pr61456.C (Set): Likewise.
      	* g++.dg/opt/pr65003.C (D::foo): Likewise.
      	(F::foo): Likewise.
      	* g++.dg/opt/pr65554.C: Likewise.
      	* g++.dg/opt/pr69432.C (struct C): Likewise.
      	* g++.dg/opt/pr78373.C (struct D): Likewise.
      	(Traits>::m_fn4): Likewise.
      	* g++.dg/opt/pr79267.C (struct F): Likewise.
      	* g++.dg/opt/pr82159-2.C: Likewise.
      	* g++.dg/other/array3.C (reserve): Likewise.
      	* g++.dg/other/crash-5.C (f): Likewise.
      	* g++.dg/other/crash-8.C: Likewise.
      	* g++.dg/other/error34.C (S): Likewise.
      	* g++.dg/other/pr22003.C (c3::func): Likewise.
      	* g++.dg/other/pr24623.C (RefCountPointer): Likewise.
      	* g++.dg/other/pr29610.C (struct __normal_iterator): Likewise.
      	(Painter::for_each): Likewise.
      	(Painter::redraw_window): Likewise.
      	* g++.dg/other/pr42645-1.C (struct S): Likewise.
      	* g++.dg/other/pr42645-2.C (foo): Likewise.
      	(f3): Likewise.
      	* g++.dg/other/pr52048.C: Likewise.
      	* g++.dg/other/typedef3.C (XalanCProcessor::getParseOption): Likewise.
      	* g++.dg/overload/defarg4.C (class foo): Likewise.
      	(bar::Initialize): Likewise.
      	* g++.dg/overload/operator5.C (equalIgnoringCase): Likewise.
      	* g++.dg/overload/ref-conv1.C: Likewise.
      	* g++.dg/overload/template5.C (test): Likewise.
      	* g++.dg/parse/crash40.C (class AAA): Likewise.
      	* g++.dg/parse/crash61.C: Likewise.
      	* g++.dg/parse/crash67.C: Likewise.
      	* g++.dg/parse/ctor5.C: Likewise.
      	* g++.dg/parse/defarg4.C (Foo): Likewise.
      	* g++.dg/parse/defarg6.C: Likewise.
      	* g++.dg/parse/error5.C (class Foo): Likewise.
      	* g++.dg/parse/expr2.C (foo): Likewise.
      	* g++.dg/parse/friend7.C: Likewise.
      	* g++.dg/parse/namespace1.C (bar): Likewise.
      	* g++.dg/parse/namespace9.C (g): Likewise.
      	* g++.dg/parse/ret-type2.C: Likewise.
      	* g++.dg/parse/typedef8.C (foo): Likewise.
      	* g++.dg/pch/static-1.C (LocalStaticTest): Likewise.
      	(main): Likewise.
      	* g++.dg/plugin/diagnostic-test-expressions-1.C (test_structure_references): Likewise.
      	(test_postfix_incdec): Likewise.
      	(test_sizeof): Likewise.
      	(test_alignof): Likewise.
      	(test_prefix_incdec): Likewise.
      	* g++.dg/plugin/dumb-plugin-test-1.C (func): Likewise.
      	* g++.dg/plugin/self-assign-test-1.C (func): Likewise.
      	* g++.dg/plugin/self-assign-test-2.C (func): Likewise.
      	* g++.dg/plugin/self-assign-test-3.C (func): Likewise.
      	* g++.dg/pr55513.C (main): Likewise.
      	* g++.dg/pr55604.C (main): Likewise.
      	* g++.dg/pr57662.C: Likewise.
      	* g++.dg/pr58389.C (F::m_fn1): Likewise.
      	* g++.dg/pr59510.C: Likewise.
      	* g++.dg/pr67989.C: Likewise.
      	* g++.dg/pr70590-2.C: Likewise.
      	* g++.dg/pr70590.C: Likewise.
      	* g++.dg/pr70965.C (foo): Likewise.
      	* g++.dg/pr77550.C: Likewise.
      	* g++.dg/pr80287.C (struct A): Likewise.
      	* g++.dg/pr80707.C (A::m_fn1): Likewise.
      	* g++.dg/pr81194.C: Likewise.
      	* g++.dg/spellcheck-identifiers.C: Likewise.
      	* g++.dg/tc1/dr152.C: Likewise.
      	* g++.dg/template/aggr-init1.C (CreateA): Likewise.
      	* g++.dg/template/anon1.C (struct x): Likewise.
      	(struct vector): Likewise.
      	* g++.dg/template/array29.C: Likewise.
      	* g++.dg/template/array7.C (bar): Likewise.
      	* g++.dg/template/canon-type-8.C: Likewise.
      	* g++.dg/template/conv1.C (First::Foo): Likewise.
      	* g++.dg/template/crash107.C: Likewise.
      	* g++.dg/template/crash23.C (f): Likewise.
      	* g++.dg/template/crash8.C (struct bar): Likewise.
      	* g++.dg/template/defarg4.C (struct A): Likewise.
      	* g++.dg/template/dependent-expr9.C: Likewise.
      	* g++.dg/template/error10.C (Btest): Likewise.
      	* g++.dg/template/friend32.C (f): Likewise.
      	* g++.dg/template/init6.C (Graph::Inner::get): Likewise.
      	(main): Likewise.
      	* g++.dg/template/memfriend7.C (A::h): Likewise.
      	* g++.dg/template/new10.C (Analyzer::ReadDictionary): Likewise.
      	* g++.dg/template/nontype12.C (baz): Likewise.
      	* g++.dg/template/overload12.C (foo2): Likewise.
      	* g++.dg/template/overload5.C (foo::f): Likewise.
      	* g++.dg/template/overload8.C (struct A): Likewise.
      	* g++.dg/template/partial10.C (fn): Likewise.
      	(main): Likewise.
      	* g++.dg/template/partial9.C (f): Likewise.
      	* g++.dg/template/qual1.C (shift_compare): Likewise.
      	* g++.dg/template/show-template-tree-3.C: Likewise.
      	* g++.dg/template/sizeof8.C (S<sizeof): Likewise.
      	* g++.dg/template/sizeof9.C (d): Likewise.
      	* g++.dg/template/spec6.C: Likewise.
      	* g++.dg/template/spec7.C (h): Likewise.
      	* g++.dg/template/typedef8.C: Likewise.
      	* g++.dg/template/using20.C (f): Likewise.
      	* g++.dg/template/vla1.C (label): Likewise.
      	* g++.dg/tm/cgraph_edge.C: Likewise.
      	* g++.dg/tm/pr46646.C: Likewise.
      	* g++.dg/tm/pr47554.C (class list): Likewise.
      	* g++.dg/tm/pr47573.C (getStringHeight): Likewise.
      	* g++.dg/tm/unsafe1.C (f): Likewise.
      	* g++.dg/tm/unsafe2.C (g): Likewise.
      	* g++.dg/torture/pr70971.C: Likewise.
      	* g++.dg/torture/20070621-1.C: Likewise.
      	* g++.dg/torture/20090329-1.C: Likewise.
      	* g++.dg/torture/20141013.C: Likewise.
      	* g++.dg/torture/pr33134.C (fxsaveGIF): Likewise.
      	* g++.dg/torture/pr33340.C (new): Likewise.
      	* g++.dg/torture/pr33627.C (class pf_Frag): Likewise.
      	* g++.dg/torture/pr34222.C (readFloat): Likewise.
      	* g++.dg/torture/pr34241.C (test): Likewise.
      	* g++.dg/torture/pr34641.C: Likewise.
      	* g++.dg/torture/pr34850.C (OctetString::operator^=): Likewise.
      	* g++.dg/torture/pr35164-1.C: Likewise.
      	* g++.dg/torture/pr36745.C: Likewise.
      	* g++.dg/torture/pr38705.C (S::bar): Likewise.
      	* g++.dg/torture/pr38811.C (AbcAbcdTracer::TestIsoAbcde): Likewise.
      	* g++.dg/torture/pr39362.C: Likewise.
      	* g++.dg/torture/pr39732.C (f): Likewise.
      	* g++.dg/torture/pr40991.C: Likewise.
      	* g++.dg/torture/pr41775.C: Likewise.
      	* g++.dg/torture/pr42183.C: Likewise.
      	* g++.dg/torture/pr42450.C: Likewise.
      	* g++.dg/torture/pr42704.C: Likewise.
      	* g++.dg/torture/pr42760.C (baz): Likewise.
      	(bar): Likewise.
      	* g++.dg/torture/pr42773.C (Cell::obscuringCells): Likewise.
      	* g++.dg/torture/pr42883.C: Likewise.
      	* g++.dg/torture/pr43905.C (struct Matrix): Likewise.
      	* g++.dg/torture/pr44148.C: Likewise.
      	* g++.dg/torture/pr44295.C: Likewise.
      	* g++.dg/torture/pr44357.C: Likewise.
      	* g++.dg/torture/pr44813.C: Likewise.
      	* g++.dg/torture/pr45580.C: Likewise.
      	* g++.dg/torture/pr45874.C (Mpeg2FrameConstructor::ParsePictureHeader): Likewise.
      	* g++.dg/torture/pr45877.C: Likewise.
      	* g++.dg/torture/pr46383.C: Likewise.
      	* g++.dg/torture/pr46469.C (__attribute__): Likewise.
      	(identifierByPthreadHandle): Likewise.
      	* g++.dg/torture/pr47313.C: Likewise.
      	* g++.dg/torture/pr48271.C: Likewise.
      	* g++.dg/torture/pr49615.C (Dispatch): Likewise.
      	(C::f): Likewise.
      	* g++.dg/torture/pr49770.C (main): Likewise.
      	* g++.dg/torture/pr49938.C: Likewise.
      	* g++.dg/torture/pr51436.C: Likewise.
      	* g++.dg/torture/pr51482.C (anim_track_bez_wvect::tangent): Likewise.
      	* g++.dg/torture/pr51737.C (id_state::start_file): Likewise.
      	* g++.dg/torture/pr51959.C: Likewise.
      	* g++.dg/torture/pr52772.C (class c6): Likewise.
      	* g++.dg/torture/pr52918-2.C (__cxa_allocate_exception): Likewise.
      	* g++.dg/torture/pr53011.C: Likewise.
      	* g++.dg/torture/pr53602.C: Likewise.
      	* g++.dg/torture/pr53752.C: Likewise.
      	* g++.dg/torture/pr54838.C: Likewise.
      	* g++.dg/torture/pr54902.C: Likewise.
      	* g++.dg/torture/pr56029.C: Likewise.
      	* g++.dg/torture/pr56768.C (operator!=): Likewise.
      	* g++.dg/torture/pr57107.C: Likewise.
      	* g++.dg/torture/pr57140.C: Likewise.
      	* g++.dg/torture/pr57235.C: Likewise.
      	* g++.dg/torture/pr58252.C: Likewise.
      	* g++.dg/torture/pr58555.C: Likewise.
      	* g++.dg/torture/pr59208.C (get_dbx_doc): Likewise.
      	* g++.dg/torture/pr60438-1.C (foo): Likewise.
      	* g++.dg/torture/pr60746.C (Two::run): Likewise.
      	* g++.dg/torture/pr61554.C: Likewise.
      	* g++.dg/torture/pr63419.C: Likewise.
      	* g++.dg/torture/pr63476.C: Likewise.
      	* g++.dg/torture/pr63512.C (C::m_fn3): Likewise.
      	* g++.dg/torture/pr64282.C (class H): Likewise.
      	* g++.dg/torture/pr64378.C (struct top): Likewise.
      	* g++.dg/torture/pr64565.C: Likewise.
      	* g++.dg/torture/pr64568-2.C: Likewise.
      	* g++.dg/torture/pr64669.C (Lex::advance_one_char): Likewise.
      	* g++.dg/torture/pr64686.C (B::m_fn1): Likewise.
      	* g++.dg/torture/pr64978.C (B::m_fn2): Likewise.
      	* g++.dg/torture/pr64995.C (A::m_fn2): Likewise.
      	* g++.dg/torture/pr65655.C: Likewise.
      	* g++.dg/torture/pr65851.C: Likewise.
      	* g++.dg/torture/pr67055.C: Likewise.
      	* g++.dg/torture/pr67191.C: Likewise.
      	* g++.dg/torture/pr68852.C: Likewise.
      	* g++.dg/torture/pr69264.C: Likewise.
      	* g++.dg/torture/pr77674.C: Likewise.
      	* g++.dg/torture/pr77947.C (B::m_fn2): Likewise.
      	* g++.dg/torture/pr78268.C: Likewise.
      	* g++.dg/torture/pr78507.C: Likewise.
      	* g++.dg/torture/pr78692.C (F::g): Likewise.
      	* g++.dg/torture/pr80171.C: Likewise.
      	* g++.dg/torture/pr82154.C (class f): Likewise.
      	(f::k): Likewise.
      	* g++.dg/tree-ssa/copyprop.C: Likewise.
      	* g++.dg/tree-ssa/pr22444.C: Likewise.
      	* g++.dg/tree-ssa/pr23948.C (make_scheduler_request): Likewise.
      	* g++.dg/tree-ssa/pr24172.C (dummy): Likewise.
      	* g++.dg/tree-ssa/pr24351-3.C: Likewise.
      	* g++.dg/tree-ssa/pr27283.C: Likewise.
      	* g++.dg/tree-ssa/pr27291.C: Likewise.
      	* g++.dg/tree-ssa/pr27548.C: Likewise.
      	* g++.dg/tree-ssa/pr34355.C (Parse_Float): Likewise.
      	* g++.dg/tree-ssa/pr42337.C: Likewise.
      	* g++.dg/tree-ssa/pred-1.C (main): Likewise.
      	* g++.dg/ubsan/pr65019.C (C::foo): Likewise.
      	* g++.dg/ubsan/pr65583.C: Likewise.
      	* g++.dg/vect/pr60836.cc (norm_): Likewise.
      	* g++.dg/vect/pr68145.cc: Likewise.
      	* g++.dg/vect/pr70729-nest.cc (my_alloc): Likewise.
      	* g++.dg/vect/pr70729.cc (my_alloc): Likewise.
      	* g++.dg/warn/Waddress-3.C: Likewise.
      	* g++.dg/warn/Wconversion-null-2.C (warn_for___null): Likewise.
      	* g++.dg/warn/Wnull-conversion-2.C (main): Likewise.
      	* g++.dg/warn/Wparentheses-10.C: Likewise.
      	* g++.dg/warn/Wparentheses-11.C: Likewise.
      	* g++.dg/warn/Wparentheses-12.C: Likewise.
      	* g++.dg/warn/Wparentheses-25.C: Likewise.
      	* g++.dg/warn/Wparentheses-6.C: Likewise.
      	* g++.dg/warn/Wparentheses-7.C: Likewise.
      	* g++.dg/warn/Wparentheses-8.C: Likewise.
      	* g++.dg/warn/Wparentheses-9.C: Likewise.
      	* g++.dg/warn/Wshadow-5.C: Likewise.
      	* g++.dg/warn/Wtype-limits-Wextra.C (ff): Likewise.
      	(gg): Likewise.
      	* g++.dg/warn/Wtype-limits-no.C (ff): Likewise.
      	(gg): Likewise.
      	* g++.dg/warn/Wtype-limits.C (ff): Likewise.
      	(gg): Likewise.
      	* g++.dg/warn/Wunused-local-typedefs.C: Likewise.
      	* g++.dg/warn/Wzero-as-null-pointer-constant-5.C: Likewise.
      	* g++.dg/warn/pmf1.C (a::f): Likewise.
      	* g++.old-deja/g++.benjamin/p13417.C: Likewise.
      	* g++.old-deja/g++.brendan/crash24.C (main): Likewise.
      	* g++.old-deja/g++.ext/constructor.C: Likewise.
      	* g++.old-deja/g++.ext/namedret1.C (f): Likewise.
      	* g++.old-deja/g++.ext/namedret3.C: Likewise.
      	* g++.old-deja/g++.ext/return1.C: Likewise.
      	* g++.old-deja/g++.jason/anon4.C (main): Likewise.
      	* g++.old-deja/g++.jason/enum6.C: Likewise.
      	* g++.old-deja/g++.jason/lineno2.C (main): Likewise.
      	* g++.old-deja/g++.jason/lineno3.C: Likewise.
      	* g++.old-deja/g++.jason/lineno4.C: Likewise.
      	* g++.old-deja/g++.jason/new2.C (main): Likewise.
      	* g++.old-deja/g++.jason/new4.C (main): Likewise.
      	* g++.old-deja/g++.jason/shadow1.C (main): Likewise.
      	* g++.old-deja/g++.jason/tempcons.C (struct A): Likewise.
      	* g++.old-deja/g++.jason/thunk2.C (main): Likewise.
      	* g++.old-deja/g++.law/builtin1.C (main): Likewise.
      	* g++.old-deja/g++.law/enum9.C: Likewise.
      	* g++.old-deja/g++.law/except3.C: Likewise.
      	* g++.old-deja/g++.law/init6.C: Likewise.
      	* g++.old-deja/g++.law/profile1.C (main): Likewise.
      	* g++.old-deja/g++.law/shadow2.C (main): Likewise.
      	* g++.old-deja/g++.law/temps4.C (main): Likewise.
      	* g++.old-deja/g++.mike/bool2.C (main): Likewise.
      	* g++.old-deja/g++.mike/eh1.C: Likewise.
      	* g++.old-deja/g++.mike/eh10.C: Likewise.
      	* g++.old-deja/g++.mike/eh13.C (main): Likewise.
      	* g++.old-deja/g++.mike/eh16.C: Likewise.
      	* g++.old-deja/g++.mike/eh17.C: Likewise.
      	* g++.old-deja/g++.mike/eh2.C: Likewise.
      	* g++.old-deja/g++.mike/eh23.C: Likewise.
      	* g++.old-deja/g++.mike/eh24.C: Likewise.
      	* g++.old-deja/g++.mike/eh25.C: Likewise.
      	* g++.old-deja/g++.mike/eh26.C: Likewise.
      	* g++.old-deja/g++.mike/eh27.C: Likewise.
      	* g++.old-deja/g++.mike/eh28.C: Likewise.
      	* g++.old-deja/g++.mike/eh29.C: Likewise.
      	* g++.old-deja/g++.mike/eh30.C: Likewise.
      	* g++.old-deja/g++.mike/eh31.C: Likewise.
      	* g++.old-deja/g++.mike/eh35.C: Likewise.
      	* g++.old-deja/g++.mike/eh36.C: Likewise.
      	* g++.old-deja/g++.mike/eh37.C: Likewise.
      	* g++.old-deja/g++.mike/eh38.C: Likewise.
      	* g++.old-deja/g++.mike/eh39.C: Likewise.
      	* g++.old-deja/g++.mike/eh40.C: Likewise.
      	* g++.old-deja/g++.mike/eh47.C: Likewise.
      	* g++.old-deja/g++.mike/eh50.C: Likewise.
      	* g++.old-deja/g++.mike/eh51.C: Likewise.
      	* g++.old-deja/g++.mike/eh7.C: Likewise.
      	* g++.old-deja/g++.mike/eh8.C: Likewise.
      	* g++.old-deja/g++.mike/eh9.C: Likewise.
      	* g++.old-deja/g++.mike/mangle1.C: Likewise.
      	* g++.old-deja/g++.mike/p5958.C: Likewise.
      	* g++.old-deja/g++.mike/p6004.C: Likewise.
      	* g++.old-deja/g++.mike/p700.C: Likewise.
      	* g++.old-deja/g++.mike/p7912.C: Likewise.
      	* g++.old-deja/g++.mike/p811.C (main): Likewise.
      	* g++.old-deja/g++.mike/virt4.C (main): Likewise.
      	* g++.old-deja/g++.oliva/nameret1.C: Likewise.
      	* g++.old-deja/g++.oliva/nameret2.C: Likewise.
      	* g++.old-deja/g++.other/decl1.C (bar): Likewise.
      	* g++.old-deja/g++.other/expr1.C (struct T): Likewise.
      	(main): Likewise.
      	* g++.old-deja/g++.other/inline8.C (main): Likewise.
      	* g++.old-deja/g++.other/loop1.C: Likewise.
      	* g++.old-deja/g++.other/syntax1.C (main): Likewise.
      	* g++.old-deja/g++.pt/repo3.C (main): Likewise.
      	* g++.old-deja/g++.robertl/eb27.C (main): Likewise.
      	* g++.old-deja/g++.robertl/eb83.C (main): Likewise.
      	* gcc.dg/pr44545.c: Likewise.
      	* obj-c++.dg/comp-types-8.mm: Likewise.
      	* obj-c++.dg/demangle-3.mm: Likewise.
      	* obj-c++.dg/super-class-1.mm: Likewise.
      
      From-SVN: r254440
      Martin Liska committed
    • rs6000: Implement insn_cost for mfcr, mfcrf · c3e150d2
      This gives mfcrf a cost of three integer insns, just like we do for sync
      and load-with-reservation already.
      
      
      	* config/rs6000/rs6000.c (rs6000_insn_cost): Handle TYPE_MFCR and
      	TYPE_MFCRF.
      
      From-SVN: r254439
      Segher Boessenkool committed
    • Fix all tests that fail with -sanitize=return. · 23dbc169
      2017-11-06  Martin Liska  <mliska@suse.cz>
      
      	* c-c++-common/dfp/call-by-value.c (foo32): Return a default
      	value of change return type to void.
      	(foo64): Likewise.
      	(foo128): Likewise.
      	* g++.dg/bprob/g++-bprob-1.C: Likewise.
      	* g++.dg/cpp0x/lambda/lambda-template.C (f): Likewise.
      	* g++.dg/cpp0x/range-for6.C (foo): Likewise.
      	* g++.dg/cpp0x/udlit-template.C: Likewise.
      	* g++.dg/cpp1z/eval-order3.C (struct A): Likewise.
      	(operator>>): Likewise.
      	* g++.dg/expr/cond12.C (struct X): Likewise.
      	(X::operator=): Likewise.
      	* g++.dg/gcov/gcov-1.C: Likewise.
      	* g++.dg/gcov/gcov-threads-1.C (ContentionNoDeadlock_thread): Likewise.
      	* g++.dg/ipa/devirt-21.C: Likewise.
      	* g++.dg/ipa/devirt-23.C: Likewise.
      	* g++.dg/ipa/devirt-34.C (t): Likewise.
      	* g++.dg/missing-return.C: New test. Likewise.
      	* g++.dg/opt/20050511-1.C (bar): Likewise.
      	* g++.dg/opt/const3.C (A::foo1): Likewise.
      	(A::foo2): Likewise.
      	* g++.dg/opt/pr23299.C (E::c): Likewise.
      	* g++.dg/other/copy2.C (A::operator=): Likewise.
      	* g++.dg/overload/addr1.C: Likewise.
      	* g++.dg/pr48484.C: Likewise.
      	* g++.dg/tls/thread_local3.C (thread_main): Likewise.
      	* g++.dg/tls/thread_local3g.C (thread_main): Likewise.
      	* g++.dg/tls/thread_local5.C (thread_main): Likewise.
      	* g++.dg/tls/thread_local5g.C (thread_main): Likewise.
      	* g++.dg/tls/thread_local6.C (thread_main): Likewise.
      	* g++.dg/tls/thread_local6g.C (thread_main): Likewise.
      	* g++.dg/torture/pr34850.C (OctetString::operator^=): Likewise.
      	* g++.dg/tree-prof/pr79259.C (fn2): Likewise.
      	* g++.dg/tree-ssa/pr33604.C (struct Value): Likewise.
      	* g++.dg/tree-ssa/pr81408.C (struct p): Likewise.
      	(av): Likewise.
      	* g++.dg/warn/string1.C (test): Likewise.
      
      From-SVN: r254438
      Martin Liska committed
    • Instrument function exit with __builtin_unreachable in C++ · 1b6fa695
      2017-11-06  Martin Liska  <mliska@suse.cz>
      
      	PR middle-end/82404
      	* c-opts.c (c_common_post_options): Set -Wreturn-type for C++
      	FE.
      	* c.opt: Set default value of warn_return_type.
      2017-11-06  Martin Liska  <mliska@suse.cz>
      
      	PR middle-end/82404
      	* constexpr.c (cxx_eval_builtin_function_call): Handle
      	__builtin_unreachable call.
      	(get_function_named_in_call): Declare function earlier.
      	(constexpr_fn_retval): Skip __builtin_unreachable.
      	* cp-gimplify.c (cp_ubsan_maybe_instrument_return): Rename to
      	...
      	(cp_maybe_instrument_return): ... this.
      	(cp_genericize): Call the function unconditionally.
      2017-11-06  Martin Liska  <mliska@suse.cz>
      
      	PR middle-end/82404
      	* options.c (gfc_post_options): Set default value of
      	-Wreturn-type to false.
      
      From-SVN: r254437
      Martin Liska committed
    • Rework vrp_int_const_binop interface · 3232f052
      ...to avoid a warning about uninitialised wide_ints.
      
      2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
      
      gcc/
      	* tree-vrp.c (vrp_int_const_binop): Return true on success and
      	return the value by pointer.
      	(extract_range_from_multiplicative_op_1): Update accordingly.
      	Return as soon as an operation fails.
      
      From-SVN: r254436
      Richard Sandiford committed
    • Daily bump. · 469f5da7
      From-SVN: r254435
      GCC Administrator committed
  2. 05 Nov, 2017 15 commits
    • re PR fortran/82471 (Reorder loop for unfavorable index ordering in DO CONCURRENT and FORALL) · d88412fc
      2017-11-05  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/82471
      	* lang.opt (ffrontend-loop-interchange): New option.
      	(Wfrontend-loop-interchange): New option.
      	* options.c (gfc_post_options): Handle ffrontend-loop-interchange.
      	* frontend-passes.c (gfc_run_passes): Run
      	optimize_namespace if flag_frontend_optimize or
      	flag_frontend_loop_interchange are set.
      	(optimize_namespace): Run functions according to flags set;
      	also call index_interchange.
      	(ind_type): New function.
      	(has_var): New function.
      	(index_cost): New function.
      	(loop_comp): New function.
      
      2017-11-05  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/82471
      	* gfortran.dg/loop_interchange_1.f90: New test.
      
      From-SVN: r254430
      Thomas Koenig committed
    • re PR fortran/78641 ([OOP] ICE on polymorphic allocatable function in array constructor) · 5233d455
      2017-11-05  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/78641
      	* resolve.c (resolve_ordinary_assign): Do not add the _data
      	component for class valued array constructors being assigned
      	to derived type arrays.
      	* trans-array.c (gfc_trans_array_ctor_element): Take the _data
      	of class valued elements for assignment to derived type arrays.
      
      2017-11-05  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/78641
      	* gfortran.dg/class_66.f90: New test.
      
      From-SVN: r254428
      Paul Thomas committed
    • re PR fortran/81447 ([7/8] gfortran fails to recognize the exact dynamic type of… · aea5e932
      re PR fortran/81447 ([7/8] gfortran fails to recognize the exact dynamic type of a polymorphic entity that was allocated in a external procedure)
      
      2017-11-05  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/81447
      	PR fortran/82783
      	* resolve.c (resolve_component): There is no need to resolve
      	the components of a use associated vtype.
      	(resolve_fl_derived): Unconditionally generate a vtable for any
      	module derived type, as long as the standard is F2003 or later
      	and it is not a vtype or a PDT template.
      
      2017-11-05  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/81447
      	* gfortran.dg/class_65.f90: New test.
      	* gfortran.dg/alloc_comp_basics_1.f90: Increase builtin_free
      	count from 18 to 21.
      	* gfortran.dg/allocatable_scalar_9.f90: Increase builtin_free
      	count from 32 to 54.
      	* gfortran.dg/auto_dealloc_1.f90: Increase builtin_free
      	count from 4 to 10.
      	* gfortran.dg/coarray_lib_realloc_1.f90: Increase builtin_free
      	count from 3 to 6. Likewise _gfortran_caf_deregister from 2 to
      	3, builtin_malloc from 1 to 4 and builtin_memcpy|= MEM from
      	2 to 5.
      	* gfortran.dg/finalize_28.f90: Increase builtin_free
      	count from 3 to 6.
      	* gfortran.dg/move_alloc_15.f90: Increase builtin_free and
      	builtin_malloc counts from 11 to 14.
      	* gfortran.dg/typebound_proc_27.f03: Increase builtin_free
      	count from 7 to 10. Likewise builtin_malloc from 12 to 15.
      
      From-SVN: r254427
      Paul Thomas committed
    • Remove semicolon after do {} while (0) in DEF_SANITIZER_BUILTIN · 67c6769b
      2017-11-05  Tom de Vries  <tom@codesourcery.com>
      
      	PR other/82784
      	* asan.c (DEF_SANITIZER_BUILTIN_1): Factor out of ...
      	(DEF_SANITIZER_BUILTIN): ... here.
      	(initialize_sanitizer_builtins): Use DEF_SANITIZER_BUILTIN_1 instead of
      	DEF_SANITIZER_BUILTIN in if stmt.  Add missing semicolon.
      
      From-SVN: r254425
      Tom de Vries committed
    • [libcpp] Remove semicolon after do {} while (0) in BUF_APPEND · c830c7d5
      2017-11-05  Tom de Vries  <tom@codesourcery.com>
      
      	PR other/82784
      	* lex.c (BUF_APPEND): Remove semicolon after
      	"do {} while (0)".
      
      From-SVN: r254424
      Tom de Vries committed
    • Remove semicolon after ASM_OUTPUT_BEFORE_CASE_LABEL macro body · 9739c3d3
      2017-11-05  Tom de Vries  <tom@codesourcery.com>
      
      	PR other/82784
      	* config/elfos.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove semicolon after
      	macro body.
      	(ASM_OUTPUT_CASE_LABEL): Add semicolon after
      	ASM_OUTPUT_BEFORE_CASE_LABEL call.
      	* config/arc/arc.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove semicolon
      	after macro body.
      	* config/m68k/m68kelf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Same.
      	* config/mips/mips.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Same.
      	* config/v850/v850.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Same.
      
      From-SVN: r254423
      Tom de Vries committed
    • [fortran] Remove semicolon after do {} while (0) in match macros · b4ef2931
      2017-11-05  Tom de Vries  <tom@codesourcery.com>
      
      	PR other/82784
      	* parse.c (match, matcha, matchs, matcho, matchds, matchdo): Remove
      	semicolon after "do {} while (0)".
      
      From-SVN: r254422
      Tom de Vries committed
    • [graphite] Remove semicolon after do {} while (0) in DEBUG_PRINT · f9c1b67a
      2017-11-05  Tom de Vries  <tom@codesourcery.com>
      
      	PR other/82784
      	* graphite-scop-detection.c (DEBUG_PRINT): Remove semicolon after
      	"do {} while (0)".
      
      From-SVN: r254421
      Tom de Vries committed
    • [libquadmath] Remove semicolon after do {} while (0) in MPN_MUL_N_RECURSE · 51c20aa3
      2017-11-05  Tom de Vries  <tom@codesourcery.com>
      
      	PR other/82784
      	* printf/gmp-impl.h (MPN_MUL_N_RECURSE): Remove semicolon after
      	"do {} while (0)".
      
      From-SVN: r254420
      Tom de Vries committed
    • [libsanitizer] Remove semicolon after do {} while (0) in macro body · 735e62b9
      2017-11-05  Tom de Vries  <tom@codesourcery.com>
      
      	PR other/82784
      	* asan/asan_poisoning.cc (CHECK_SMALL_REGION): Remove semicolon after
      	"do {} while (0)".
      	* lsan/lsan_common.cc (LOG_POINTERS, LOG_THREADS): Same.
      
      From-SVN: r254419
      Tom de Vries committed
    • RISC-V: Emit "i" suffix for instructions with immediate operands · 0791ac18
      This changes makes GCC asm output use instruction names that are
      consistent with the RISC-V ISA manual.  The assembler accepts
      immediate-operand instructions without the "i" suffix, so this all
      worked before, it's just a bit cleaner to match the ISA manual more
      closely.
      
      gcc/ChangeLog
      
      2017-10-03  Michael Clark  <michaeljclark@mac.com>
      
              * config/riscv/riscv.c (riscv_print_operand): Add a 'i' format.
              config/riscv/riscv.md (addsi3): Use 'i' for immediates.
              (adddi3): Likewise.
              (*addsi3_extended): Likewise.
              (*addsi3_extended2): Likewise.
              (<optab>si3): Likewise.
              (<optab>di3): Likewise.
              (<optab><mode>3): Likewise.
              (<*optabe>si3_internal): Likewise.
              (zero_extendqi<SUPERQI:mode>2): Likewise.
              (*add<mode>hi3): Likewise.
              (*xor<mode>hi3): Likewise.
              (<optab>di3): Likewise.
              (*<optab>si3_extend): Likewise.
              (*sge<u>_<X:mode><GPR:mode>): Likewise.
              (*slt<u>_<X:mode><GPR:mode>): Likewise.
              (*sle<u>_<X:mode><GPR:mode>): Likewise.
      
      From-SVN: r254418
      Michael Clark committed
    • RISC-V: If -m[no-]strict-align is not passed, assume its value from -mtune · caf1c1cd
      2017-11-04  Andrew Waterman  <andrew@sifive.com>
      
      	* config/riscv/riscv.c (riscv_option_override): Conditionally set
      	TARGET_STRICT_ALIGN based upon -mtune argument.
      
      From-SVN: r254417
      Andrew Waterman committed
    • RISC-V: Set SLOW_BYTE_ACCESS=1 · ecc82a8d
      When implementing the RISC-V port, I took the name of this macro at
      face value.  It appears we were mistaken in what this means, here's a
      quote from the SPARC port that better describes what SLOW_BYTE_ACCESS
      does
      
          /* Nonzero if access to memory by bytes is slow and undesirable.
             For RISC chips, it means that access to memory by bytes is no
             better than access by words when possible, so grab a whole word
             and maybe make use of that.  */
      
      I've added the comment to our port as well.
      
      See https://gcc.gnu.org/ml/gcc/2017-08/msg00202.html for more
      discussion.  Thanks to Michael Clark and Andrew Pinski for the help!
      
      gcc/ChangeLog
      
      2017-11-04  Andrew Waterman  <andrew@sifive.com>
      
              * config/riscv/riscv.h (SLOW_BYTE_ACCESS): Change to 1.
      
      From-SVN: r254416
      Andrew Waterman committed
    • Daily bump. · d327feb3
      From-SVN: r254415
      GCC Administrator committed
  3. 04 Nov, 2017 2 commits
    • PR target/82002 Part 2: Correct non-immediate offset/invalid INSN · 173399a0
      When we are realigning the stack pointer, making an ms_abi to sysv_abi
      call and allocating 2GiB or more on the stack we end up with an invalid
      INSN due to a non-immediate offset.  This occurs both with and without
      -mcall-ms2sysv-xlogues.  Additionally, the stack allocation with
      -mcall-ms2sysv-xlogues is ignoring (silently disabling) stack checking,
      stack clash checking and probing.
      
      This patch fixes these problems by:
      
      1. No longer allocate stack space in ix86_emit_outlined_ms2sysv_save.
      2. Rearrange where we emit SSE saves or stub call:
         a. Before frame allocation when offset from frame to save area is >= 2GiB.
         b. After frame allocation when frame is < 2GiB.  (Stack allocations
            prior to the stub call can't be combined with those afterwards, so
            this is better when possible.)
      3. Modify choose_baseaddr to take an optional scratch_regno argument
         and never return rtx that cannot be used as an immediate.
      
      gcc:
      	config/i386/i386.c (choose_basereg): Use optional scratch
      	register and add assertion.
      	(x86_emit_outlined_ms2sysv_save): Use scratch register when
      	needed, and don't allocate stack.
      	(ix86_expand_prologue): Rearrange where SSE saves/stub call is
      	emitted, correct wrong allocation with -mcall-ms2sysv-xlogues.
      	(ix86_emit_outlined_ms2sysv_restore): Fix non-immediate offsets.
      
      gcc/testsuite:
      	gcc.target/i386/pr82002-2a.c: Change from xfail to fail.
      	gcc.target/i386/pr82002-2b.c: Likewise.
      
      From-SVN: r254412
      Daniel Santos committed
    • re PR libgcc/82635 (std::thread's join broken on FreeBSD with all GCCs >= 5) · 59fcf6c3
      2017-11-04  Andreas Tobler  <andreast@gcc.gnu.org>
      
          PR libgcc/82635
          * config/i386/freebsd-unwind.h (MD_FALLBACK_FRAME_STATE_FOR): Use a
          sysctl to determine whether we're in a trampoline.
          Keep the pattern matching method for systems without
          KERN_PROC_SIGTRAMP sysctl.
      
      From-SVN: r254411
      Andreas Tobler committed