1. 06 Nov, 2017 10 commits
    • [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 8 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
    • trans-expr.c (gfc_trans_assignment_1): Character kind conversion may create a… · 7c4acac3
      trans-expr.c (gfc_trans_assignment_1): Character kind conversion may create a loop variant temporary, too.
      
      gcc/fortran/ChangeLog:
      
      2017-11-04  Andre Vehreschild  <vehre@gcc.gnu.org>
      
      	* trans-expr.c (gfc_trans_assignment_1): Character kind conversion may
      	create a loop variant temporary, too.
      	* trans-intrinsic.c (conv_caf_send): Treat char arrays as arrays and
      	not as scalars.
      	* trans.c (get_array_span): Take the character kind into account when
      	doing pointer arithmetic.
      
      gcc/testsuite/ChangeLog:
      
      2017-11-04  Andre Vehreschild  <vehre@gcc.gnu.org>
      
      	* gfortran.dg/coarray/send_char_array_1.f90: New test.
      
      From-SVN: r254407
      Andre Vehreschild committed
    • re PR fortran/70330 (ICE with -Wextra -Wno-unused-dummy-argument and unused… · 0260e278
      re PR fortran/70330 (ICE with -Wextra -Wno-unused-dummy-argument and unused optional dummy argument)
      
      2017-11-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/70330
      	* gfortran.dg/pr70330.f90: New test.
      
      From-SVN: r254406
      Thomas Koenig committed
    • re PR fortran/29600 ([F03] MINLOC and MAXLOC take an optional KIND argument) · 9a3d38f6
      2017-11-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/29600
      	* gfortran.h (gfc_check_f): Replace fm3l with fm4l.
      	* intrinsic.h (gfc_resolve_maxloc): Add gfc_expr * to argument
      	list in protoytpe.
      	(gfc_resolve_minloc): Likewise.
      	* check.c (gfc_check_minloc_maxloc): Handle kind argument.
      	* intrinsic.c (add_sym_3_ml): Rename to
      	(add_sym_4_ml): and handle kind argument.
      	(add_function): Replace add_sym_3ml with add_sym_4ml and add
      	extra arguments for maxloc and minloc.
      	(check_specific): Change use of check.f3ml with check.f4ml.
      	* iresolve.c (gfc_resolve_maxloc): Handle kind argument. If
      	the kind is smaller than the smallest library version available,
      	use gfc_default_integer_kind and convert afterwards.
      	(gfc_resolve_minloc): Likewise.
      
      2017-11-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/29600
      	* gfortran.dg/minmaxloc_8.f90: New test.
      
      From-SVN: r254405
      Thomas Koenig committed
    • re PR fortran/81735 (double free or corruption (fasttop) error (SIGABRT) with… · 77dacf9d
      re PR fortran/81735 (double free or corruption (fasttop) error (SIGABRT) with character(:) and custom return type with allocatable)
      
      2017-11-04  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/81735
      	* trans-decl.c (gfc_trans_deferred_vars): Do a better job of a
      	case where 'tmp' was used unititialized and remove TODO.
      
      2017-11-04  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/81735
      	* gfortran.dg/pr81735.f90: New test.
      
      From-SVN: r254404
      Paul Thomas committed
    • re PR fortran/82796 (Private+equivalence in used module breaks compilation of pure function) · 9cfdd484
      2017-11-01  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/82796
      	* resolve.c (resolve_equivalence): An entity in a common block within
       	a module cannot appear in an equivalence statement if the entity is
      	with a pure procedure.
      
      2017-11-01  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/82796
      	* gfortran.dg/equiv_pure.f90: New test.
      
      From-SVN: r254403
      Steven G. Kargl committed
    • Daily bump. · da768c5b
      From-SVN: r254402
      GCC Administrator committed
  4. 03 Nov, 2017 7 commits
    • re PR target/82823 (ICE in ix86_expand_prologue, at config/i386/i386.c:13171… · 150e3476
      re PR target/82823 (ICE in ix86_expand_prologue, at config/i386/i386.c:13171 with -fstack-clash-protection)
      
      	PR target/82823
      	* g++.dg/torture/pr82823.C: New test.
      
      From-SVN: r254398
      Jeff Law committed
    • Add BZ marker to a recent change · 65ee6cb5
      From-SVN: r254397
      Jeff Law committed
    • i386.c (ix86_emit_restore_reg_using_pop): Prototype. · 61959ba1
      	* config/i386/i386.c (ix86_emit_restore_reg_using_pop): Prototype.
      	(ix86_adjust_stack_and_probe_stack_clash): Use a push/pop sequence
      	to probe at the start of a noreturn function.
      
      	* gcc.target/i386/stack-check-12.c: New test.
      
      From-SVN: r254396
      Jeff Law committed
    • re PR tree-optimization/78821 (GCC7: Copying whole 32 bits structure field by… · 245f6de1
      re PR tree-optimization/78821 (GCC7: Copying whole 32 bits structure field by field not optimised into copying whole 32 bits at once)
      
      	PR tree-optimization/78821
      	* gimple-ssa-store-merging.c: Update the file comment.
      	(MAX_STORE_ALIAS_CHECKS): Define.
      	(struct store_operand_info): New type.
      	(store_operand_info::store_operand_info): New constructor.
      	(struct store_immediate_info): Add rhs_code and ops data members.
      	(store_immediate_info::store_immediate_info): Add rhscode, op0r
      	and op1r arguments to the ctor, initialize corresponding data members.
      	(struct merged_store_group): Add load_align_base and load_align
      	data members.
      	(merged_store_group::merged_store_group): Initialize them.
      	(merged_store_group::do_merge): Update them.
      	(merged_store_group::apply_stores): Pick the constant for
      	encode_tree_to_bitpos from one of the two operands, or skip
      	encode_tree_to_bitpos if neither operand is a constant.
      	(class pass_store_merging): Add process_store method decl.  Remove
      	bool argument from terminate_all_aliasing_chains method decl.
      	(pass_store_merging::terminate_all_aliasing_chains): Remove
      	var_offset_p argument and corresponding handling.
      	(stmts_may_clobber_ref_p): New function.
      	(compatible_load_p): New function.
      	(imm_store_chain_info::coalesce_immediate_stores): Terminate group
      	if there is overlap and rhs_code is not INTEGER_CST.  For
      	non-overlapping stores terminate group if rhs is not mergeable.
      	(get_alias_type_for_stmts): Change first argument from
      	auto_vec<gimple *> & to vec<gimple *> &.  Add IS_LOAD, CLIQUEP and
      	BASEP arguments.  If IS_LOAD is true, look at rhs1 of the stmts
      	instead of lhs.  Compute *CLIQUEP and *BASEP in addition to the
      	alias type.
      	(get_location_for_stmts): Change first argument from
      	auto_vec<gimple *> & to vec<gimple *> &.
      	(struct split_store): Remove orig_stmts data member, add orig_stores.
      	(split_store::split_store): Create orig_stores rather than orig_stmts.
      	(find_constituent_stmts): Renamed to ...
      	(find_constituent_stores): ... this.  Change second argument from
      	vec<gimple *> * to vec<store_immediate_info *> *, push pointers
      	to info structures rather than the statements.
      	(split_group): Rename ALLOW_UNALIGNED argument to
      	ALLOW_UNALIGNED_STORE, add ALLOW_UNALIGNED_LOAD argument and handle
      	it.  Adjust find_constituent_stores caller.
      	(imm_store_chain_info::output_merged_store): Handle rhs_code other
      	than INTEGER_CST, adjust split_group, get_alias_type_for_stmts and
      	get_location_for_stmts callers.  Set MR_DEPENDENCE_CLIQUE and
      	MR_DEPENDENCE_BASE on the MEM_REFs if they are the same in all stores.
      	(mem_valid_for_store_merging): New function.
      	(handled_load): New function.
      	(pass_store_merging::process_store): New method.
      	(pass_store_merging::execute): Use process_store method.  Adjust
      	terminate_all_aliasing_chains caller.
      
      	* gcc.dg/store_merging_13.c: New test.
      	* gcc.dg/store_merging_14.c: New test.
      
      From-SVN: r254391
      Jakub Jelinek committed
    • 2017-11-3 Steven G. Kargl <kargl@gcc.gnu.org> · 248b06ba
      	* gfortran.dg/large_real_kind_2.F90: Test passes on FreeBSD.  Remove
      	dg-xfail-if directive.
      
      From-SVN: r254390
      Steven G. Kargl committed
    • Improve aarch64_legitimate_constant_p · 26895c21
      This patch further improves aarch64_legitimate_constant_p.  Allow all
      integer, floating point and vector constants.  Allow label references
      and non-anchor symbols with an immediate offset.  This allows such
      constants to be rematerialized, resulting in smaller code and fewer stack
      spills.  SPEC2006 codesize reduces by 0.08%, SPEC2017 by 0.13%.
      
          gcc/
      	* config/aarch64/aarch64.c (aarch64_legitimate_constant_p):
      	Return true for more constants, symbols and label references.
      	(aarch64_valid_floating_const): Remove unused function.
      
      From-SVN: r254388
      Wilco Dijkstra committed
    • msa.c: Add -fcommon to dg-options. · f66060c6
      2017-11-03  Sandra Loosemore  <sandra@codesourcery.com>
      
      	gcc/testsuite/
      	* gcc.target/mips/msa.c: Add -fcommon to dg-options.
      
      From-SVN: r254387
      Sandra Loosemore committed