Commit Graph

157392 Commits

Author SHA1 Message Date
Paolo Carlini
98910bc2b9 deduction.cc: Avoid -Wreturn-type warnings.
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
2017-11-06 12:55:35 +00:00
Eric Botcazou
6b6b9e5b90 gcov: New directory.
* gnat.dg/gcov: New directory.
	* gnat.dg/gcov/gcov.exp: New driver.
	* gnat.dg/gcov/check.adb: New test.

From-SVN: r254447
2017-11-06 11:41:49 +00:00
Christophe Lyon
d276dc3174 [ARM] PR 67591 ARM v8 Thumb IT blocks are deprecated part 2
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
2017-11-06 11:43:19 +01:00
Christophe Lyon
caa3209ec2 [testsuite] Fix directives order
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
2017-11-06 11:40:43 +01:00
Mukesh Kapoor
7d19c460ed re PR c++/80955 (Macros expanded in definition of user-defined literals)
/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
2017-11-06 10:33:41 +00:00
Paul Thomas
16f681db11 [multiple changes]
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
2017-11-06 09:54:09 +00:00
Martin Liska
19520957ad Fix test-suite fallout of default -Wreturn-type.
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
2017-11-06 09:05:03 +00:00
Segher Boessenkool
c3e150d23a rs6000: Implement insn_cost for mfcr, mfcrf
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
2017-11-06 10:04:23 +01:00
Martin Liska
23dbc16908 Fix all tests that fail with -sanitize=return.
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
2017-11-06 09:02:33 +00:00
Martin Liska
1b6fa695ab Instrument function exit with __builtin_unreachable in C++
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
2017-11-06 09:02:15 +00:00
Richard Sandiford
3232f0521c Rework vrp_int_const_binop interface
...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
2017-11-06 08:59:09 +00:00
GCC Administrator
469f5da70a Daily bump.
From-SVN: r254435
2017-11-06 00:16:17 +00:00
Thomas Koenig
d88412fc51 re PR fortran/82471 (Reorder loop for unfavorable index ordering in DO CONCURRENT and FORALL)
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
2017-11-05 17:24:37 +00:00
Paul Thomas
5233d45559 re PR fortran/78641 ([OOP] ICE on polymorphic allocatable function in array constructor)
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
2017-11-05 14:32:05 +00:00
Paul Thomas
aea5e9327a 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
2017-11-05 12:38:42 +00:00
Gerald Pfeifer
ba89e5d5a7 * doc/xml/manual/abi.xml: Move docs.oracle.com references to https.
From-SVN: r254426
2017-11-05 11:14:38 +00:00
Tom de Vries
67c6769bc0 Remove semicolon after do {} while (0) in DEF_SANITIZER_BUILTIN
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
2017-11-05 09:58:27 +00:00
Tom de Vries
c830c7d5c7 [libcpp] Remove semicolon after do {} while (0) in BUF_APPEND
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
2017-11-05 09:58:16 +00:00
Tom de Vries
9739c3d303 Remove semicolon after ASM_OUTPUT_BEFORE_CASE_LABEL macro body
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
2017-11-05 09:58:05 +00:00
Tom de Vries
b4ef293194 [fortran] Remove semicolon after do {} while (0) in match macros
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
2017-11-05 09:57:53 +00:00
Tom de Vries
f9c1b67a39 [graphite] Remove semicolon after do {} while (0) in DEBUG_PRINT
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
2017-11-05 09:57:43 +00:00
Tom de Vries
51c20aa35a [libquadmath] Remove semicolon after do {} while (0) in MPN_MUL_N_RECURSE
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
2017-11-05 09:57:30 +00:00
Tom de Vries
735e62b905 [libsanitizer] Remove semicolon after do {} while (0) in macro body
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
2017-11-05 09:57:17 +00:00
Michael Clark
0791ac186b RISC-V: Emit "i" suffix for instructions with immediate operands
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
2017-11-05 00:42:54 +00:00
Andrew Waterman
caf1c1cd12 RISC-V: If -m[no-]strict-align is not passed, assume its value from -mtune
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
2017-11-05 00:39:01 +00:00
Andrew Waterman
ecc82a8d05 RISC-V: Set SLOW_BYTE_ACCESS=1
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
2017-11-05 00:30:40 +00:00
GCC Administrator
d327feb3d7 Daily bump.
From-SVN: r254415
2017-11-05 00:16:12 +00:00
Daniel Santos
173399a0b4 PR target/82002 Part 2: Correct non-immediate offset/invalid INSN
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
2017-11-04 22:38:43 +00:00
Andreas Tobler
59fcf6c3ec re PR libgcc/82635 (std::thread's join broken on FreeBSD with all GCCs >= 5)
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
2017-11-04 20:40:23 +01:00
Andre Vehreschild
7c4acac3a0 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
2017-11-04 15:35:45 +01:00
Thomas Koenig
0260e27840 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
2017-11-04 13:54:27 +00:00
Thomas Koenig
9a3d38f6dc re PR fortran/29600 ([F03] MINLOC and MAXLOC take an optional KIND argument)
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
2017-11-04 13:20:32 +00:00
Paul Thomas
77dacf9da6 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
2017-11-04 09:07:09 +00:00
Steven G. Kargl
9cfdd48417 re PR fortran/82796 (Private+equivalence in used module breaks compilation of pure function)
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
2017-11-04 00:34:40 +00:00
GCC Administrator
da768c5b5c Daily bump.
From-SVN: r254402
2017-11-04 00:16:16 +00:00
Jeff Law
150e34760f 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
2017-11-03 14:42:41 -06:00
Jeff Law
65ee6cb539 Add BZ marker to a recent change
From-SVN: r254397
2017-11-03 14:36:01 -06:00
Jeff Law
61959ba10b i386.c (ix86_emit_restore_reg_using_pop): Prototype.
* 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
2017-11-03 14:30:53 -06:00
Jakub Jelinek
245f6de13d 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
2017-11-03 20:08:25 +01:00
Steven G. Kargl
248b06ba7d 2017-11-3 Steven G. Kargl <kargl@gcc.gnu.org>
* gfortran.dg/large_real_kind_2.F90: Test passes on FreeBSD.  Remove
	dg-xfail-if directive.

From-SVN: r254390
2017-11-03 19:03:59 +00:00
Wilco Dijkstra
26895c21eb Improve aarch64_legitimate_constant_p
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
2017-11-03 18:19:33 +00:00
Sandra Loosemore
f66060c602 msa.c: Add -fcommon to dg-options.
2017-11-03  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/testsuite/
	* gcc.target/mips/msa.c: Add -fcommon to dg-options.

From-SVN: r254387
2017-11-03 13:45:45 -04:00
Jeff Law
74a6366d23 i386.c (ix86_expand_prologue): Tighten assert for int_registers_saved.
* config/i386/i386.c (ix86_expand_prologue): Tighten assert
	for int_registers_saved.

From-SVN: r254386
2017-11-03 11:14:23 -06:00
Uros Bizjak
ece615ecc6 re PR testsuite/82828 (i386/pr70263-2.c fail)
PR testsuite/82828
	PR rtl-optimization/70263
	* gcc.target/i386/pr70263-2.c: Fix invalid testcase.

From-SVN: r254385
2017-11-03 17:37:39 +01:00
Wilco Dijkstra
33a2e348a5 re PR c++/82768 (ICE in synthesize_implicit_template_parm, at cp/parser.c:39338)
Fix PR82768

Forcing LR at the bottom of the frame caused a few test failures.
Since there are some cases that generate worse code, revert this
part, and the frame tests pass again.

    gcc/
	PR target/82786
	* config/aarch64/aarch64.c (aarch64_layout_frame):
	Undo forcing of LR at bottom of frame.

From-SVN: r254384
2017-11-03 16:29:47 +00:00
Jeff Law
2965f1274c cfganal.c (single_pred_edge_ignoring_loop_edges): New function extracted from tree-ssa-dom.c.
* cfganal.c (single_pred_edge_ignoring_loop_edges): New function
	extracted from tree-ssa-dom.c.
	* cfganal.h (single_pred_edge_ignoring_loop_edges): Prototype.
	* tree-ssa-dom.c (single_incoming_edge_ignoring_loop_edges): Remove.
	(record_equivalences_from_incoming_edge): Add additional argument
	to single_pred_edge_ignoring_loop_edges call.
	* tree-ssa-uncprop.c (single_incoming_edge_ignoring_loop_edges): Remove.
	(uncprop_dom_walker::before_dom_children): Add additional argument
	to single_pred_edge_ignoring_loop_edges call.
	* tree-ssa-sccvn.c (sccvn_dom_walker::before_dom_children): Use
	single_pred_edge_ignoring_loop_edges rather than open coding.
	* tree-vrp.c (evrp_dom_walker::before_dom_children): Similarly.

From-SVN: r254383
2017-11-03 10:28:28 -06:00
Marc Glisse
6362654793 Generalize -(-X) a little
2017-11-03  Marc Glisse  <marc.glisse@inria.fr>

gcc/
	* match.pd (-(-A)): Rewrite.

gcc/testsuite/
	* gcc.dg/tree-ssa/negneg-1.c: New file.
	* gcc.dg/tree-ssa/negneg-2.c: Likewise.
	* gcc.dg/tree-ssa/negneg-3.c: Likewise.
	* gcc.dg/tree-ssa/negneg-4.c: Likewise.

From-SVN: r254382
2017-11-03 16:23:57 +00:00
Jonathan Wakely
e641ee437f Define std::endian for C++2a (P0463R1)
* include/std/type_traits (endian): Define new enumeration type.
	* testsuite/20_util/endian/1.cc: New test.

From-SVN: r254381
2017-11-03 15:45:49 +00:00
Segher Boessenkool
d04814543c rs6000: Remove rs6000_emit_sISEL
Instead of calling rs6000_emit_sISEL, call rs6000_emit_int_cmove
directly, in the one place it is used.


	* config/rs6000/rs60000-protos.h (rs6000_emit_sISEL): Delete.
	(rs6000_emit_int_cmove): New declaration.
	* config/rs6000/rs6000.c (rs6000_emit_int_cmove): Delete declaration.
	(rs6000_emit_sISEL): Delete.
	(rs6000_emit_int_cmove): Make non-static.
	* config/rs6000/rs6000.md (cstore<mode>4): Use rs6000_emit_int_cmove
	instead of rs6000_emit_sISEL.

From-SVN: r254380
2017-11-03 16:44:29 +01:00
Jan Hubicka
e7a740068e asan.c (create_cond_insert_point): Maintain profile.
* asan.c (create_cond_insert_point): Maintain profile.
	* ipa-utils.c (ipa_merge_profiles): Be sure only IPA profiles are
	merged.
	* basic-block.h (struct basic_block_def): Remove frequency.
	(EDGE_FREQUENCY): Use to_frequency
	* bb-reorder.c (push_to_next_round_p): Use only IPA counts for global
	heuristics.
	(find_traces): Update to use to_frequency.
	(find_traces_1_round): Likewise; use only IPA counts.
	(bb_to_key): Likewise.
	(connect_traces): Use IPA counts only.
	(copy_bb_p): Update to use to_frequency.
	(fix_up_crossing_landing_pad): Likewise.
	(sanitize_hot_paths): Likewise.
	* bt-load.c (basic_block_freq): Likewise.
	* cfg.c (init_flow): Set count_max to uninitialized.
	(check_bb_profile): Remove frequencies; check counts.
	(dump_bb_info): Do not dump frequencies.
	(update_bb_profile_for_threading): Update counts only.
	(scale_bbs_frequencies_int): Likewise.
	(MAX_SAFE_MULTIPLIER): Remove.
	(scale_bbs_frequencies_gcov_type): Update counts only.
	(scale_bbs_frequencies_profile_count): Update counts only.
	(scale_bbs_frequencies): Update counts only.
	* cfg.h (struct control_flow_graph): Add count-max.
	(update_bb_profile_for_threading): Update prototype.
	* cfgbuild.c (find_bb_boundaries): Do not update frequencies.
	(find_many_sub_basic_blocks): Likewise.
	* cfgcleanup.c (try_forward_edges): Likewise.
	(try_crossjump_to_edge): Likewise.
	* cfgexpand.c (expand_gimple_cond): Likewise.
	(expand_gimple_tailcall): Likewise.
	(construct_init_block): Likewise.
	(construct_exit_block): Likewise.
	* cfghooks.c (verify_flow_info): Check consistency of counts.
	(dump_bb_for_graph): Do not dump frequencies.
	(split_block_1): Do not update frequencies.
	(split_edge): Do not update frequencies.
	(make_forwarder_block): Do not update frequencies.
	(duplicate_block): Do not update frequencies.
	(account_profile_record): Do not update frequencies.
	* cfgloop.c (find_subloop_latch_edge_by_profile): Use IPA counts
	for global heuristics.
	* cfgloopanal.c (average_num_loop_insns): Update to use to_frequency.
	(expected_loop_iterations_unbounded): Use counts only.
	* cfgloopmanip.c (scale_loop_profile): Simplify.
	(create_empty_loop_on_edge): Simplify
	(loopify): Simplify
	(duplicate_loop_to_header_edge): Simplify
	* cfgrtl.c (force_nonfallthru_and_redirect): Update profile.
	(update_br_prob_note): Take care of removing note when profile
	becomes undefined.
	(relink_block_chain): Do not dump frequency.
	(rtl_account_profile_record): Use to_frequency.
	* cgraph.c (symbol_table::create_edge): Convert count to ipa count.
	(cgraph_edge::redirect_call_stmt_to_calle): Conver tcount to ipa count.
	(cgraph_update_edges_for_call_stmt_node): Likewise.
	(cgraph_edge::verify_count_and_frequency): Update.
	(cgraph_node::verify_node): Temporarily disable frequency verification.
	* cgraphbuild.c (compute_call_stmt_bb_frequency): Use
	to_cgraph_frequency.
	(cgraph_edge::rebuild_edges): Convert to ipa counts.
	* cgraphunit.c (init_lowered_empty_function): Do not initialize
	frequencies.
	(cgraph_node::expand_thunk): Update profile.
	* except.c (dw2_build_landing_pads): Do not update frequency.
	* final.c (compute_alignments): Use to_frequency.
	(dump_basic_block_info): Do not dump frequency.
	* gimple-pretty-print.c (dump_profile): Do not dump frequency.
	(dump_gimple_bb_header): Do not dump frequency.
	* gimple-ssa-isolate-paths.c (isolate_path): Do not update frequency;
	do update count.
	* gimple-streamer-in.c (input_bb): Do not stream frequency.
	* gimple-streamer-out.c (output_bb): Do not stream frequency.
	* haifa-sched.c (sched_pressure_start_bb): Use to_freuqency.
	(init_before_recovery): Do not update frequency.
	(sched_create_recovery_edges): Do not update frequency.
	* hsa-gen.c (convert_switch_statements): Do not update frequency.
	* ipa-cp.c (ipcp_propagate_stage): Update search for max_count.
	(ipa_cp_c_finalize): Set max_count to uninitialized.
	* ipa-fnsummary.c (get_minimal_bb): Use counts.
	(param_change_prob): Use counts.
	* ipa-profile.c (ipa_profile_generate_summary): Do not summarize
	local profiles.
	* ipa-split.c (consider_split): Use to_frequency.
	(split_function): Use to_frequency.
	* ira-build.c (loop_compare_func): Likewise.
	(mark_loops_for_removal): Likewise.
	(mark_all_loops_for_removal): Likewise.
	* loop-doloop.c (doloop_modify): Do not update frequency.
	* loop-unroll.c (unroll_loop_runtime_iterations): Do not update
	frequency.
	* lto-streamer-in.c (input_function): Update count_max.
	* omp-expand.c (expand_omp_taskreg): Update count_max.
	* omp-simd-clone.c (simd_clone_adjust): Update profile.
	* predict.c (maybe_hot_frequency_p): Use to_frequency.
	(maybe_hot_count_p): Use ipa counts only.
	(maybe_hot_bb_p): Simplify.
	(maybe_hot_edge_p): Simplify.
	(probably_never_executed): Do not take frequency argument.
	(probably_never_executed_bb_p): Do not pass frequency.
	(probably_never_executed_edge_p): Likewise.
	(combine_predictions_for_bb): Check that profile is nonzero.
	(propagate_freq): Do not set frequency.
	(drop_profile): Simplify.
	(counts_to_freqs): Simplify.
	(expensive_function_p): Use to_frequency.
	(propagate_unlikely_bbs_forward): Simplify.
	(determine_unlikely_bbs): Simplify.
	(estimate_bb_frequencies): Add hack to silence graphite issues.
	(compute_function_frequency): Use ipa counts.
	(pass_profile::execute): Update.
	(rebuild_frequencies): Use counts only.
	(force_edge_cold): Use counts only.
	* profile-count.c (profile_count::dump): Dump new count types.
	(profile_count::differs_from_p): Check compatiblity.
	(profile_count::to_frequency): New function.
	(profile_count::to_cgraph_frequency): New function.
	* profile-count.h (struct function): Declare.
	(enum profile_quality): Add profile_guessed_local and
	profile_guessed_global0.
	(class profile_proability): Decrease number of bits to 29;
	update from_reg_br_prob_note and to_reg_br_prob_note.
	(class profile_count: Update comment; decrease number of bits
	to 61. Check compatibility.
	(profile_count::compatible_p): New private member function.
	(profile_count::ipa_p): New member function.
	(profile_count::operator<): Handle global zero correctly.
	(profile_count::operator>): Handle global zero correctly.
	(profile_count::operator<=): Handle global zero correctly.
	(profile_count::operator>=): Handle global zero correctly.
	(profile_count::nonzero_p): New member function.
	(profile_count::force_nonzero): New member function.
	(profile_count::max): New member function.
	(profile_count::apply_scale): Handle IPA scalling.
	(profile_count::guessed_local): New member function.
	(profile_count::global0): New member function.
	(profile_count::ipa): New member function.
	(profile_count::to_frequency): Declare.
	(profile_count::to_cgraph_frequency): Declare.
	* profile.c (OVERLAP_BASE): Delete.
	(compute_frequency_overlap): Delete.
	(compute_branch_probabilities): Do not use compute_frequency_overlap.
	* regs.h (REG_FREQ_FROM_BB): Use to_frequency.
	* sched-ebb.c (rank): Use counts only.
	* shrink-wrap.c (handle_simple_exit): Use counts only.
	(try_shrink_wrapping): Use counts only.
	(place_prologue_for_one_component): Use counts only.
	* tracer.c (find_best_predecessor): Use to_frequency.
	(find_trace): Use to_frequency.
	(tail_duplicate): Use to_frequency.
	* trans-mem.c (expand_transaction): Do not update frequency.
	* tree-call-cdce.c: Do not update frequency. 
	* tree-cfg.c (gimple_find_sub_bbs): Likewise.
	(gimple_merge_blocks): Likewise.
	(gimple_split_edge): Likewise.
	(gimple_duplicate_sese_region): Likewise.
	(gimple_duplicate_sese_tail): Likewise.
	(move_sese_region_to_fn): Likewise.
	(gimple_account_profile_record): Likewise.
	(insert_cond_bb): Likewise.
	* tree-complex.c (expand_complex_div_wide): Likewise.
	* tree-eh.c (lower_resx): Update profile.
	* tree-inline.c (copy_bb): Simplify count scaling; do not scale
	frequencies.
	(initialize_cfun): Do not initialize frequencies
	(freqs_to_counts): Delete.
	(copy_cfg_body): Ignore count parameter.
	(copy_body): Update.
	(expand_call_inline): Update count_max.
	(optimize_inline_calls): Update count_max.
	(tree_function_versioning): Update count_max.
	* tree-ssa-coalesce.c (coalesce_cost_bb): Use to_frequency.
	* tree-ssa-ifcombine.c (update_profile_after_ifcombine): Do not update
	frequency.
	* tree-ssa-loop-im.c (execute_sm_if_changed): Use counts only.
	* tree-ssa-loop-ivcanon.c (unloop_loops): Do not update freuqency.
	(try_peel_loop): Likewise.
	* tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Use
	to_frequency.
	* tree-ssa-loop-manip.c (niter_for_unrolled_loop): Pass -1.
	(tree_transform_and_unroll_loop): Do not use frequencies
	* tree-ssa-loop-niter.c (estimate_numbers_of_iterations):
	Use reliable prediction only.
	* tree-ssa-loop-unswitch.c (hoist_guard): Do not use frequencies.
	* tree-ssa-sink.c (select_best_block): Use to_frequency.
	* tree-ssa-tail-merge.c (replace_block_by): Temporarily disable
	probability scaling.
	* tree-ssa-threadupdate.c (create_block_for_threading): Do
	not update frequency
	(any_remaining_duplicated_blocks): Likewise.
	(update_profile): Likewise.
	(estimated_freqs_path): Delete.
	(freqs_to_counts_path): Delete.
	(clear_counts_path): Delete.
	(ssa_fix_duplicate_block_edges): Likewise.
	(duplicate_thread_path): Likewise.
	* tree-switch-conversion.c (gen_inbound_check): Use counts.
	* tree-tailcall.c (decrease_profile): Do not update frequency.
	(eliminate_tail_call): Likewise.
	* tree-vect-loop-manip.c (vect_do_peeling): Likewise.
	* tree-vect-loop.c (scale_profile_for_vect_loop): Likewise.
	(optimize_mask_stores): Likewise.
	* tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise.
	* ubsan.c (ubsan_expand_null_ifn): Update profile.
	(ubsan_expand_ptr_ifn): Update profile.
	* value-prof.c (gimple_ic): Simplify.
	* value-prof.h (gimple_ic): Update prototype.
	* ipa-inline-transform.c (inline_transform): Fix scaling conditoins.
	* ipa-inline.c (compute_uninlined_call_time): Be sure that
	counts are nonzero.
	(want_inline_self_recursive_call_p): Likewise.
	(resolve_noninline_speculation): Only cummulate defined counts.
	(inline_small_functions): Use nonzero_p.
	(ipa_inline): Do not access freed node.

Unknown ChangeLog:

2017-11-02  Jan Hubicka  <hubicka@ucw.cz>

	* testsuite/gcc.dg/no-strict-overflow-3.c (foo): Update magic
	value to not clash with frequency.
	* testsuite/gcc.dg/strict-overflow-3.c (foo): Likewise.
	* testsuite/gcc.dg/tree-ssa/builtin-sprintf-2.c: Update template.
	* testsuite/gcc.dg/tree-ssa/dump-2.c: Update template.
	* testsuite/gcc.dg/tree-ssa/ifc-10.c: Update template.
	* testsuite/gcc.dg/tree-ssa/ifc-11.c: Update template.
	* testsuite/gcc.dg/tree-ssa/ifc-12.c: Update template.
	* testsuite/gcc.dg/tree-ssa/ifc-20040816-1.c: Update template.
	* testsuite/gcc.dg/tree-ssa/ifc-20040816-2.c: Update template.
	* testsuite/gcc.dg/tree-ssa/ifc-5.c: Update template.
	* testsuite/gcc.dg/tree-ssa/ifc-8.c: Update template.
	* testsuite/gcc.dg/tree-ssa/ifc-9.c: Update template.
	* testsuite/gcc.dg/tree-ssa/ifc-cd.c: Update template.
	* testsuite/gcc.dg/tree-ssa/ifc-pr56541.c: Update template.
	* testsuite/gcc.dg/tree-ssa/ifc-pr68583.c: Update template.
	* testsuite/gcc.dg/tree-ssa/ifc-pr69489-1.c: Update template.
	* testsuite/gcc.dg/tree-ssa/ifc-pr69489-2.c: Update template.
	* testsuite/gcc.target/i386/pr61403.c: Update template.

From-SVN: r254379
2017-11-03 15:42:30 +00:00