Skip to content
Snippets Groups Projects
  1. Jan 24, 2020
    • Maciej W. Rozycki's avatar
      Add `--with-toolexeclibdir=' configuration option · e8e66971
      Maciej W. Rozycki authored
      Provide means, in the form of a `--with-toolexeclibdir=' configuration
      option, to override the default installation directory for target
      libraries, otherwise known as $toolexeclibdir.  This is so that it is
      possible to get newly-built libraries, particularly the shared ones,
      installed in a common place, so that they can be readily used by the
      target system as their host libraries, possibly over NFS, without a need
      to manually copy them over from the currently hardcoded location they
      would otherwise be installed in.
      
      In the presence of the `--enable-version-specific-runtime-libs' option
      and for configurations building native GCC the option is ignored.
      
      	config/
      	* toolexeclibdir.m4: New file.
      
      	gcc/
      	* doc/install.texi (Cross-Compiler-Specific Options): Document
      	`--with-toolexeclibdir' option.
      
      	libada/
      	* Makefile.in (configure_deps): Add `toolexeclibdir.m4'.
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* configure: Regenerate.
      
      	libatomic/
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      	* testsuite/Makefile.in: Regenerate.
      
      	libffi/
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      	* include/Makefile.in: Regenerate.
      	* man/Makefile.in: Regenerate.
      	* testsuite/Makefile.in: Regenerate.
      
      	libgcc/
      	* Makefile.in (configure_deps): Add `toolexeclibdir.m4'.
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* configure: Regenerate.
      
      	libgfortran/
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      
      	libgomp/
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      	* testsuite/Makefile.in: Regenerate.
      
      	libhsail-rt/
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      
      	libitm/
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      	* testsuite/Makefile.in: Regenerate.
      
      	libobjc/
      	* Makefile.in (aclocal_deps): Add `toolexeclibdir.m4'.
      	* aclocal.m4: Include `toolexeclibdir.m4'.
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* configure: Regenerate.
      
      	liboffloadmic/
      	* plugin/configure.ac: Handle `--with-toolexeclibdir='.
      	* plugin/Makefile.in: Regenerate.
      	* plugin/aclocal.m4: Regenerate.
      	* plugin/configure: Regenerate.
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      
      	libphobos/
      	* m4/druntime.m4: Handle `--with-toolexeclibdir='.
      	* m4/Makefile.in: Regenerate.
      	* libdruntime/Makefile.in: Regenerate.
      	* src/Makefile.in: Regenerate.
      	* testsuite/Makefile.in: Regenerate.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      
      	libquadmath/
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      
      	libsanitizer/
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      	* asan/Makefile.in: Regenerate.
      	* interception/Makefile.in: Regenerate.
      	* libbacktrace/Makefile.in: Regenerate.
      	* lsan/Makefile.in: Regenerate.
      	* sanitizer_common/Makefile.in: Regenerate.
      	* tsan/Makefile.in: Regenerate.
      	* ubsan/Makefile.in: Regenerate.
      
      	libssp/
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      
      	libstdc++-v3/
      	* acinclude.m4: Handle `--with-toolexeclibdir='.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      	* doc/Makefile.in: Regenerate.
      	* include/Makefile.in: Regenerate.
      	* libsupc++/Makefile.in: Regenerate.
      	* po/Makefile.in: Regenerate.
      	* python/Makefile.in: Regenerate.
      	* src/Makefile.in: Regenerate.
      	* src/c++11/Makefile.in: Regenerate.
      	* src/c++17/Makefile.in: Regenerate.
      	* src/c++98/Makefile.in: Regenerate.
      	* src/filesystem/Makefile.in: Regenerate.
      	* testsuite/Makefile.in: Regenerate.
      
      	libvtv/
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      	* testsuite/Makefile.in: Regenerate.
      
      	zlib/
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      e8e66971
    • Jan Hubicka's avatar
      libgcov: Fix merging of topn [PR92924] · e3fe0070
      Jan Hubicka authored
      	PR tree-optimization/92924
      	* libgcov-merge.c (merge_topn_values_set): Fix merging.
      e3fe0070
    • Christophe Lyon's avatar
      debug/92763 Fix testcase to require fopenmp · ad8e2415
      Christophe Lyon authored
      The testcase fails to link on targets without -pthread which is
      implied by -fopenmp. Use dg-require-effective-target fopenmp to avoid
      this problem.
      
      2020-01-24  Christophe Lyon  <christophe.lyon@linaro.org>
      
      	PR debug/92763
      	* g++.dg/debug/pr92763.C: Require fopenmp.
      ad8e2415
    • Frederik Harwath's avatar
      Add missing ChangeLog entry for my last commit · 9e424d97
      Frederik Harwath authored
      libgomp/ChangeLog: Add entry for commit 4bd03ed6.
      9e424d97
    • Frederik Harwath's avatar
      Fix expectation and types in acc_get_property tests · 4bd03ed6
      Frederik Harwath authored
      
      * Weaken expectation concerning acc_property_free_memory.
        Do not expect the value returned by CUDA since that value might have
        changed in the meantime.
      * Use correct type for the results of calls to acc_get_property in tests.
      
      libgomp/
      	* testsuite/libgomp.oacc-c-c++-common/acc_get_property-aux.c
      	(expect_device_properties): Remove "expected_free_mem" argument,
      	change "expected_total_mem" argument type to size_t;
      	change types of acc_get_property results to size_t,
      	adapt format strings.
      	* testsuite/libgomp.oacc-c-c++-common/acc_get_property.c:
      	Use %zu instead of %zd to print size_t values.
      	* testsuite/libgomp.oacc-c-c++-common/acc_get_property-2.c: Adapt and
      	rename to ...
      	* testsuite/libgomp.oacc-c-c++-common/acc_get_property-nvptx.c: ... this.
      	* testsuite/libgomp.oacc-c-c++-common/acc_get_property-3.c: Adapt and
      	rename to ...
      	* testsuite/libgomp.oacc-c-c++-common/acc_get_property-host.c: ... this.
      
      Reviewed-by: default avatarThomas Schwinge <thomas@codesourcery.com>
      4bd03ed6
    • Hans-Peter Nilsson's avatar
      doc: target.def (flags_regnum): Also mention effect on delay slot filling. · 9adea939
      Hans-Peter Nilsson authored
      * target.def (flags_regnum): Also mention effect on delay slot filling.
      * doc/tm.texi: Regenerate.
      
      Previously only mentioned an effect on compare elimination.
      9adea939
    • David Malcolm's avatar
      analyzer: avoid relying on system <assert.h> in testsuite (PR 93367) · a0b935ac
      David Malcolm authored
      PR analyzer/93367 reports a testsuite failure in abort.c on
      hppa64-hp-hpux11.11 when detecting if the analyzer "knows" that the
      condition holds after the assert.
      
      The root cause is that the assertion failure function in that
      configuration's <assert.h> is not marked with
      __attribute__ ((__noreturn__)).
      
      This patch reworks the test to avoid <assert.h> in favor of a custom
      implementation of assert, so that the test demonstrates the idea without
      relying on properties of <assert.h>.
      
      gcc/testsuite/ChangeLog:
      	PR analyzer/93367
      	* gcc.dg/analyzer/abort.c: Remove include of <assert.h>.
      	Replace use of assert with a custom assertion implementation.
      a0b935ac
    • GCC Administrator's avatar
      Daily bump. · 472dc648
      GCC Administrator authored
      472dc648
    • Ian Lance Taylor's avatar
      internal/cpu: don't define CacheLinePadSize for riscv64 · 1e156d9b
      Ian Lance Taylor authored
      In libgo CacheLinePadSize is defined by the generated file cpugen.go.
      
      Keep cpu_riscv64.go around, even though it is now empty, so that
      we will pick up changes to it in future merges.
      
      Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/216077
      1e156d9b
  2. Jan 23, 2020
    • Jeff Law's avatar
      Fix diagnostic text on H8. · dfa075d0
      Jeff Law authored
      	* config/h8300/h8300.c (h8300_option_override): Fix diagnostic text.
      dfa075d0
    • Jeff Law's avatar
      Fix profiling issue on H8 port · efe0fd93
      Jeff Law authored
      	* config/h8300/h8300.h (FUNCTION_PROFILER): Fix emission of
      	profiling label
      efe0fd93
    • Jakub Jelinek's avatar
      testsuite: Require lp64 target rather x86_64-*-* in pr93027.c. [PR93027] · 3a26c7b3
      Jakub Jelinek authored
      I've noticed this test failed on x86_64-linux with -m32 or -mx32 testing,
      the triplet doesn't really say which actual multilib it is, and the test
      really works with lp64.
      
      2020-01-23  Jakub Jelinek  <jakub@redhat.com>
      
      	PR inline-asm/93027
      	* gcc.target/i386/pr93027.c: Require lp64 target rather x86_64-*-*.
      3a26c7b3
    • Alexandre Oliva's avatar
      [libiberty] output empty args as a pair of quotes · 18193e8f
      Alexandre Oliva authored
      writeargv writes out empty arguments in a way that expandargv skips
      them instead of preserving them.  Fixed by writing out a pair of
      quotes for them.
      
      
      for  libiberty/ChangeLog
      
      	* argv.c (writeargv): Output empty args as "".
      18193e8f
    • Alexandre Oliva's avatar
      reject macros in math decl check · f9e84b31
      Alexandre Oliva authored
      The C++ headers #undef the functions we are testing for, just in case
      they're implemented as macros, so do that in the cross math decl tests
      as well.
      
      
      for  libstdc++-v3/ChangeLog
      
      	* crossconfig.m4 (GLIBCXX_CHECK_MATH_DECL): Reject macros.
      	* configure: Rebuild.
      f9e84b31
    • Alexandre Oliva's avatar
      tolerate padding in mbstate_t · 7a900bce
      Alexandre Oliva authored
      Padding in mbstate_t objects may get the memcmp to fail.
      Attempt to avoid the failure with zero initialization.
      
      
      for  libstdc++-v3/ChangeLog
      
      	* testsuite/27_io/fpos/mbstate_t/1.cc: Zero-init mbstate_t.
      7a900bce
    • Jakub Jelinek's avatar
      postreload: Fix up postreload combine [PR93402] · 32667e04
      Jakub Jelinek authored
      The following testcase is miscompiled, because the postreload pass changes:
      -(insn 14 13 23 2 (parallel [
      -            (set (reg:DI 1 dx [94])
      -                (plus:DI (reg:DI 1 dx [95])
      -                    (reg:DI 5 di [92])))
      -            (clobber (reg:CC 17 flags))
      -        ]) "pr93402.c":8:30 186 {*adddi_1}
      -     (expr_list:REG_EQUAL (plus:DI (reg:DI 5 di [92])
      -            (const_int 111111111111 [0x19debd01c7]))
      -        (nil)))
      -(insn 23 14 25 2 (set (reg:SI 0 ax)
      +(insn 23 13 25 2 (set (reg:SI 0 ax)
               (const_int 0 [0])) "pr93402.c":10:1 67 {*movsi_internal}
            (nil))
       (insn 25 23 26 2 (use (reg:SI 0 ax)) "pr93402.c":10:1 -1
            (nil))
      -(insn 26 25 35 2 (use (reg:DI 1 dx)) "pr93402.c":10:1 -1
      +(insn 26 25 35 2 (use (plus:DI (reg:DI 1 dx [95])
      +            (reg:DI 5 di [92]))) "pr93402.c":10:1 -1
            (nil))
      A USE insn is not a normal insn and verify_changes called from
      apply_change_group is happy about any changes into it.
      The following patch avoids this optimization if we were to change
      the USE operand (this routine only changes a reg into (plus reg reg2)).
      
      2020-01-23  Jakub Jelinek  <jakub@redhat.com>
      
      	PR rtl-optimization/93402
      	* postreload.c (reload_combine_recognize_pattern): Don't try to adjust
      	USE insns.
      
      	* gcc.c-torture/execute/pr93402.c: New test.
      32667e04
    • Paolo Carlini's avatar
      Fix "PR c++/92804 ICE trying to use concept as a nested-name-specifier" · c9107224
      Paolo Carlini authored
      A rather simple ICE where we failed to properly check for concept-ids
      uses in nested-name-specifiers.
      
      Tested x86_64-linux.
      
             /cp
             PR c++/92804
             * parser.c (cp_parser_nested_name_specifier_opt): Properly
             diagnose concept-ids.
      
             /testsuite
             PR c++/92804
             * g++.dg/concepts/pr92804-1.C: New.
             * g++.dg/concepts/pr92804-2.C: New.
      c9107224
    • Jason Merrill's avatar
      c++: Avoid ICE when constant evaluation of __builtin_strchr fails. · 6f346913
      Jason Merrill authored
      If we can't change the argument to &"...", use the original arg instead of
      the partially munged one.
      
      	PR c++/93331 - ICE with __builtin_strchr.
      	* constexpr.c (cxx_eval_builtin_function_call): Use the original
      	argument if we didn't manage to extract a STRING_CST.
      6f346913
    • Jason Merrill's avatar
      c++: Fix ICE with defaulted destructor and template. · 20afdcd3
      Jason Merrill authored
      In a template we don't instantiate a deferred noexcept-spec, and we don't
      need it because we aren't going to do anything with the value of
      throwing_cleanup in a template anyway.
      
      	PR c++/93345 - ICE with defaulted dtor and template.
      	PR c++/33799
      	* decl.c (cxx_maybe_build_cleanup): Don't try to set
      	throwing_cleanup in a template.
      20afdcd3
    • David Malcolm's avatar
      analyzer: avoid ICE with missing arguments (PR 93375) · 648796da
      David Malcolm authored
      PR analyzer/93375 reports an ICE under certain circumstances
      involving a call where the number of arguments at the callsite
      is less than the parameter count of the callee,
      
      Specifically, the ICE occurs when pruning a checker_path for a
      diagnostic, when attempting to maintain which expression is of
      interest through such a call.
      
      The root cause is an assumption that there were enough arguments at
      the callsite, within callgraph_superedge's methods for mapping
      expressions between callee and caller.
      
      This patch adds checks for this to the relevant methods, fixing the ICE.
      
      gcc/analyzer/ChangeLog:
      	PR analyzer/93375
      	* supergraph.cc (callgraph_superedge::get_arg_for_parm): Fail
      	gracefully is the number of parameters at the callee exceeds the
      	number of arguments at the call stmt.
      	(callgraph_superedge::get_parm_for_arg): Likewise.
      
      gcc/testsuite/ChangeLog:
      	PR analyzer/93375
      	* gcc.dg/analyzer/pr93375.c: New test.
      648796da
    • Jason Merrill's avatar
      c-family: One more 40752 tweak for unsigned char. · 6d00f052
      Jason Merrill authored
      My last patch didn't fix all the failures on unsignd char targets.  We were
      missing one warning because by suppressing -Wsign-conversion for the second
      operand of + we missed an overflow that we want to warn about, and we
      properly don't warn about unsigned / or %.
      
      	PR testsuite/93391 - PR 40752 test fails with unsigned plain char.
      	* c-warn.c (conversion_warning): Change -Wsign-conversion handling.
      	* lib/target-supports.exp (check_effective_target_unsigned_char):
      	New.
      6d00f052
    • Dragan Mladjenovic's avatar
      Emit .note.GNU-stack for hard-float linux targets. · 54b3d52c
      Dragan Mladjenovic authored
      libgcc/ChangeLog:
      
      2020-01-23  Dragan Mladjenovic  <dmladjenovic@wavecomp.com>
      
      	* config/mips/gnustack.h: Check for TARGET_LIBC_GNUSTACK also.
      
      gcc/ChangeLog:
      
      2020-01-23  Dragan Mladjenovic  <dmladjenovic@wavecomp.com>
      
      	* config.in: Regenerated.
      	* config/mips/linux.h (NEED_INDICATE_EXEC_STACK): Define to 1
      	for TARGET_LIBC_GNUSTACK.
      	* configure: Regenerated.
      	* configure.ac: Define TARGET_LIBC_GNUSTACK if glibc version is
      	found to be 2.31 or greater.
      54b3d52c
    • Dragan Mladjenovic's avatar
      Emit .note.GNU-stack for soft-float linux targets. · a3c1e1f2
      Dragan Mladjenovic authored
      gcc/ChangeLog:
      
      2020-01-23  Dragan Mladjenovic  <dmladjenovic@wavecomp.com>
      
      	* config/mips/linux.h (NEED_INDICATE_EXEC_STACK): Define to
      	TARGET_SOFT_FLOAT.
      	* config/mips/mips.c (TARGET_ASM_FILE_END): Define to ...
      	(mips_asm_file_end): New function. Delegate to
      	file_end_indicate_exec_stack if NEED_INDICATE_EXEC_STACK is true.
      	* config/mips/mips.h (NEED_INDICATE_EXEC_STACK): Define to 0.
      
      libgcc/ChangeLog:
      
      2020-01-23  Dragan Mladjenovic  <dmladjenovic@wavecomp.com>
      
      	* config/mips/gnustack.h: New file.
      	* config/mips/crti.S: Include gnustack.h.
      	* config/mips/crtn.S: Likewise.
      	* config/mips/mips16.S: Likewise.
      	* config/mips/vr4120-div.S: Likewise.
      a3c1e1f2
    • Jakub Jelinek's avatar
      i386: Fix ICEs on TImode signed overflow add/sub patterns [PR93376] · c124b345
      Jakub Jelinek authored
      The following testcase ICEs, because during try_combine of i3:
      (insn 18 17 19 2 (parallel [
                  (set (reg:CCO 17 flags)
                      (eq:CCO (plus:OI (sign_extend:OI (reg:TI 96))
                              (const_int 1 [0x1]))
                          (sign_extend:OI (plus:TI (reg:TI 96)
                                  (const_int 1 [0x1])))))
                  (set (reg:TI 98)
                      (plus:TI (reg:TI 96)
                          (const_int 1 [0x1])))
              ]) "pr93376.c":8:10 223 {*addvti4_doubleword_1}
           (expr_list:REG_UNUSED (reg:TI 98)
              (expr_list:REG_DEAD (reg:TI 96)
                  (nil))))
      and i2:
      (insn 17 37 18 2 (set (reg:TI 96)
              (const_wide_int 0x7fffffffffffffffffffffffffffffff)) "pr93376.c":8:10 65 {*movti_internal}
           (nil))
      the eq in there gets simplified into:
      (eq:CCO (const_wide_int 0x080000000000000000000000000000000)
          (const_wide_int 0x80000000000000000000000000000000))
      and simplify-rtx.c tries to simplify it by simplifying MINUS
      of the two operands.
      Now, i386 defines MAX_BITSIZE_MODE_ANY_INT to 128, because OImode
      and XImode are used mainly as a placeholder for the vector modes;
      these new signed overflow patterns are an exception to that,
      but what they really need is just TImode precision + 1 (maybe 2 worst case)
      bits at any time.
      
      wide-int.h defines WIDE_INT_MAX_ELTS in a way that it contains one more
      HWI above number of HWIs to cover WIDE_INT_MAX_ELTS, so on i386 that is
      3 HWIs, meaning that TImode precision + 1/2 bits is still representable in
      there.  Unfortunately, the way wi::sub_large is implemented, it needs
      not just those 3 HWIs, but one HWI above the maximum of the lengths of
      both operands, which means it buffer overflows, overwrites the following
      precision in wide_int_storage and ICEs later on.  The need for 4 HWIs is
      only temporary, because canonize immediately after it canonicalizes it
      back to 3 HWIs only.
      
      The patch is something suggested by Richard S., avoid using OImode
      for this and instead use a partial int mode that is smaller.
      
      2020-01-23  Jakub Jelinek  <jakub@redhat.com>
      
      	PR target/93376
      	* config/i386/i386-modes.def (POImode): New mode.
      	(MAX_BITSIZE_MODE_ANY_INT): Change from 128 to 160.
      	* config/i386/i386.md (DPWI): New mode attribute.
      	(addv<mode>4, subv<mode>4): Use <DPWI> instead of <DWI>.
      	(QWI): Rename to...
      	(QPWI): ... this.  Use POI instead of OI for TImode.
      	(*addv<dwi>4_doubleword, *addv<dwi>4_doubleword_1,
      	*subv<dwi>4_doubleword, *subv<dwi>4_doubleword_1): Use <QPWI>
      	instead of <QWI>.
      
      	* gcc.dg/pr93376.c: New test.
      c124b345
    • Jonathan Wakely's avatar
      libstdc++: Simplify makefile rule for largefile-config.h (PR91947) · 04681fca
      Jonathan Wakely authored
      The previous rule could leave an incomplete file if the build was
      interrupted, which would then not be remade if make was run again.
      
      This makes the rule more robust by writing to a temporary file and only
      moving it into place as the final step. It also simplifies the rule so
      that only the essential macro definitions are written to the file, not
      the explanatory comments and commented out #undef lines.
      
      Also, the macro for enabling LFS on Mac OS X 10.5 is now set
      unconditionally, which is a bug fix from upstream autoconf.
      
      	PR libstdc++/91947
      	* include/Makefile.am (${host_builddir}/largefile-config.h): Simplify
      	rule.
      	* include/Makefile.in: Regenerate.
      04681fca
    • Richard Sandiford's avatar
      aarch64: Fix -mtrack-speculation for irreversible conditions [PR93341] · 2214053f
      Richard Sandiford authored
      We can't yet represent the inverse of all conditions in rtl
      (see g:865257c4), triggering an ICE in the pass
      that handles -mtrack-speculation.  Since we don't expect these
      insns to be optimised in any way, the easiest fix seemed to be
      to add an insn that reverses the condition internally.
      
      2020-01-23  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	PR target/93341
      	* config/aarch64/aarch64.md (UNSPEC_SPECULATION_TRACKER_REV): New
      	unspec.
      	(speculation_tracker_rev): New pattern.
      	* config/aarch64/aarch64-speculation.cc (aarch64_do_track_speculation):
      	Use speculation_tracker_rev to track the inverse condition.
      
      gcc/testsuite/
      	PR target/93341
      	* gcc.target/aarch64/pr93341.c: New test.
      2214053f
    • David Malcolm's avatar
      analyzer: introduce analyzer-torture.exp · d16db16e
      David Malcolm authored
      gcc/testsuite/ChangeLog:
      	* gcc.dg/analyzer/data-model-3.c: Remove hardcoded "-O2" and move
      	to torture/conftest-1.c.
      	* gcc.dg/analyzer/torture/analyzer-torture.exp: New.
      	* gcc.dg/analyzer/torture/conftest-1.c: Move here from
      	analyzer/data-model-3.c.
      	* gcc.dg/analyzer/torture/poc.c: New test.
      d16db16e
    • Martin Liska's avatar
      Remove wrong bail out in prune_topn_counter. · e9ee848d
      Martin Liska authored
      	* libgcov-driver.c (prune_topn_counter): Remove
      	check for -1 as we only prune run-time counters
      	that do not generate an invalid state.
      e9ee848d
    • Andrew Stubbs's avatar
      Fix libgomp plugin-gcn bug · 14e5e746
      Andrew Stubbs authored
      2020-01-23  Andrew Stubbs  <ams@codesourcery.com>
      
      	libgomp/
      	* plugin/plugin-gcn.c (parse_target_attributes): Use correct mask for
      	the device id.
      14e5e746
    • Richard Biener's avatar
      tree-optimization/93354 FRE redundant store removal validity fix · f5ee5d05
      Richard Biener authored
      This fixes tracking of the alias-set of partial defs for use by
      redundant store removal.
      
      2020-01-23  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/93381
      	* tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Take
      	alias-set of the def as argument and record the first one.
      	(vn_walk_cb_data::first_set): New member.
      	(vn_reference_lookup_3): Pass the alias-set of the current def
      	to push_partial_def.  Fix alias-set used in the aggregate copy
      	case.
      	(vn_reference_lookup): Consistently set *last_vuse_ptr.
      	* real.c (clear_significand_below): Fix out-of-bound access.
      
      	* gcc.dg/torture/pr93354.c: New testcase.
      f5ee5d05
    • Jakub Jelinek's avatar
      i386: Use bzhi for x & ((1 << y) - 1) or x & ((1U << y) - 1) [PR93346] · 9592f639
      Jakub Jelinek authored
      The bzhi patterns are quite complicated because they need to accurately
      describe the behavior of the instruction for all input values.
      The following patterns are simple and make bzhi recognizable even for
      cases where not all input values are valid, because the user used
      a shift, in which case the low 8 bit of the last operand need to be in
      between 0 and precision-1.
      
      2020-01-23  Jakub Jelinek  <jakub@redhat.com>
      
      	PR target/93346
      	* config/i386/i386.md (*bmi2_bzhi_<mode>3_2, *bmi2_bzhi_<mode>3_3):
      	New define_insn patterns.
      
      	* gcc.target/i386/pr93346.c: New test.
      9592f639
    • Martin Sebor's avatar
      PR c/84919 - bogus -Wrestrict on sprintf %p with destination as argument · 8a990ffa
      Martin Sebor authored
      gcc/c-family/ChangeLog:
      
      	PR c/84919
      	* c-common.c (check_function_arguments): Avoid overlap checking
      	of sprintf functions.
      
      gcc/testsuite/ChangeLog:
      
      	PR c/84919
      	* gcc.dg/Wrestrict-20.c: New test.
      8a990ffa
    • Richard Sandiford's avatar
      aarch64: Skip whilele_1.C test for ILP32 · 0ed442a4
      Richard Sandiford authored
      The definitions of the integer types for ILP32 newlib make the
      resolution of some of the bool-related tests ambiguous.
      
      2020-01-23  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/testsuite/
      	* g++.target/aarch64/sve/acle/general-c++/whilele_1.C: Skip for ILP32.
      0ed442a4
    • Richard Sandiford's avatar
      aarch64: Skip some SVE ACLE function-body tests for ILP32 · b02fbed1
      Richard Sandiford authored
      The load, store, prefetch and alias-check test functions require
      extra zero extends for ILP32, so they don't match the expected function
      bodies.  This patch therefore skips those parts of the tests for ILP32,
      but keeps the compile/assemble parts.
      
      2020-01-23  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/testsuite/
      	* gcc.target/aarch64/sve/acle/asm/ld1_f16.c: Skip check-function-bodies
      	test for ILP32.
      	* gcc.target/aarch64/sve/acle/asm/ld1_f32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1_f64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1_gather_f32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1_gather_f64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1_gather_s32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1_gather_s64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1_gather_u32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1_gather_u64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1_s16.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1_s32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1_s64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1_s8.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1_u16.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1_u32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1_u64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1_u8.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1ro_f16.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1ro_f32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1ro_f64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1ro_s16.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1ro_s32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1ro_s64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1ro_s8.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1ro_u16.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1ro_u32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1ro_u64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1ro_u8.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1rq_f16.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1rq_f32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1rq_f64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1rq_s16.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1rq_s32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1rq_s64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1rq_s8.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1rq_u16.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1rq_u32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1rq_u64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1rq_u8.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1sb_gather_s32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1sb_gather_s64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1sb_gather_u32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1sb_gather_u64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1sb_s16.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1sb_s32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1sb_s64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1sb_u16.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1sb_u32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1sb_u64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1sh_gather_s32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1sh_gather_s64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1sh_gather_u32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1sh_gather_u64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1sh_s32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1sh_s64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1sh_u32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1sh_u64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1sw_gather_s64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1sw_gather_u64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1sw_s64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1sw_u64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1ub_gather_s32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1ub_gather_s64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1ub_gather_u32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1ub_gather_u64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1ub_s16.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1ub_s32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1ub_s64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1ub_u16.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1ub_u32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1ub_u64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1uh_gather_s32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1uh_gather_s64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1uh_gather_u32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1uh_gather_u64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1uh_s32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1uh_s64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1uh_u32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1uh_u64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1uw_gather_s64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1uw_gather_u64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1uw_s64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld1uw_u64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld2_f16.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld2_f32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld2_f64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld2_s16.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld2_s32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld2_s64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld2_s8.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld2_u16.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld2_u32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld2_u64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld2_u8.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld3_f16.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld3_f32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld3_f64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld3_s16.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld3_s32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld3_s64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld3_s8.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld3_u16.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld3_u32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld3_u64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld3_u8.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld4_f16.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld4_f32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld4_f64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld4_s16.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld4_s32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld4_s64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld4_s8.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld4_u16.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld4_u32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld4_u64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ld4_u8.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1_f16.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1_f32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1_f64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1_gather_f32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1_gather_f64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1_gather_s32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1_gather_s64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1_gather_u32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1_gather_u64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1_s16.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1_s32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1_s64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1_s8.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1_u16.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1_u32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1_u64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1_u8.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1sb_gather_s32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1sb_gather_s64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1sb_gather_u32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1sb_gather_u64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1sb_s16.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1sb_s32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1sb_s64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1sb_u16.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1sb_u32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1sb_u64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1sh_gather_s32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1sh_gather_s64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1sh_gather_u32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1sh_gather_u64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1sh_s32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1sh_s64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1sh_u32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1sh_u64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1sw_gather_s64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1sw_gather_u64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1sw_s64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1sw_u64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1ub_gather_s32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1ub_gather_s64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1ub_gather_u32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1ub_gather_u64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1ub_s16.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1ub_s32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1ub_s64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1ub_u16.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1ub_u32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1ub_u64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1uh_gather_s32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1uh_gather_s64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1uh_gather_u32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1uh_gather_u64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1uh_s32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1uh_s64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1uh_u32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1uh_u64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1uw_gather_s64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1uw_gather_u64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1uw_s64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldff1uw_u64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldnf1_f16.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldnf1_f32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldnf1_f64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldnf1_s16.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldnf1_s32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldnf1_s64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldnf1_s8.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldnf1_u16.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldnf1_u32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldnf1_u64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldnf1_u8.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldnf1sb_s16.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldnf1sb_s32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldnf1sb_s64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldnf1sb_u16.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldnf1sb_u32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldnf1sb_u64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldnf1sh_s32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldnf1sh_s64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldnf1sh_u32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldnf1sh_u64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldnf1sw_s64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldnf1sw_u64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldnf1ub_s16.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldnf1ub_s32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldnf1ub_s64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldnf1ub_u16.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldnf1ub_u32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldnf1ub_u64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldnf1uh_s32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldnf1uh_s64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldnf1uh_u32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldnf1uh_u64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldnf1uw_s64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldnf1uw_u64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldnt1_f16.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldnt1_f32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldnt1_f64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldnt1_s16.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldnt1_s32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldnt1_s64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldnt1_s8.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldnt1_u16.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldnt1_u32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldnt1_u64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/ldnt1_u8.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/prfb.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/prfb_gather.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/prfd.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/prfd_gather.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/prfh.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/prfh_gather.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/prfw.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/prfw_gather.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st1_f16.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st1_f32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st1_f64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st1_s16.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st1_s32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st1_s64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st1_s8.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st1_scatter_f32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st1_scatter_f64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st1_scatter_s32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st1_scatter_s64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st1_scatter_u32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st1_scatter_u64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st1_u16.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st1_u32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st1_u64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st1_u8.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st1b_s16.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st1b_s32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st1b_s64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st1b_scatter_s32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st1b_scatter_s64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st1b_scatter_u32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st1b_scatter_u64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st1b_u16.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st1b_u32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st1b_u64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st1h_s32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st1h_s64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st1h_scatter_s32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st1h_scatter_s64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st1h_scatter_u32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st1h_scatter_u64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st1h_u32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st1h_u64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st1w_s64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st1w_scatter_s64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st1w_scatter_u64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st1w_u64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st2_f16.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st2_f32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st2_f64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st2_s16.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st2_s32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st2_s64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st2_s8.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st2_u16.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st2_u32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st2_u64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st2_u8.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st3_f16.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st3_f32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st3_f64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st3_s16.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st3_s32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st3_s64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st3_s8.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st3_u16.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st3_u32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st3_u64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st3_u8.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st4_f16.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st4_f32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st4_f64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st4_s16.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st4_s32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st4_s64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st4_s8.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st4_u16.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st4_u32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st4_u64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/st4_u8.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/stnt1_f16.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/stnt1_f32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/stnt1_f64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/stnt1_s16.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/stnt1_s32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/stnt1_s64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/stnt1_s8.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/stnt1_u16.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/stnt1_u32.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/stnt1_u64.c: Likewise.
      	* gcc.target/aarch64/sve/acle/asm/stnt1_u8.c: Likewise.
      	* gcc.target/aarch64/sve/acle/general/temporaries_1.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/ldnt1_gather_f32.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/ldnt1_gather_f64.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/ldnt1_gather_s32.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/ldnt1_gather_s64.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/ldnt1_gather_u32.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/ldnt1_gather_u64.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/ldnt1sb_gather_s32.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/ldnt1sb_gather_s64.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/ldnt1sb_gather_u32.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/ldnt1sb_gather_u64.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/ldnt1sh_gather_s32.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/ldnt1sh_gather_s64.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/ldnt1sh_gather_u32.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/ldnt1sh_gather_u64.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/ldnt1sw_gather_s64.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/ldnt1sw_gather_u64.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/ldnt1ub_gather_s32.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/ldnt1ub_gather_s64.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/ldnt1ub_gather_u32.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/ldnt1ub_gather_u64.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/ldnt1uh_gather_s32.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/ldnt1uh_gather_s64.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/ldnt1uh_gather_u32.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/ldnt1uh_gather_u64.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/ldnt1uw_gather_s64.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/ldnt1uw_gather_u64.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/stnt1_scatter_f32.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/stnt1_scatter_f64.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/stnt1_scatter_s32.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/stnt1_scatter_s64.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/stnt1_scatter_u32.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/stnt1_scatter_u64.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/stnt1b_scatter_s32.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/stnt1b_scatter_s64.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/stnt1b_scatter_u32.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/stnt1b_scatter_u64.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/stnt1h_scatter_s32.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/stnt1h_scatter_s64.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/stnt1h_scatter_u32.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/stnt1h_scatter_u64.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/stnt1w_scatter_s64.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/stnt1w_scatter_u64.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/whilerw_f16.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/whilerw_f32.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/whilerw_f64.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/whilerw_s16.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/whilerw_s32.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/whilerw_s64.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/whilerw_s8.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/whilerw_u16.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/whilerw_u32.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/whilerw_u64.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/whilerw_u8.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/whilewr_f16.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/whilewr_f32.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/whilewr_f64.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/whilewr_s16.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/whilewr_s32.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/whilewr_s64.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/whilewr_s8.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/whilewr_u16.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/whilewr_u32.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/whilewr_u64.c: Likewise.
      	* gcc.target/aarch64/sve2/acle/asm/whilewr_u8.c: Likewise.
      b02fbed1
    • Richard Sandiford's avatar
      testsuite: Add target/xfail argument to check-function-bodies · 4c33b2da
      Richard Sandiford authored
      check-function-bodies allows individual function tests to be
      annotated with target/xfail selectors, but sometimes it's
      useful to have the same selector for all functions.
      
      2020-01-23  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	* doc/sourcebuild.texi (check-function-bodies): Add an
      	optional target/xfail selector.
      
      gcc/testsuite/
      	* lib/scanasm.exp (check-function-bodies): Add an optional
      	target/xfail selector.
      4c33b2da
    • Richard Sandiford's avatar
      auto-inc-dec: Don't add incs/decs to bare CLOBBERs [PR93124] · ccb68179
      Richard Sandiford authored
      In this PR, auto-inc-dec was trying to turn:
      
          (set (reg X) (plus (reg X) (const_int N)))
          (clobber (mem (reg X)))
      
      into:
      
          (clobber (mem (pre_modify (reg X) ...)))
      
      But bare clobber insns are just there to describe dataflow.  They're
      not supposed to generate any code.
      
      2020-01-23  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	PR rtl-optimization/93124
      	* auto-inc-dec.c (merge_in_block): Don't add auto inc/decs to
      	bare USE and CLOBBER insns.
      
      gcc/testsuite/
      	* gcc.dg/torture/pr93124.c: New test.
      ccb68179
    • Ian Lance Taylor's avatar
      gotest: explicitly skip type descriptors · 92bea423
      Ian Lance Taylor authored
      Type descriptors are normally weak and nm will report them as V,
      so we will skip them when collecting the list of symbols.
      But when not using GNU nm, they may be reported as D,
      so also skip them in symstogo.
      
      This fixes go/doc/check on Solaris.
      
      Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/215900
      92bea423
    • David Malcolm's avatar
      analyzer: fix ICE due to sm-state origin being purged (PR 93382) · 591b59eb
      David Malcolm authored
      The ICE in PR analyzer/93382 is a validation error.
      
      The global variable "idx" acquires a "tainted" state from local array
      n1[0].  When the frame is popped, the svalue for n1[0] is purged, but
      the "taint" sm_state_map's entry for "idx" has a svalue_id referencing
      the now-purged svalue.  This is caught by program_state::validate as an
      assertion failure.
      
      This patch fixes the issue by resetting the origin id within
      sm_state_map entries for the case where the origin id has been purged.
      
      gcc/analyzer/ChangeLog:
      	PR analyzer/93382
      	* program-state.cc (sm_state_map::on_svalue_purge): If the
      	entry survives, but the origin is being purged, then reset the
      	origin to null.
      
      gcc/testsuite/ChangeLog:
      	PR analyzer/93382
      	* gcc.dg/analyzer/pr93382.c: New test.
      591b59eb
    • David Malcolm's avatar
      analyzer: fix build with --enable-checking=release · c9c8aef4
      David Malcolm authored
      When adding namespaces to the analyzer in
      r10-6151-g75038aa6aa5b562e6358108619d66ef2ccab9a53
      I messed up the nesting of the #endif for #if CHECKING_P
      and the closing of namespace ana.
      
      This patch fixes it.
      
      gcc/analyzer/ChangeLog:
      	* sm-signal.cc: Fix nesting of CHECKING_P and namespace ana.
      c9c8aef4
    • Andrew Pinski's avatar
      Fix patchable-function-entry on arc · 41fe06f8
      Andrew Pinski authored
      The problem here is arc looks at current_output_insn unconditional
      but sometimes current_output_insn is NULL.  With patchable-function-entry,
      it will be. This is similar to how the nios2, handles "%.".
      
      Committed as obvious after a simple test with -fpatchable-function-entry=1.
      
      ChangeLog:
      * config/arc/arc.c (output_short_suffix): Check insn for nullness.
      41fe06f8
Loading