Skip to content
Snippets Groups Projects
  1. Mar 29, 2022
    • Patrick Palka's avatar
      c-family: Add -Wmisleading-indentation testcase [PR71637] · 89976d08
      Patrick Palka authored
      We no longer emit a bogus warning for the below testcase after
      r11-3266-g4839de55e2c986.
      
      	PR c++/71637
      
      gcc/testsuite/ChangeLog:
      
      	* c-c++-common/Wmisleading-indentation-6.c: New test.
      89976d08
    • Michael Meissner's avatar
      Allow vsx_extract_<mode> to use Altivec registers. · 9f9ccc4a
      Michael Meissner authored
      I noticed that the vsx_extract_<mode> pattern for V2DImode and V2DFmode
      only allowed traditional floating point registers, and it did not allow
      Altivec registers.  The original code was written a few years ago when we
      used the old register allocator, and support for scalar floating point in
      Altivec registers was just being added to GCC.
      
      I have built the spec 2017 benchmark suite With all 4 patches in this
      series applied, and compared it to the build with the previous 3 patches
      applied.  In addition to the changes from the previous 3 patches, this
      patch now changes the code for the following 3 benchmarks (2 floating
      point, 1 integer):
      
      	bwaves_r, fotonik3d_r, xalancbmk_r
      
      I have built bootstrap versions on the following systems.  There were no
      regressions in the runs:
      
      	Power9 little endian, --with-cpu=power9
      	Power10 little endian, --with-cpu=power10
      	Power8 big endian, --with-cpu=power8 (both 32-bit & 64-bit tests)
      
      2022-03-29   Michael Meissner  <meissner@linux.ibm.com>
      
      gcc/
      	* config/rs6000/vsx.md (vsx_extract_<mode>): Allow destination to
      	be any VSX register.
      9f9ccc4a
    • Richard Earnshaw's avatar
      aarch64: correctly handle zero-sized bit-fields in AAPCS64 [PR102024] · b243ad1a
      Richard Earnshaw authored
      On aarch64 the AAPCS64 states that an HFA is determined by the 'shape' of
      the object after layout has been completed, so anything that adds no
      members and does not cause the layout to be modified should be ignored
      for the purposes of determining which registers are used for parameter
      passing.
      
      A zero-sized bit-field falls into this category.  This was not handled
      correctly for C structs and in G++-11 only handled correctly because
      such fields were eliminated early by the front end.
      
      gcc/ChangeLog:
      
      	PR target/102024
      	* config/aarch64/aarch64.cc (aapcs_vfp_sub_candidate): Handle
      	zero-sized bit-fields.  Detect cases where a warning may be needed.
      	(aarch64_vfp_is_call_or_return_candidate): Emit a note if a
      	zero-sized bit-field has caused parameter passing to change.
      
      gcc/testsuite/ChangeLog:
      
      	* gcc.target/aarch64/aapcs64/test_28.c: New test.
      b243ad1a
    • Richard Earnshaw's avatar
      arm: correctly handle zero-sized bit-fields in AAPCS [PR102024] · 3032df28
      Richard Earnshaw authored
      On arm the AAPCS states that an HFA is determined by the 'shape' of
      the object after layout has been completed, so anything that adds no
      members and does not cause the layout to be modified should be ignored
      for the purposes of determining which registers are used for parameter
      passing.
      
      A zero-sized bit-field falls into this category.  This was not handled
      correctly for C structs and in G++-11 only handled correctly because
      such fields were eliminated early by the front end.
      
      gcc/ChangeLog:
      
      	PR target/102024
      	* config/arm/arm.cc (aapcs_vfp_sub_candidate): Handle zero-sized
      	bit-fields.  Detect cases where a warning may be needed.
      	(aapcs_vfp_is_call_or_return_candidate): Emit a note if
      	a zero-sized bit-field has caused parameter passing to change.
      
      gcc/testsuite/ChangeLog:
      
      	PR target/102024
      	* gcc.target/arm/aapcs/vfp26.c: New test.
      3032df28
    • Richard Earnshaw's avatar
      arm: temporarily disable 'local' pcs selection (PR96882) · 1dca4ca1
      Richard Earnshaw authored
      The arm port has an optimization used during selection of the
      function's ABI to permit deviation from the strict ABI when the
      function does not escape the current translation unit.
      
      Unfortunately, the ABI selection it makes can be unsafe if it changes
      how a result is returned because not enough information is available
      via the RETURN_IN_MEMORY hook to determine where the function gets
      used.  This can result in some parts of the compiler thinking a value
      is returned in memory while others think it is returned in registers.
      
      To mitigate this, this patch temporarily disables the optimization and
      falls back to using the default ABI for the translation.
      
      gcc/ChangeLog:
      
      	PR target/96882
      	* config/arm/arm.cc (arm_get_pcs_model): Disable selection of
      	ARM_PCS_AAPCS_LOCAL.
      1dca4ca1
    • Tom de Vries's avatar
      [nvptx] Add __PTX_ISA_VERSION_{MAJOR,MINOR}__ · a2eacdbd
      Tom de Vries authored
      Add preprocessor macros __PTX_ISA_VERSION_MAJOR__ and
      __PTX_ISA_VERSION_MINOR__.
      
      For the default 6.0, we have:
      ...
       $ echo | cc1 -E -dD - 2>&1 | grep PTX_ISA_VERSION
       #define __PTX_ISA_VERSION_MAJOR__ 6
       #define __PTX_ISA_VERSION_MINOR__ 0
      ...
      and for 3.1, we have:
      ...
       $ echo | cc1 -mptx=3.1 -E -dD - 2>&1 | grep PTX_ISA_VERSION
       #define __PTX_ISA_VERSION_MAJOR__ 3
       #define __PTX_ISA_VERSION_MINOR__ 1
      ...
      
      These can be used to express things like:
      ...
       #if __PTX_ISA_VERSION_MAJOR__ >= 4 && __PTX_ISA_VERSION_MAJOR__ >= 1
         /* Code using %dynamic_smem_size.  */
       #else
         /* Fallback code.  */
       #endif
      ...
      
      Tested on nvptx.
      
      gcc/ChangeLog:
      
      2022-03-29  Tom de Vries  <tdevries@suse.de>
      
      	PR target/104857
      	* config/nvptx/nvptx-c.cc (nvptx_cpu_cpp_builtins): Emit
      	__PTX_ISA_VERSION_MAJOR__ and __PTX_ISA_VERSION_MINOR__.
      	* config/nvptx/nvptx.cc (ptx_version_to_number): New function.
      	* config/nvptx/nvptx-protos.h (ptx_version_to_number): Declare.
      
      gcc/testsuite/ChangeLog:
      
      2022-03-29  Tom de Vries  <tdevries@suse.de>
      
      	PR target/104857
      	* gcc.target/nvptx/ptx31.c: New test.
      	* gcc.target/nvptx/ptx60.c: New test.
      	* gcc.target/nvptx/ptx63.c: New test.
      	* gcc.target/nvptx/ptx70.c: New test.
      a2eacdbd
    • Tom de Vries's avatar
      [nvptx] Update help text for m64 · 1625e893
      Tom de Vries authored
      In the docs we have for m64:
      ...
      Ignored, but preserved for backward compatibility.  Only 64-bit ABI is
      supported.
      ...
      
      But with --target-help, we have instead:
      ...
      $ gcc --target-help
        ...
        -m64    Generate code for a 64-bit ABI.
      ...
      which could be interpreted as meaning that generating code for a 32-bit ABI is
      still possible.
      
      Fix this by instead emitting the same text as in the docs:
      ...
        -m64    Ignored, but preserved for backward compatibility.  Only 64-bit
                ABI is supported.
      ...
      
      Tested on nvptx.
      
      gcc/ChangeLog:
      
      2022-03-29  Tom de Vries  <tdevries@suse.de>
      
      	* config/nvptx/nvptx.opt (m64): Update help text to reflect that it
      	is ignored.
      1625e893
    • Tom de Vries's avatar
      [nvptx] Add march-map · de0ef044
      Tom de Vries authored
      Say we have an sm_50 board, and we want to run a benchmark using the highest
      possible march setting.
      
      Currently there's march=sm_30, march=sm_35, march=sm_53, but no march=sm_50.
      
      So, we'd need to pick march=sm_35.
      
      Likewise, for a test script that handles multiple boards, we'd need a mapping
      from native board sm_xx to march, which might have to be updated with newer
      gcc releases.
      
      Add an option march-map, such that we can just specify march-map=sm_50, and
      let the compiler map this to the appropriate march.
      
      The option is implemented as a list of aliases, such that we have a somewhat
      lengthy (17 lines in total):
      ...
      $ gcc --help=target
        ...
        -march-map=sm_30            Same as -misa=sm_30.
        -march-map=sm_32            Same as -misa=sm_30.
        ...
        -march-map=sm_87            Same as -misa=sm_80.
        -march-map=sm_90            Same as -misa=sm_80.
      ...
      
      This implementation was chosen in the hope that it'll be easier if
      we end up with some misa multilib.
      
      It would be nice to have the mapping list generated from an updated
      nvptx-sm.def, but for now it's spelled out in nvptx.opt.
      
      Tested on nvptx.
      
      gcc/ChangeLog:
      
      2022-03-29  Tom de Vries  <tdevries@suse.de>
      
      	PR target/104714
      	* config/nvptx/nvptx.opt (march-map=*): Add aliases.
      
      gcc/testsuite/ChangeLog:
      
      2022-03-29  Tom de Vries  <tdevries@suse.de>
      
      	PR target/104714
      	* gcc.target/nvptx/march-map.c: New test.
      de0ef044
    • Jan Hubicka's avatar
      Disable gathers for znver3 for vectors with 2 or 4 elements · 87126675
      Jan Hubicka authored
      gcc/ChangeLog:
      
      2022-03-28  Jan Hubicka  <hubicka@ucw.cz>
      
      	* config/i386/i386-builtins.cc (ix86_vectorize_builtin_gather): Test
      	TARGET_USE_GATHER_2PARTS and TARGET_USE_GATHER_4PARTS.
      	* config/i386/i386.h (TARGET_USE_GATHER_2PARTS): New macro.
      	(TARGET_USE_GATHER_4PARTS): New macro.
      	* config/i386/x86-tune.def (X86_TUNE_USE_GATHER_2PARTS): New tune
      	(X86_TUNE_USE_GATHER_4PARTS): New tune
      87126675
    • Tom de Vries's avatar
      [nvptx] Add march alias for misa · c5db32a1
      Tom de Vries authored
      The target option misa has the following description:
      ...
      $ gcc --target-help 2>&1 | grep misa
        -misa=                      Specify the PTX ISA target architecture to use.
      ...
      
      The name misa is somewhat poorly chosen.  It suggests that for a use
      -misa=sm_30, sm_30 is the name of a specific Instruction Set Architecture.
      Instead, sm_30 is the name of a specific target architecture in the generic
      PTX Instruction Set Architecture.
      
      Futhermore, there's mptx, which also has ISA in the description:
      ...
        -mptx=                      Specify the PTX ISA version to use.
      ...
      
      Add the more intuitive alias march for misa:
      ...
      $ gcc --target-help 2>&1 | grep march
        -march=                     Alias:  Same as -misa=.
      ...
      
      Tested on nvptx.
      
      gcc/ChangeLog:
      
      2022-03-29  Tom de Vries  <tdevries@suse.de>
      
      	* config/nvptx/nvptx.opt (march): Add alias of misa.
      
      gcc/testsuite/ChangeLog:
      
      2022-03-29  Tom de Vries  <tdevries@suse.de>
      
      	* gcc.target/nvptx/main.c: New test.
      	* gcc.target/nvptx/march.c: New test.
      c5db32a1
    • Chenghua Xu's avatar
      MAINTAINERS: Add myself and Lulu as LoongArch port maintainer. · 06ff4706
      Chenghua Xu authored
      2022-03-29  Chenghua Xu  <xuchenghua@loongson.cn>
      
      ChangeLog:
      
      	* MAINTAINERS: (CPU Port Maintainers): Add myself and
      	Lulu as LoongArch port maintainer.
      06ff4706
    • chenglulu's avatar
      LoongArch Port: Add doc. · 8766689a
      chenglulu authored
      2022-03-29  Chenghua Xu  <xuchenghua@loongson.cn>
      	    Lulu Cheng  <chenglulu@loongson.cn>
      
      gcc/ChangeLog:
      
      	* doc/install.texi: Add LoongArch options section.
      	* doc/invoke.texi: Add LoongArch options section.
      	* doc/md.texi: Add LoongArch options section.
      
      contrib/ChangeLog:
      
      	* config-list.mk: Add LoongArch triplet.
      8766689a
    • chenglulu's avatar
      LoongArch Port: gcc/testsuite · 4ae54e8d
      chenglulu authored
      2022-03-29  Chenghua Xu  <xuchenghua@loongson.cn>
      	    Lulu Cheng  <chenglulu@loongson.cn>
      
      gcc/testsuite/ChangeLog:
      
      	* g++.dg/cpp0x/constexpr-rom.C: Add build options for LoongArch.
      	* g++.old-deja/g++.abi/ptrmem.C: Add LoongArch support.
      	* g++.old-deja/g++.pt/ptrmem6.C: xfail for LoongArch.
      	* gcc.dg/20020312-2.c: Add LoongArch support.
      	* c-c++-common/zero-scratch-regs-10.c: Like wise
      	* c-c++-common/zero-scratch-regs-11.c: Like wise
      	* c-c++-common/zero-scratch-regs-8.c: Like wise
      	* c-c++-common/zero-scratch-regs-9.c: Like wise
      	* gcc.dg/loop-8.c: Skip on LoongArch.
      	* gcc.dg/torture/stackalign/builtin-apply-2.c: Likewise.
      	* gcc.dg/tree-ssa/ssa-fre-3.c: Likewise.
      	* go.test/go-test.exp: Define the LoongArch target.
      	* lib/target-supports.exp: Like wise.
      	* gcc.target/loongarch/loongarch.exp: New file.
      	* gcc.target/loongarch/tst-asm-const.c: Like wise.
      	* gcc.target/loongarch/larch-builtin.c: Like wise.
      4ae54e8d
    • chenglulu's avatar
      LoongArch Port: libgomp · 34024b71
      chenglulu authored
      2022-03-29  Chenghua Xu  <xuchenghua@loongson.cn>
      	    Lulu Cheng  <chenglulu@loongson.cn>
      
      libgomp/ChangeLog:
      
      	* configure.tgt: Add LoongArch triplet.
      34024b71
    • chenglulu's avatar
      LoongArch Port: Regenerate libgcc/configure. · b38100eb
      chenglulu authored
      2022-03-29  Chenghua Xu  <xuchenghua@loongson.cn>
      	    Lulu Cheng  <chenglulu@loongson.cn>
      
      libgcc/ChangeLog:
      
      	* configure: Regenerate file.
      b38100eb
    • chenglulu's avatar
      LoongArch Port: libgcc · bf291a43
      chenglulu authored
      2022-03-29  Chenghua Xu  <xuchenghua@loongson.cn>
      	    Lulu Cheng  <chenglulu@loongson.cn>
      
      libgcc/ChangeLog:
      
      	* config/loongarch/crtfastmath.c: New file.
      	* config/loongarch/linux-unwind.h: Like wise.
      	* config/loongarch/sfp-machine.h: Like wise.
      	* config/loongarch/t-crtstuff: Like wise.
      	* config/loongarch/t-loongarch: Like wise.
      	* config/loongarch/t-loongarch64: Like wise.
      	* config/loongarch/t-softfp-tf: Like wise.
      	* config.host: Add LoongArch tuples.
      	* configure.ac: Add LoongArch support.
      bf291a43
    • chenglulu's avatar
      LoongArch Port: Builtin macros. · 7e60c24c
      chenglulu authored
      2022-03-29  Chenghua Xu  <xuchenghua@loongson.cn>
      	    Lulu Cheng  <chenglulu@loongson.cn>
      
      gcc/ChangeLog:
      
      	* config/loongarch/loongarch-c.cc
      7e60c24c
    • chenglulu's avatar
      LoongArch Port: Builtin functions. · 2aca9d5b
      chenglulu authored
      2022-03-29  Chenghua Xu  <xuchenghua@loongson.cn>
      	    Lulu Cheng  <chenglulu@loongson.cn>
      
      gcc/ChangeLog:
      
      	* config/loongarch/larchintrin.h: New file.
      	* config/loongarch/loongarch-builtins.cc: New file.
      2aca9d5b
    • chenglulu's avatar
      LoongArch Port: Machine description C files and .h files. · 62ec3b53
      chenglulu authored
      2022-03-29  Chenghua Xu  <xuchenghua@loongson.cn>
      	    Lulu Cheng  <chenglulu@loongson.cn>
      
      gcc/ChangeLog:
      
      	* config/host-linux.cc: Add LoongArch support.
      	* config/loongarch/loongarch-protos.h: New file.
      	* config/loongarch/loongarch-tune.h: Likewise.
      	* config/loongarch/loongarch.cc: Likewise.
      	* config/loongarch/loongarch.h: Likewise.
      62ec3b53
    • chenglulu's avatar
      LoongArch Port: Machine description files. · bcaf571c
      chenglulu authored
      2022-03-29  Chenghua Xu  <xuchenghua@loongson.cn>
      	    Lulu Cheng  <chenglulu@loongson.cn>
      
      gcc/ChangeLog:
      
      	* config/loongarch/constraints.md: New file.
      	* config/loongarch/generic.md: New file.
      	* config/loongarch/la464.md: New file.
      	* config/loongarch/loongarch-ftypes.def: New file.
      	* config/loongarch/loongarch-modes.def: New file.
      	* config/loongarch/loongarch.md: New file.
      	* config/loongarch/predicates.md: New file.
      	* config/loongarch/sync.md: New file.
      bcaf571c
    • chenglulu's avatar
      LoongArch Port: Regenerate gcc/configure. · 22576139
      chenglulu authored
      2022-03-29  Chenghua Xu  <xuchenghua@loongson.cn>
      	    Lulu Cheng  <chenglulu@loongson.cn>
      
      gcc/ChangeLog:
      
      	* configure: Regenerate file.
      22576139
    • chenglulu's avatar
      LoongArch Port: gcc build · b44786f6
      chenglulu authored
      2022-03-29  Chenghua Xu  <xuchenghua@loongson.cn>
      	    Lulu Cheng  <chenglulu@loongson.cn>
      
      gcc/ChangeLog:
      
      	* common/config/loongarch/loongarch-common.cc: New file.
      	* config/loongarch/genopts/genstr.sh: New file.
      	* config/loongarch/genopts/loongarch-strings: New file.
      	* config/loongarch/genopts/loongarch.opt.in: New file.
      	* config/loongarch/loongarch-str.h: New file.
      	* config/loongarch/gnu-user.h: New file.
      	* config/loongarch/linux.h: New file.
      	* config/loongarch/loongarch-cpu.cc: New file.
      	* config/loongarch/loongarch-cpu.h: New file.
      	* config/loongarch/loongarch-def.c: New file.
      	* config/loongarch/loongarch-def.h: New file.
      	* config/loongarch/loongarch-driver.cc: New file.
      	* config/loongarch/loongarch-driver.h: New file.
      	* config/loongarch/loongarch-opts.cc: New file.
      	* config/loongarch/loongarch-opts.h: New file.
      	* config/loongarch/loongarch.opt: New file.
      	* config/loongarch/t-linux: New file.
      	* config/loongarch/t-loongarch: New file.
      	* config.gcc: Add LoongArch support.
      	* configure.ac: Add LoongArch support.
      
      contrib/ChangeLog:
      
      	* gcc_update (files_and_dependencies): Add
      	  config/loongarch/loongarch.opt and config/loongarch/loongarch-str.h.
      b44786f6
    • chenglulu's avatar
      LoongArch Port: Regenerate configure · c6c0594e
      chenglulu authored
      2022-03-29  Chenghua Xu  <xuchenghua@loongson.cn>
      	    Lulu Cheng  <chenglulu@loongson.cn>
      
      ChangeLog:
      
      	* configure.ac: Add LoongArch tuples.
      	* configure: Regenerate.
      
      config/ChangeLog:
      
      	* picflag.m4: Default add build option '-fpic' for LoongArch.
      c6c0594e
    • Thomas Schwinge's avatar
      options: Fix 'enabledby_negargs' typo in 'LangEnabledBy' option property diagnostics · 2788d42b
      Thomas Schwinge authored
      Originally introduced almost ten years ago in
      r193303/commit 0829c7f7
      "optc-gen.awk: Factor code out to...".
      
      	gcc/
      	* opt-functions.awk (lang_enabled_by): Fix 'enabledby_negargs'
      	typo.
      2788d42b
    • Jonathan Wakely's avatar
      libstdc++: Workaround for missing 'using enum' in Clang 12 · 8bbeffc1
      Jonathan Wakely authored
      Once we no longer care about older compilers without this feature, we
      can drop these static data members, so the names don't have to be
      visible at class scope.
      
      libstdc++-v3/ChangeLog:
      
      	* libsupc++/compare (_Strong_order) [!__cpp_using_enum]: Add
      	static data members for _Fp_fmt enumerators.
      8bbeffc1
    • Jonathan Wakely's avatar
      libstdc++: Fix incorrect preprocessor conditions in <version> · 7255d29c
      Jonathan Wakely authored
      The conditions that guard the feature test macros in <version> should
      match the main definitions of the macros in other headers.
      
      This doesn't matter for GCC, because it supports all the conditions
      being tested here, but it does matter for non-GCC compilers without the
      relevant C++20 features.
      
      libstdc++-v3/ChangeLog:
      
      	* include/std/version (__cpp_lib_variant): Fix conditions to
      	match <variant>.
      	(__cpp_lib_expected): Fix condition to match <expected>.
      7255d29c
    • Marc Poulhiès's avatar
      testsuite: Check fpic support in pr103275.c · 35464c79
      Marc Poulhiès authored
      Test must check for effective support of fpic.
      
      gcc/testsuite/ChangeLog:
      	* gcc.target/i386/pr103275.c: Add missing
      	dg-require-effective-target for checking fpic.
      35464c79
    • Marc Poulhiès's avatar
      testsuite: fixup pr97521.c and pr96713.c on i686-* · b6cccf88
      Marc Poulhiès authored
      On targets that do not have MXX/SSE enabled by default, pr97521
      and pr96713 fail because they emit warnings:
      
      pr97521.c:12:1: warning: MMX vector return without MMX enabled
                      changes the ABI [-Wpsabi]
      pr97521.c:11:1: note: the ABI for passing parameters with
                      16-byte alignment has changed in GCC 4.6
      pr97521.c:11:1: warning: SSE vector argument without SSE enabled
                      changes the ABI [-Wpsabi]
      
      Add -Wno-psabi to dg-options.
      
      gcc/testsuite/ChangeLog:
      	* gcc.target/i386/pr97521.c: Add -Wno-psabi to dg-options.
      	* gcc.dg/analyzer/pr96713.c: Likewise.
      b6cccf88
    • Richard Biener's avatar
      tree-optimization/105080 - make sure SCEV is available for ranger · 28c5df79
      Richard Biener authored
      When doing format diagnostics at -O0 we should make sure to make
      SCEV available to avoid false positives due to ranges we otherwise
      can trivially compute.
      
      2022-03-28  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/105080
      	* tree-ssa-strlen.cc (printf_strlen_execute): Always init
      	loops and SCEV.
      
      	* gcc.dg/pr105080.c: New testcase.
      28c5df79
    • David Malcolm's avatar
      analyzer: ensure that we purge state when reusing a conjured_svalue [PR105087] · 3734527d
      David Malcolm authored
      
      PR analyzer/105087 describes a false positive from
      -Wanalyzer-double-free in which the analyzer erroneously considers two
      successive inlined vasprintf calls to have allocated the same pointer.
      
      The root cause is that the result written back from vasprintf is a
      conjured_svalue, and that we normally purge state when reusing a
      conjured_svalue, but various places in the code were calling
      region_model_manager::get_or_create_conjured_svalue but failing to
      then call region_model::purge_state_involving on the result.
      
      This patch fixes things by moving responsibility for calling
      region_model::purge_state_involving into
      region_model_manager::get_or_create_conjured_svalue, so that it is
      always called when reusing a conjured_svalue, fixing the false positive.
      
      gcc/analyzer/ChangeLog:
      	PR analyzer/105087
      	* analyzer.h (class conjured_purge): New forward decl.
      	* region-model-asm.cc (region_model::on_asm_stmt): Add
      	conjured_purge param to calls binding_cluster::on_asm and
      	region_model_manager::get_or_create_conjured_svalue.
      	* region-model-impl-calls.cc
      	(call_details::get_or_create_conjured_svalue): Likewise for call
      	to region_model_manager::get_or_create_conjured_svalue.
      	(region_model::impl_call_fgets): Remove call to
      	region_model::purge_state_involving, as this is now done
      	implicitly by call_details::get_or_create_conjured_svalue.
      	(region_model::impl_call_fread): Likewise.
      	(region_model::impl_call_strchr): Pass conjured_purge param to
      	call to region_model_manager::get_or_create_conjured_svalue.
      	* region-model-manager.cc (conjured_purge::purge): New.
      	(region_model_manager::get_or_create_conjured_svalue): Add
      	param "p".  Use it to purge state when reusing an existing
      	conjured_svalue.
      	* region-model.cc (region_model::on_call_pre): Replace call to
      	region_model::purge_state_involving with passing conjured_purge
      	to region_model_manager::get_or_create_conjured_svalue.
      	(region_model::handle_unrecognized_call): Pass conjured_purge to
      	store::on_unknown_fncall.
      	* region-model.h
      	(region_model_manager::get_or_create_conjured_svalue): Add param
      	"p".
      	* store.cc (binding_cluster::on_unknown_fncall): Likewise.  Pass
      	it on to region_model_manager::get_or_create_conjured_svalue.
      	(binding_cluster::on_asm): Likewise.
      	(store::on_unknown_fncall): Add param "p" and pass it on to
      	binding_cluster::on_unknown_fncall.
      	* store.h (binding_cluster::on_unknown_fncall): Add param p.
      	(binding_cluster::on_asm): Likewise.
      	(store::on_unknown_fncall): Likewise.
      	* svalue.h (class conjured_purge): New.
      
      gcc/testsuite/ChangeLog:
      	* gcc.dg/analyzer/pr105087-1.c: New test.
      	* gcc.dg/analyzer/pr105087-2.c: New test.
      	* gcc.dg/analyzer/vasprintf-1.c: New test.
      
      Signed-off-by: default avatarDavid Malcolm <dmalcolm@redhat.com>
      3734527d
    • David Malcolm's avatar
      analyzer: fix ICE with incorrect lookup of cgraph node [PR105074] · 1203e8f7
      David Malcolm authored
      
      gcc/analyzer/ChangeLog:
      	PR analyzer/105074
      	* region.cc (ipa_ref_requires_tracking): Drop "context_fndecl",
      	instead using the ref->referring to get the cgraph node of the
      	caller.
      	(symnode_requires_tracking_p): Likewise.
      
      gcc/testsuite/ChangeLog:
      	PR analyzer/105074
      	* gcc.dg/analyzer/pr105074.c: New test.
      	* gcc.dg/analyzer/untracked-1.c (extern_fn_char_ptr): New decl.
      	(test_13): New.
      
      Signed-off-by: default avatarDavid Malcolm <dmalcolm@redhat.com>
      1203e8f7
    • GCC Administrator's avatar
      Daily bump. · aab0127d
      GCC Administrator authored
      aab0127d
  2. Mar 28, 2022
    • Indu Bhagat's avatar
      ctfout: use ctfc_get_num_ctf_vars instead · eed9d091
      Indu Bhagat authored
      A minor cosmetic fix.
      
      2022-03-28  Indu Bhagat  <indu.bhagat@oracle.com>
      
      gcc/ChangeLog:
      
      	* ctfout.cc (ctf_preprocess): Use ctfc_get_num_ctf_vars instead.
      	(output_ctf_vars): Likewise.
      eed9d091
    • Tom Tromey's avatar
      Remove --with-gmp-dir and --with-mpfr-dir · 88252529
      Tom Tromey authored
      The top-level configure options --with-gmp-dir and --with-mpfr-dir
      were obsoleted and marked as "REMOVED" back in 2006.  I think that's
      long enough ago for everyone to have updated their scripts, so this
      patch removes them entirely.  While doing this, I also found one other
      leftover that wasn't removed by the earlier patch.  This is also
      removed here.
      
      2022-03-28  Tom Tromey  <tromey@adacore.com>
      
      	* configure.ac: Remove --with-mpfr-dir and --with-gmp-dir.
      	* configure: Rebuild.
      88252529
    • Joseph Myers's avatar
      Update gcc sv.po · 00635b6c
      Joseph Myers authored
      	* sv.po: Update.
      00635b6c
    • Jason Merrill's avatar
      c++: Fix __has_trivial_* docs [PR59426] · 83a21c99
      Jason Merrill authored
      These have been misdocumented since C++98 POD was split into C++11 trivial
      and standard-layout in r149721.
      
      	PR c++/59426
      
      gcc/ChangeLog:
      
      	* doc/extend.texi: Refer to __is_trivial instead of __is_pod.
      83a21c99
    • Jason Merrill's avatar
      c++: add comment · f8093854
      Jason Merrill authored
      gcc/cp/ChangeLog:
      
      	* pt.cc (determine_specialization): Add comment.
      f8093854
    • Patrick Palka's avatar
      c++: reject concept w/ multiple tparm lists [PR105067] · 23e57329
      Patrick Palka authored
      We weren't rejecting a concept declared with multiple template
      parameter lists.
      
      	PR c++/105067
      
      gcc/cp/ChangeLog:
      
      	* pt.cc (finish_concept_definition): Check that a concept is
      	declared with exactly one template parameter list.
      
      gcc/testsuite/ChangeLog:
      
      	* g++.dg/cpp2a/concepts-err4.C: New test.
      23e57329
    • Patrick Palka's avatar
      c++: constrained template friend matching ICE [PR105064] · ecb4882e
      Patrick Palka authored
      Here during declaration matching for the two constrained template
      friends, we crash from maybe_substitute_reqs_for because the second
      friend doesn't yet have DECL_TEMPLATE_INFO set (we're being called
      indirectly from push_template_decl).
      
      As far as I can tell, this situation happens only when declaring a
      constrained template friend within a non-template class (as in the
      testcase), in which case the substitution would be a no-op anyway.
      So this patch rearranges maybe_substitute_reqs_for to gracefully
      handle missing DECL_TEMPLATE_INFO by just skipping the substitution.
      
      	PR c++/105064
      
      gcc/cp/ChangeLog:
      
      	* constraint.cc (maybe_substitute_reqs_for): Don't assume
      	DECL_TEMPLATE_INFO is available.
      
      gcc/testsuite/ChangeLog:
      
      	* g++.dg/cpp2a/concepts-friend9.C: New test.
      ecb4882e
    • H.J. Lu's avatar
      x86: Also use Yw in *ssse3_pshufbv8qi3 clobber · cccbb776
      H.J. Lu authored
      	PR target/105068
      	* config/i386/sse.md (*ssse3_pshufbv8qi3): Also replace "Yv" with
      	"Yw" in clobber.
      cccbb776
Loading