Skip to content
Snippets Groups Projects
  1. Apr 20, 2021
    • Jakub Jelinek's avatar
      Update crontab and git_update_version.py · 919323c1
      Jakub Jelinek authored
      2021-04-20  Jakub Jelinek  <jakub@redhat.com>
      
      maintainer-scripts/
      	* crontab: Snapshots from trunk are now GCC 12 related.
      	Add GCC 11 snapshots from the respective branch.
      contrib/
      	* gcc-changelog/git_update_version.py (active_refs): Add
      	releases/gcc-11.
      919323c1
    • Jakub Jelinek's avatar
      Bump BASE-VER. · 0cc79337
      Jakub Jelinek authored
      2021-04-20  Jakub Jelinek  <jakub@redhat.com>
      
      	* BASE-VER: Set to 11.0.0.
    • Stefan Schulze Frielinghaus's avatar
      testsuite: Fix up gcc.target/s390/zero-scratch-regs-1.c · 250f2349
      Stefan Schulze Frielinghaus authored
      Depending on whether GCC is configured using --with-mode=zarch or not,
      for the 31bit target instructions are generated either for ESA or
      z/Architecture.  For the sake of simplicity and robustness test only for
      the latter by adding manually option -mzarch.
      
      gcc/testsuite/ChangeLog:
      
      	* gcc.target/s390/zero-scratch-regs-1.c: Force test to run for
      	z/Architecture only.
      250f2349
    • Paul Thomas's avatar
      Fortran: Fix host associated PDT entity initialization [PR99307]. · 67378cd6
      Paul Thomas authored
      2021-04-20  Paul Thomas  <pault@gcc.gnu.org>
      
      gcc/fortran
      	PR fortran/100110
      	* trans-decl.c (gfc_get_symbol_decl): Replace test for host
      	association with a check that the current and symbol namespaces
      	are the same.
      
      gcc/testsuite/
      	PR fortran/100110
      	* gfortran.dg/pdt_31.f03: New test.
      	* gfortran.dg/pdt_26.f03: Reduce 'builtin_malloc' count from 9
      	to 8.
      67378cd6
    • Iain Buclaw's avatar
      libphobos: Fix SIGBUS in read_encoded_value_with_base on sparc-sun-solaris (PR98584) · 30b11d8d
      Iain Buclaw authored
      Instead of unsafe pointer dereferencing, use memcpy() to read encoded
      values from memory.  The function `read_encoded_value' has been updated
      to accept a ref parameter, this simplifies handling of the pointer to
      memory needing to be read.
      
      libphobos/ChangeLog:
      
      	PR d/98584
      	* libdruntime/gcc/deh.d (scanLSDA): Update calls to read_uleb128 and
      	read_encoded_value.
      	(actionTableLookup): Update calls to read_sleb128 and
      	read_encoded_value_with_base.
      	* libdruntime/gcc/unwind/pe.d (read_uleb128): Update signature.
      	(read_sleb128): Update signature.
      	(read_unaligned): New function.
      	(read_encoded_value_with_base): Update signature.  Call read_unaligned
      	instead of unsafe pointer dereferencing.
      	(read_encoded_value): Update signature.
      30b11d8d
    • GCC Administrator's avatar
      Daily bump. · 6e81e015
      GCC Administrator authored
      6e81e015
  2. Apr 19, 2021
    • Marek Polacek's avatar
      c++: ICE with concept defined in function [PR97536] · 29d8838c
      Marek Polacek authored
      This is an ICE-on-invalid, but I keep seeing it when reducing code so
      I'd like to fix it.  We crash on
      
        template <typename> void forward() {
          concept C = true;
        }
      
      which breaks two requirements:
      [temp.concept]/1: A concept is a template ...
      [temp.concept]/3: A concept-definition shall inhabit a namespace scope.
      
      This patch adds a test that exercises broken code and fixes the ICE
      by checking that a concept-definition is defined at namespace scope.
      
      gcc/cp/ChangeLog:
      
      	PR c++/97536
      	* decl.c (grokvardecl): Given an error when a concept is not defined
      	at namespace scope.
      
      gcc/testsuite/ChangeLog:
      
      	PR c++/97536
      	* g++.dg/concepts/diagnostic16.C: New test.
      29d8838c
    • Andrew MacLeod's avatar
      tree-optimization/100081 - Limit depth of logical expression windback. · 329d2f0d
      Andrew MacLeod authored
      Limit how many logical expressions GORI will look back through when
      evaluating outgoing edge range.
      
      	PR tree-optimization/100081
      	* gimple-range-cache.h (ranger_cache): Inherit from gori_compute
      	rather than gori_compute_cache.
      	* gimple-range-gori.cc (is_gimple_logical_p): Move to top of file.
      	(range_def_chain::m_logical_depth): New member.
      	(range_def_chain::range_def_chain): Initialize m_logical_depth.
      	(range_def_chain::get_def_chain): Don't build defchains through more
      	than LOGICAL_LIMIT logical expressions.
      	* params.opt (param_ranger_logical_depth): New.
      329d2f0d
    • Iain Buclaw's avatar
      d: Fix ICE in when formating a string with '%' or '`' characters (PR98457) · dc7d1c74
      Iain Buclaw authored
      The percentage character was being confused for a format specifier in
      pp_format(), whilst the backtick character was confused for the
      beginning of a quoted string in expand_d_format().
      
      Both are now properly escaped to avoid the ICE.
      
      gcc/d/ChangeLog:
      
      	PR d/98457
      	* d-diagnostic.cc (expand_d_format): Handle escaped backticks.
      	(escape_d_format): New funtion.
      	(verror): Call escape_d_format on prefixing strings.
      	(vdeprecation): Likewise.
      
      gcc/testsuite/ChangeLog:
      
      	PR d/98457
      	* gdc.dg/pr98457.d: New test.
      dc7d1c74
    • Iain Buclaw's avatar
      libphobos: Merge upstream druntime 89f870b7, phobos e6907ff3e · e19c6389
      Iain Buclaw authored
      Phobos changes:
      
       - Synchronize C bindings with the latest port fixes in upstream
         druntime.
      
       - Add Config.stderrPassThrough to std.process (PR98494).
      
      Reviewed-on: https://github.com/dlang/druntime/pull/3448
      	     https://github.com/dlang/phobos/pull/7984
      
      libphobos/ChangeLog:
      
      	PR d/98494
      	* libdruntime/MERGE: Merge upstream druntime 89f870b7.
      	* src/MERGE: Merge upstream phobos e6907ff3e.
      e19c6389
    • Iain Buclaw's avatar
      libphobos: Add Thread/Fiber support code for Darwin (PR98058) · 6eae7549
      Iain Buclaw authored
      libphobos/ChangeLog:
      
      	PR d/98058
      	* configure: Regenerate.
      	* libdruntime/Makefile.am (DRUNTIME_DSOURCES_DARWIN): Add
      	core/sys/darwin/config.d
      	* libdruntime/Makefile.in: Regenerate.
      	* libdruntime/config/powerpc/switchcontext.S: Implement
      	fiber_switchContext for __MACH__.
      	* libdruntime/config/x86/switchcontext.S: Likewise.
      	* libdruntime/core/sys/darwin/config.d: New file.
      	* libdruntime/core/thread/fiber.d (Fiber.getThis): Mark noinline.
      	(UnsafeFiberMigration): Define for OSX/X86 and OSX/X86_64.
      	* libdruntime/core/thread/osthread.d (callWithStackShell): Add inline
      	assembler implementation for X86, X86_64, PPC, and PPC64.
      	* libdruntime/core/thread/threadbase.d (ThreadBase.getThis): Mark
      	noinline.
      	* libdruntime/gcc/deh.d (FuncTable): Remove definition.
      	* m4/druntime/os.m4 (DRUNTIME_OS_MINFO_BRACKETING): Check for right
      	bracket symbol on darwin* targets.
      	* testsuite/libphobos.thread/fiber_guard_page.d: Update test to
      	support ucontext-based Fibers.
      6eae7549
    • Iain Buclaw's avatar
      libphobos: Add D runtime support code for MinGW (PR99794) · b66e72b4
      Iain Buclaw authored
      libphobos/ChangeLog:
      
      	PR d/99794
      	* libdruntime/Makefile.am (DRUNTIME_SOURCES_CONFIGURED): Add
      	config/mingw/msvc.c on DRUNTIME_OS_MINGW.
      	* libdruntime/Makefile.in: Regenerate.
      	* libdruntime/config/mingw/msvc.c: New file.
      	* libdruntime/config/mingw/switchcontext.S (fiber_switchContext): Fix
      	function definition.
      	* libdruntime/gcc/deh.d (__gdc_personality_seh0): Fix call to
      	_GCC_specific_handler.
      	* libdruntime/gcc/gthread.d (__gthread_once_t): Fix definition.
      	* libdruntime/gcc/unwind/generic.d (_GCC_specific_handler): Fix
      	declaration.
      	* libdruntime/rt/dmain2.d (rt_loadLibrary): Remove function.
      	(rt_loadLibraryW): Remove function.
      	(initLibrary): Remove function.
      	(rt_unloadLibrary): Remove function.
      b66e72b4
    • Iain Buclaw's avatar
      libphobos: Add section support code for OpenBSD (PR99691) · d86e6085
      Iain Buclaw authored
      libphobos/ChangeLog:
      
      	PR d/99691
      	* configure: Regenerate.
      	* libdruntime/config/common/threadasm.S: Add __OpenBSD__.
      	* libdruntime/gcc/backtrace.d: Import core.sys.openbsd.dlfcn on
      	OpenBSD platforms.
      	* libdruntime/gcc/sections/elf.d (SharedElf): Define on OpenBSD.
      	(linkMapForHandle): Implement for OpenBSD.
      	(exeLinkMap): Remove.
      	(getDependencies): Adjust dlpi_addr on OpenBSD.
      	(handleForName): Implement for OpenBSD.
      	(IterateManually): Define on OpenBSD.
      	* libdruntime/gcc/sections/package.d (SectionsElf): Define on OpenBSD.
      	* m4/druntime/libraries.m4 (DRUNTIME_LIBRARIES_ATOMIC): Test for
      	enable_libatomic.
      	(DRUNTIME_LIBRARIES_BACKTRACE): Test for enable_libbacktrace.
      d86e6085
    • Richard Earnshaw's avatar
      arm: partial revert of r11-8168 [PR100067] · 3bffc4b3
      Richard Earnshaw authored
      This is a partial revert of r11-8168.  The overall purpose of the
      commit is retained (to fix a bogus warning when -mfpu=<not-auto> is
      used in combination with eg -mcpu=neoverse-v1), but it removes the
      hunk that changed the subsequent feature bits for features of a
      simd/fp unit that cannot be described by -mfpu.  While I still think
      that is the correct direction of travel, it's somewhat disruptive and
      not appropriate for late stage4.  I'll revisit for gcc-12.
      
      gcc:
      	PR target/100067
      	* config/arm/arm.c (arm_configure_build_target): Do not strip
      	extended FPU/SIMD feature bits from the target ISA when -mfpu
      	is specified (partial revert of r11-8168).
      3bffc4b3
    • Christophe Lyon's avatar
      aarch64: Fix up 2 other combine opt regressions vs. GCC8 [PR100075] · 714bdc31
      Christophe Lyon authored
      The testcase is endianness dependent and works only on little-endian.
      
      2021-04-19  Christophe Lyon  <christophe.lyon@linaro.org>
      
      	PR target/100075
      	gcc/testsuite/
      	* gcc.target/aarch64/pr100075.c: Add aarch64_little_endian
      	effective target.
      714bdc31
    • Richard Biener's avatar
      preprocessor/100142 - revert unwanted change in last commit · 2f422b55
      Richard Biener authored
      This reverts a s/column_offset/column/ change in the fix for PR99446.
      
      2021-04-19  Richard Biener  <rguenther@suse.de>
      
      	PR preprocessor/100142
      libcpp/
      	* line-map.c (linemap_position_for_loc_and_offset): Revert
      	unintended s/column_offset/column/ change.
      
      gcc/testsuite/
      	* gcc.dg/pr100142.c: New testcase.
      	* g++.dg/diagnostic/pr72803.C: Revert last change.
      2f422b55
    • Thomas Schwinge's avatar
      [OpenACC 'kernels'] '-fopenacc-kernels=[...]' -> '--param=openacc-kernels=[...]' · 3395dfc4
      Thomas Schwinge authored
      This configuration knob is temporary, and isn't really meant to be exposed to
      users.
      
      	gcc/
      	* params.opt (-param=openacc-kernels=): Add.
      	* omp-oacc-kernels-decompose.cc
      	(pass_omp_oacc_kernels_decompose::gate): Use it.
      	* doc/invoke.texi (-fopenacc-kernels=@var{mode}): Move...
      	(--param): ... here, 'openacc-kernels'.
      	gcc/c-family/
      	* c.opt (fopenacc-kernels=): Remove.
      	gcc/fortran/
      	* lang.opt (fopenacc-kernels=): Remove.
      	gcc/testsuite/
      	* c-c++-common/goacc/if-clause-2.c: '-fopenacc-kernels=[...]' ->
      	'--param=openacc-kernels=[...]'.
      	* c-c++-common/goacc/kernels-decompose-1.c: Likewise.
      	* c-c++-common/goacc/kernels-decompose-2.c: Likewise.
      	* c-c++-common/goacc/kernels-decompose-ice-1.c: Likewise.
      	* c-c++-common/goacc/kernels-decompose-ice-2.c: Likewise.
      	* gfortran.dg/goacc/kernels-decompose-1.f95: Likewise.
      	* gfortran.dg/goacc/kernels-decompose-2.f95: Likewise.
      	* gfortran.dg/goacc/kernels-tree.f95: Likewise.
      	libgomp/
      	* testsuite/libgomp.oacc-c-c++-common/declare-vla-kernels-decompose-ice-1.c:
      	'-fopenacc-kernels=[...]' -> '--param=openacc-kernels=[...]'.
      	* testsuite/libgomp.oacc-c-c++-common/declare-vla-kernels-decompose.c:
      	Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/kernels-decompose-1.c:
      	Likewise.
      	* testsuite/libgomp.oacc-fortran/pr94358-1.f90: Likewise.
      3395dfc4
    • H.J. Lu's avatar
      libstdc++: Update some baseline_symbols.txt (x32) · 15cfa8dd
      H.J. Lu authored
      	* config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt:
      	Updated.
      15cfa8dd
    • Martin Liska's avatar
      Align decl and def arguments. · fde4a87e
      Martin Liska authored
      gcc/ChangeLog:
      
      	PR c/100143
      	* gengtype.c (finish_root_table): Align function arguments
      	in between declaration and definition.
      fde4a87e
    • Eric Botcazou's avatar
      Fix another -freorder-blocks-and-partition glitch with Windows SEH · 0bb37e80
      Eric Botcazou authored
      Since GCC 8, the -freorder-blocks-and-partition pass can split a function
      into hot and cold parts, thus generating 2 FDEs for a single function in
      DWARF for exception purposes and doing an equivalent trick for Windows SEH.
      
      Now the Windows system unwinder does not support arbitrarily large frames
      and there is even a hard limit on the encoding of the CFI, which changes
      the stack allocation strategy when it is topped and which must be reflected
      everywhere.
      
      gcc/
      	* config/i386/winnt.c (i386_pe_seh_cold_init): Properly deal with
      	frames larger than the SEH maximum frame size.
      gcc/testsuite/
      	* gnat.dg/opt92.adb: New test.
      0bb37e80
    • GCC Administrator's avatar
      Daily bump. · d64720a0
      GCC Administrator authored
      d64720a0
  3. Apr 18, 2021
  4. Apr 17, 2021
    • Stefan Schulze Frielinghaus's avatar
      testsuite: Enable zero-scratch-regs-{8,9,10,11}.c on s390* · ed16241c
      Stefan Schulze Frielinghaus authored
      On s390* the only missing part for the mentioned testcases was a load of
      a double floating-point zero via a move (in particular for quite old
      machines) which was added in commit 46c47420.
      Common code implementation is sufficient in order to clear volatile
      GPRs, FPRs, and VRs.  Access registers a0 and a1 are nonvolatile and not
      cleared.  Therefore, target hook TARGET_ZERO_CALL_USED_REGS is not
      implemented for s390*.
      
      Added a target specific test in order to ensure that all call clobbered
      GPRs, FPRs, and VRs are zeroed and all call saved registers are kept.
      
      gcc/testsuite/ChangeLog:
      
      	* c-c++-common/zero-scratch-regs-8.c: Enable on s390*.
      	* c-c++-common/zero-scratch-regs-9.c: Likewise.
      	* c-c++-common/zero-scratch-regs-10.c: Likewise.
      	* c-c++-common/zero-scratch-regs-11.c: Likewise.
      	* gcc.target/s390/zero-scratch-regs-1.c: New test.
      ed16241c
    • Iain Buclaw's avatar
      d: Add TARGET_D_TEMPLATES_ALWAYS_COMDAT · bda51959
      Iain Buclaw authored
      Following up on the fix for PR99914, when testing on MinGW, it was found
      not to support weak in the same way as on ELF or Mach-O targets.
      
      So the linkage has been reverted back to COMDAT for that target, however
      in order to properly support overriding functions and variables, all
      declarations with external linkage must be put on COMDAT.  For this a
      new target hook has been added to control the behavior.
      
      gcc/ChangeLog:
      
      	PR d/99914
      	* config/i386/winnt-d.c (TARGET_D_TEMPLATES_ALWAYS_COMDAT): Define.
      	* doc/tm.texi: Regenerate.
      	* doc/tm.texi.in (D language and ABI): Add @hook for
      	TARGET_D_TEMPLATES_ALWAYS_COMDAT.
      
      gcc/d/ChangeLog:
      
      	PR d/99914
      	* d-target.def (d_templates_always_comdat): New hook.
      	* d-tree.h (mark_needed): Remove prototype.
      	* decl.cc: Include d-target.h.
      	(mark_needed): Rename to...
      	(d_mark_needed): ...this.  Make static.
      	(set_linkage_for_decl): Put variables in comdat if
      	d_templates_always_comdat.
      bda51959
    • Iain Buclaw's avatar
      d: Implement __traits(getTargetInfo, "objectFormat") · d81bc495
      Iain Buclaw authored
      Following on from adding TARGET_D_REGISTER_OS_TARGET_INFO, this adds the
      required handlers to implement `__traits(getTargetInfo, "objectFormat")'
      for all platforms that have D support files.
      
      Some back-ends (i386, rs6000, and pa) have some awarenes of the what
      object format they are compiling for, so new getTargetInfo handlers have
      been have added both to those back-ends as well as platform-specific
      target files to override the default in the D front-end.
      
      gcc/ChangeLog:
      
      	* config/darwin-d.c (darwin_d_handle_target_object_format): New
      	function.
      	(darwin_d_register_target_info): New function.
      	(TARGET_D_REGISTER_OS_TARGET_INFO): Define.
      	* config/dragonfly-d.c (dragonfly_d_handle_target_object_format): New
      	function.
      	(dragonfly_d_register_target_info): New function.
      	(TARGET_D_REGISTER_OS_TARGET_INFO): Define.
      	* config/freebsd-d.c (freebsd_d_handle_target_object_format): New
      	function.
      	(freebsd_d_register_target_info): New function.
      	(TARGET_D_REGISTER_OS_TARGET_INFO): Define.
      	* config/glibc-d.c (glibc_d_handle_target_object_format): New
      	function.
      	(glibc_d_register_target_info): New function.
      	(TARGET_D_REGISTER_OS_TARGET_INFO): Define.
      	* config/i386/i386-d.c (ix86_d_handle_target_object_format): New
      	function.
      	(ix86_d_register_target_info): Add ix86_d_handle_target_object_format
      	as handler for objectFormat key.
      	* config/i386/winnt-d.c (winnt_d_handle_target_object_format): New
      	function.
      	(winnt_d_register_target_info): New function.
      	(TARGET_D_REGISTER_OS_TARGET_INFO): Define.
      	* config/netbsd-d.c (netbsd_d_handle_target_object_format): New
      	function.
      	(netbsd_d_register_target_info): New function.
      	(TARGET_D_REGISTER_OS_TARGET_INFO): Define.
      	* config/openbsd-d.c (openbsd_d_handle_target_object_format): New
      	function.
      	(openbsd_d_register_target_info): New function.
      	(TARGET_D_REGISTER_OS_TARGET_INFO): Define.
      	* config/pa/pa-d.c (pa_d_handle_target_object_format): New function.
      	(pa_d_register_target_info): Add pa_d_handle_target_object_format as
      	handler for objectFormat key.
      	* config/rs6000/rs6000-d.c (rs6000_d_handle_target_object_format): New
      	function.
      	(rs6000_d_register_target_info): Add
      	rs6000_d_handle_target_object_format as handler for objectFormat key.
      	* config/sol2-d.c (solaris_d_handle_target_object_format): New
      	function.
      	(solaris_d_register_target_info): New function.
      	(TARGET_D_REGISTER_OS_TARGET_INFO): Define.
      
      gcc/d/ChangeLog:
      
      	* d-target.cc (d_handle_target_object_format): New function.
      	(d_language_target_info): Add d_handle_target_object_format as handler
      	for objectFormat key.
      	(Target::getTargetInfo): Continue if handler returned NULL_TREE.
      d81bc495
    • Jakub Jelinek's avatar
      libstdc++: Update ppc32 baseline_symbols.txt · b96c7a06
      Jakub Jelinek authored
      And here is an update for 32-bit powerpc-linux.
      
      2021-04-17  Jakub Jelinek  <jakub@redhat.com>
      
      	* config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
      	* config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
      b96c7a06
    • Jakub Jelinek's avatar
      libstdc++: Update some baseline_symbols.txt · d700e666
      Jakub Jelinek authored
      As we have only one P1 left right now, I think it is the right time
      to update abi list files in libstdc++.
      
      Here is an update for x86_64/i?86/s390x/ppc64 linux (aarch64 seems
      to be correct already).  For ppc64le it is missing the IEEE128 symver
      symbols, but those need further work on the abi checking side.
      
      2021-04-17  Jakub Jelinek  <jakub@redhat.com>
      
      	* config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
      	* config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
      	* config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
      	* config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
      	* config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
      	* config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
      d700e666
    • Jakub Jelinek's avatar
      sanitizer: Fix asan against glibc 2.34 [PR100114] · d9f462fb
      Jakub Jelinek authored
      As mentioned in the PR, SIGSTKSZ is no longer a compile time constant in
      glibc 2.34 and later, so
      static const uptr kAltStackSize = SIGSTKSZ * 4;
      needs dynamic initialization, but is used by a function called indirectly
      from .preinit_array and therefore before the variable is constructed.
      This results in using 0 size instead and all asan instrumented programs
      die with:
      ==91==ERROR: AddressSanitizer failed to allocate 0x0 (0) bytes of SetAlternateSignalStack (error code: 22)
      
      Here is a cherry-pick from upstream to fix this.
      
      2021-04-17  Jakub Jelinek  <jakub@redhat.com>
      
      	PR sanitizer/100114
      	* sanitizer_common/sanitizer_posix_libcdep.cpp: Cherry-pick
      	llvm-project revisions 82150606fb11d28813ae6da1101f5bda638165fe
      	and b93629dd335ffee2fc4b9b619bf86c3f9e6b0023.
      d9f462fb
    • GCC Administrator's avatar
      Daily bump. · 8ae884c0
      GCC Administrator authored
      8ae884c0
  5. Apr 16, 2021
    • José Rui Faustino de Sousa's avatar
      Fortran: Add missing TKR initialization [PR100094] · c1c86ab9
      José Rui Faustino de Sousa authored
      gcc/fortran/ChangeLog:
      
      	PR fortran/100094
      	* trans-array.c (gfc_trans_deferred_array): Add code to initialize
      	pointers and allocatables with correct TKR parameters.
      
      gcc/testsuite/ChangeLog:
      
      	PR fortran/100094
      	* gfortran.dg/PR100094.f90: New test.
      c1c86ab9
    • Christophe Lyon's avatar
      testsuite/arm: Fix scan-assembler-times in pr96770.c with movt/movw · 0754a104
      Christophe Lyon authored
      The previous change to this testcase missed the fact that the data may
      be accessed via an anchor, depending on the optimization level,
      leading to false failures.
      
      This patch restricts matching to upper16:lower16 followed by
      non-spaces, followed by +4 (in f4) or +320 (in f5).
      
      Using '.*' instead of '[^ \]' would match accross the whole assembly
      file, which is not what we want, hence the limitation with spaces.
      
      2021-04-16  Christophe Lyon  <christophe.lyon@linaro.org>
      
      	gcc/testsuite/
      	PR target/96770
      	* gcc.target/arm/pure-code/pr96770.c: Fix scan-assembler-times
      	with movt/movw.
      0754a104
    • Jakub Jelinek's avatar
      aarch64: Don't emit -Wpsabi note when ABI was never affected [PR91710] · 49813aad
      Jakub Jelinek authored
      As the following testcase shows, we emit a -Wpsabi note about argument
      passing change since GCC 9, but in reality the ABI didn't change.
      The alignment is 8 bits in GCC < 9 and 32 bits in GCC >= 9 and
      the aarch64_function_arg_alignment returns in that case:
      return MIN (MAX (alignment, PARM_BOUNDARY), STACK_BOUNDARY);
      so when both the old and new alignment are smaller or equal to PARM_BOUNDARY
      (or both are larger than STACK_BOUNDARY, just in theory), even when the new
      one is bigger, it doesn't change the argument passing.
      
      So, the following patch changes aarch64_function_arg_alignment to tell the
      callers the exact old alignmentm so that they can test it if needed.
      The other aarch64_function_arg_alignment callers either check the
      alignment for equality against 16-byte alignment (when old alignment was
      smaller than that and the new one is 16-byte, we want to emit -Wpsabi
      in all the cases) or the va_arg case which I think is ok now too.
      
      2021-04-16  Jakub Jelinek  <jakub@redhat.com>
      
      	PR target/91710
      	* config/aarch64/aarch64.c (aarch64_function_arg_alignment): Change
      	abi_break argument from bool * to unsigned *, store there the pre-GCC 9
      	alignment.
      	(aarch64_layout_arg, aarch64_gimplify_va_arg_expr): Adjust callers.
      	(aarch64_function_arg_regno_p): Likewise.  Only emit -Wpsabi note if
      	the old and new alignment after applying MIN/MAX to it is different.
      
      	* gcc.target/aarch64/pr91710.c: New test.
      49813aad
    • Jakub Jelinek's avatar
      intl: Add --enable-host-shared support [PR100096] · 4a1493f0
      Jakub Jelinek authored
      As mentioned in the PR, building gcc with jit enabled and
      --enable-host-shared doesn't work on NetBSD/i?86, as libgccjit.so.0
      has text relocations.
      The r0-125846-g459260ecf8b420b029601a664cdb21c185268ecb changes
      added --enable-host-shared support to various libraries, but didn't
      add it to intl/ subdirectory; on Linux it isn't really needed, because
      all: all-no
      all-no: #nothing
      but on other OSes intl/libintl.a is built.
      
      The following patch makes sure it is built with -fPIC when
      --enable-host-shared is used.
      
      2021-04-16  Jakub Jelinek  <jakub@redhat.com>
      
      	PR jit/100096
      	* configure.ac: Add --enable-host-shared support.
      	* Makefile.in: Update copyright.  Add @PICFLAG@ to CFLAGS.
      	* configure: Regenerated.
      4a1493f0
    • José Rui Faustino de Sousa's avatar
      Fortran: Fix ICE due to referencing a NULL pointer [PR100018] · 98c5b592
      José Rui Faustino de Sousa authored
      gcc/fortran/ChangeLog:
      
      	PR fortran/100018
      	* resolve.c: Add association check before de-referencing pointer.
      
      gcc/testsuite/ChangeLog:
      
      	PR fortran/100018
      	* gfortran.dg/PR10018.f90: New test.
      98c5b592
    • Tamar Christina's avatar
      SVE: Fix wrong sve predicate split (PR100048) · 8535755a
      Tamar Christina authored
      The attached testcase generates the following paradoxical subregs when creating
      the predicates.
      
      (insn 22 21 23 2 (set (reg:VNx8BI 100)
      	(subreg:VNx8BI (reg:VNx2BI 103) 0))
           (expr_list:REG_EQUAL (const_vector:VNx8BI [
      		(const_int 1 [0x1])
      		(const_int 0 [0])
      		(const_int 1 [0x1])
      	(const_int 0 [0]) repeated x5
      	    ])
      	(nil)))
      
      and
      
      (insn 15 14 16 2 (set (reg:VNx8BI 96)
      	(subreg:VNx8BI (reg:VNx2BI 99) 0))
           (expr_list:REG_EQUAL (const_vector:VNx8BI [
      		(const_int 1 [0x1])
      		(const_int 0 [0]) repeated x7
      	    ])
      	(nil)))
      
      This causes CSE to incorrectly think that the two predicates are equal because
      some of the significant bits get ignored due to the subreg.
      
      The attached patch instead makes it so it always looks at all 16-bits of the
      predicate, but in turn means we need to generate a TRN that matches the expected
      result mode.  In effect in RTL we keep the mode as VNx16BI but during codegen
      re-interpret them as the mode the predicate instruction wanted:
      
      (insn 10 9 11 2 (set (reg:VNx8BI 96)
      	(subreg:VNx8BI (reg:VNx16BI 99) 0))
           (expr_list:REG_EQUAL (const_vector:VNx8BI [
      		(const_int 1 [0x1])
      		(const_int 0 [0]) repeated x7
      	    ])
      	(nil)))
      
      Which needed correction to the TRN pattern.  A new TRN1_CONV unspec is
      introduced which allows one to keep the arguments as VNx16BI but encode the
      instruction as a type of the last operand.
      
      (insn 9 8 10 2 (set (reg:VNx16BI 99)
      	(unspec:VNx16BI [
      		(reg:VNx16BI 97)
      		(reg:VNx16BI 98)
      		(reg:VNx2BI 100)
      	    ] UNSPEC_TRN1_CONV))
      	(nil))
      
      This allows us remove all the paradoxical subregs and end up with
      
      (insn 16 15 17 2 (set (reg:VNx8BI 101)
      	(subreg:VNx8BI (reg:VNx16BI 104) 0))
      	(expr_list:REG_EQUAL (const_vector:VNx8BI [
      		(const_int 1 [0x1])
      		(const_int 0 [0])
      		(const_int 1 [0x1])
      		(const_int 0 [0]) repeated x5
      	    ])
      	(nil)))
      
      gcc/ChangeLog:
      
      	PR target/100048
      	* config/aarch64/aarch64-sve.md (@aarch64_sve_trn1_conv<mode>): New.
      	* config/aarch64/aarch64.c (aarch64_expand_sve_const_pred_trn): Use new
      	TRN optab.
      	* config/aarch64/iterators.md (UNSPEC_TRN1_CONV): New.
      
      gcc/testsuite/ChangeLog:
      
      	PR target/100048
      	* gcc.target/aarch64/sve/pr100048.c: New test.
      8535755a
    • Jakub Jelinek's avatar
      c++: Fix empty base stores in cxx_eval_store_expression [PR100111] · 35e8b38a
      Jakub Jelinek authored
      In r11-6895 handling of empty bases has been fixed such that non-lval
      stores of empty classes are not added when the type of *valp doesn't
      match the type of the initializer, but as this testcase shows it is
      done only when *valp is non-NULL.  If it is NULL, we still shouldn't
      add empty class constructors if the type of the constructor elt *valp
      points to doesn't match.
      
      2021-04-16  Jakub Jelinek  <jakub@redhat.com>
      
      	PR c++/100111
      	* constexpr.c (cxx_eval_store_expression): Don't add CONSTRUCTORs
      	for empty classes into *valp when types don't match even when *valp
      	is NULL.
      
      	* g++.dg/cpp0x/constexpr-100111.C: New test.
      35e8b38a
    • Bill Schmidt's avatar
      doc: Update Power builtin documentation in user's manual · 4b53f4cd
      Bill Schmidt authored
      The standard for many Power vector interfaces is now the recently
      published Power Vector Intrinsic Programming Reference.  Reference
      that document for the relevant interfaces, and remove redundant
      information from the GCC user's manual.
      
      2021-04-16  Bill Schmidt  <wschmidt@linux.ibm.com>
      
      gcc/
      	* doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): Revise
      	this section and its subsections.
      4b53f4cd
    • Marek Polacek's avatar
      c++: ICE with bogus late return type [PR99803] · 70f2bff4
      Marek Polacek authored
      Here we ICE when compiling this code in C++20, because we're trying to
      slam a 'typename' after the ->.  The cp_parser_template_id call just
      before the spot I'm changing parsed A::template A<int> as a BASELINK
      that contains a constructor, but make_typename_type crashes on that.
      
      This patch makes make_typename_type more robust instead of checking
      for is_overloaded_fn prior calling it.
      
      gcc/cp/ChangeLog:
      
      	PR c++/99803
      	* decl.c (make_typename_type): Give an error and return when
      	name is is_overloaded_fn.
      	* parser.c (cp_parser_class_name): Don't check is_overloaded_fn
      	before calling make_typename_type.
      
      gcc/testsuite/ChangeLog:
      
      	PR c++/99803
      	* g++.dg/cpp2a/typename14.C: Don't expect particular error
      	messages.
      	* g++.dg/cpp2a/typename19.C: New test.
      70f2bff4
    • Robin Dapp's avatar
      testsuite: Move gimplefe-4[0|1] tests. · eb8c931e
      Robin Dapp authored
      The gimplefe-40.c and gimplefe-41.c test cases require vect_* effective
      targets even though they reside in gcc.dg.  By default e.g.
      DEFAULT_VECTCFLAGS which is used to add target-specific machine or build
      flags is only applied in the ./vect subdirectory.  Move these tests
      there.
      
      gcc/testsuite/ChangeLog:
      
      	* gcc.dg/gimplefe-40.c: Moved to...
      	* gcc.dg/vect/gimplefe-40.c: ...here.
      	* gcc.dg/gimplefe-41.c: Moved to...
      	* gcc.dg/vect/gimplefe-41.c: ...here.
      eb8c931e
Loading