Skip to content
Snippets Groups Projects
  1. Mar 30, 2022
  2. Mar 29, 2022
    • David Malcolm's avatar
      analyzer: skip constant pool in -fdump-analyzer-untracked [PR testsuite/105085] · c788a0ea
      David Malcolm authored
      
      In r12-7809-g5f6197d7c197f9 I added -fdump-analyzer-untracked as support
      for DejaGnu testing of an optimization of -fanalyzer,
      PR analyzer/104954.
      
      PR testsuite/105085 notes testsuite failures of the form:
        FAIL: gcc.dg/analyzer/untracked-1.c (test for excess errors)
        Excess errors:
        cc1: warning: track '*.LC1': yes
      where these warnings are emitted on some targets where the test
      causes labelled constants to be created in the constant pool.
      
      We probably ought not to be tracking the values of such decls in the
      store, given that they're meant to be constant, and I attempted various
      fixes to make the "should we track this decl" logic smarter, but given
      that we're in stage 4, the simplest fix seems to be for
      -fdump-analyzer-untracked to skip such decls in its output, to minimize
      test output differences between targets.
      
      gcc/analyzer/ChangeLog:
      	PR testsuite/105085
      	* region-model-manager.cc (dump_untracked_region): Skip decls in
      	the constant pool.
      
      gcc/testsuite/ChangeLog:
      	PR testsuite/105085
      	* gcc.dg/analyzer/untracked-1.c: Add further test coverage.
      
      Signed-off-by: default avatarDavid Malcolm <dmalcolm@redhat.com>
      c788a0ea
    • Harald Anlauf's avatar
      Fortran: avoid NULL pointer dereference checking elemental procedure args · 69db6e7f
      Harald Anlauf authored
      
      gcc/fortran/ChangeLog:
      
      	PR fortran/104571
      	* resolve.cc (resolve_elemental_actual): Avoid NULL pointer
      	dereference.
      
      gcc/testsuite/ChangeLog:
      
      	PR fortran/104571
      	* gfortran.dg/pr104571.f90: New test.
      
      Co-authored-by: default avatarSteven G. Kargl <kargl@gcc.gnu.org>
      69db6e7f
    • Jonathan Wakely's avatar
      testsuite: Allow setting gpp_std_list in configuration files · eb59ddf5
      Jonathan Wakely authored
      This allows the gpp_std_list variable to be set in ~/.dejagnurc instead
      of using the GXX_TESTSUITE_STDS environment variable.  This is
      consistent with how other defaults such as tool_timeout can be set.
      
      The environment variable can still be used to override the default.
      
      gcc/testsuite/ChangeLog:
      
      	* lib/g++-dg.exp: Update comments.
      	* lib/g++.exp (gpp_std_list): Check for an existing value before
      	setting it to an empty list.
      eb59ddf5
    • Jonathan Wakely's avatar
      testsuite: Disable tests for C++23 that depend on std::unexpected · 95768878
      Jonathan Wakely authored
      These tests depend on unexpected handlers, which are no longer declared
      for C++23 mode. Adjust the target specifier so they don't run.
      
      gcc/testsuite/ChangeLog:
      
      	* g++.dg/cpp0x/noexcept06.C: Disable for C++23.
      
      libstdc++-v3/ChangeLog:
      
      	* testsuite/18_support/exception/38732.cc: Disable for C++23.
      	* testsuite/18_support/headers/exception/synopsis.cc: Likewise.
      	* testsuite/18_support/unexpected_handler.cc: Likewise.
      95768878
    • Joseph Myers's avatar
      Update gcc hr.po · 5eba1575
      Joseph Myers authored
      	* hr.po: Update.
      5eba1575
    • Harald Anlauf's avatar
      Fortran: character length of pointer assignments in structure constructors · 0712f356
      Harald Anlauf authored
      gcc/fortran/ChangeLog:
      
      	PR fortran/50549
      	* resolve.cc (resolve_structure_cons): Reject pointer assignments
      	of character with different lengths in structure constructor.
      
      gcc/testsuite/ChangeLog:
      
      	PR fortran/50549
      	* gfortran.dg/char_pointer_assign_7.f90: New test.
      0712f356
    • Marek Polacek's avatar
      gimple: Wrong -Wimplicit-fallthrough with if(1) [PR103597] · d886a524
      Marek Polacek authored
      
      This patch fixes a wrong -Wimplicit-fallthrough warning for
      
          case 0:
            if (1)  // wrong may fallthrough
      	return 0;
          case 1:
      
      which in .gimple looks like
      
          <D.1981>: // case 0
          if (1 != 0) goto <D.1985>; else goto <D.1986>;
          <D.1985>:
          D.1987 = 0;
          // predicted unlikely by early return (on trees) predictor.
          return D.1987;
          <D.1986>:  // dead
          <D.1982>: // case 1
      
      and the warning thinks that <D.1986>: falls through to <D.1982>:.  It
      does not know that <D.1986> is effectively a dead label, only reachable
      through fallthrough from previous instructions, never jumped to.  To
      that effect, Jakub introduced UNUSED_LABEL_P, which is set on such dead
      labels.
      
      collect_fallthrough_labels has code to deal with cases like
      
          case 2:
            if (e != 10)
      	i++; // this may fallthru, warn
            else
      	return 44;
          case 3:
      
      which collects labels that may fall through.  Here it sees the "goto <D.1990>;"
      at the end of the then branch and so when the warning reaches
      
          ...
          <D.1990>: // from if-then
          <D.1984>: // case 3
      
      it knows it should warn about the possible fallthrough.  But an UNUSED_LABEL_P
      is not a label that can fallthrough like that, so it should ignore those.
      
      However, we still want to warn about this:
      
          case 0:
            if (1)
      	n++; // falls through
          case 1:
      
      so collect_fallthrough_labels needs to return the "n = n + 1;" statement, rather
      than the dead label.
      
      Co-authored-by: default avatarJakub Jelinek <jakub@redhat.com>
      
      	PR middle-end/103597
      
      gcc/ChangeLog:
      
      	* gimplify.cc (collect_fallthrough_labels): Don't push UNUSED_LABEL_Ps
      	into labels.  Maybe set prev to the statement preceding UNUSED_LABEL_P.
      	(gimplify_cond_expr): Set UNUSED_LABEL_P.
      	* tree.h (UNUSED_LABEL_P): New.
      
      gcc/testsuite/ChangeLog:
      
      	* c-c++-common/Wimplicit-fallthrough-39.c: New test.
      d886a524
    • 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
Loading