1. 10 Sep, 2016 6 commits
  2. 09 Sep, 2016 17 commits
    • PR c/77520 - wrong value for extended ASCII characters in -Wformat message · 3f0177e7
      PR c/77520 - wrong value for extended ASCII characters in -Wformat message
      PR c/77521 - %qc format directive should quote non-printable characters
      
      gcc/c-family/ChangeLog:
      
      	PR c/77520
      	PR c/77521
      	* c-format.c (argument_parser::find_format_char_info): Use %qc
      	format directive unconditionally.
      
      gcc/ChangeLog:
      
      	PR c/77520
      	PR c/77521
      	* pretty-print.c (pp_quoted_string): New function.
      	(pp_format): Call it for %c and %s directives.
      
      gcc/testsuite/ChangeLog:
      
      	PR c/77520
      	PR c/77521
      	* gcc.dg/pr77520.c: New test.
      	* gcc.dg/pr77521.c: New test.
      
      From-SVN: r240059
      Martin Sebor committed
    • tm.texi.in (INITIAL_FRAME_POINTER_OFFSET): Remove. · 53680238
      2016-09-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
      
              * doc/tm.texi.in (INITIAL_FRAME_POINTER_OFFSET): Remove.
              (ELIMINABLE_REGS, TARGET_CAN_ELIMINATE,
              INITIAL_ELIMINATION_OFFSET) : Update documentation.
              * target.def (frame_pointer_required, can_eliminate): Likewise.
              * doc/tm.texi: Regenerated.
              * builtins.c (expand_builtin_setjmp_receiver): Remove #ifdef
              ELIMINABLE_REGS.
              * df-scan.c (df_hard_reg_init): Likewise.
              * ira.c (ira_setup_eliminable_regset): Likewise.
              * lra-eliminations.c (reg_eliminate_1, (update_reg_eliminate,
              init_elim_table): Likewise.
              * reload1.c (reg_eliminate_1, verify_initial_elim_offsets,
              set_initial_elim_offsets, update_eliminables,
              init_elim_table): Likewise.
              * rtlanal.c (get_initial_register_offset): Likewise.
              * config/ft32/ft32.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
              * config/m32r/m32r.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
              * config/moxie/moxie.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
              * config/vax/vax.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
              * config/fr30/fr30.h: Fix comment.
              * config/frv/frv.c: Likewise.
              * config/frv/frv.h: Likewise.
              * config/ft32/ft32.h: Likewise.
              * config/visium/visium.h: Likewise.
              * config/pa/pa64-linux.h: Likewise.
              * config/v850/v850.h: Likewise.
              * config/cris/cris.c: Likewise.
              * config/ia64/ia64.h: Likewise.
              * config/moxie/moxie.h: Likewise.
              * config/m32r/m32r.h: Likewise.
      
      From-SVN: r240058
      Bernd Edlinger committed
    • re PR target/77267 (MPX does not work in a presence of "-Wl,-as-needed" option (Ubuntu default)) · 7e495577
      Fix PR target/77267
      
      2016-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
      
      	PR target/77267
      	* config.in: Regenerate.
      	* config/i386/linux-common.h (MPX_LD_AS_NEEDED_GUARD_PUSH):
      	New macro.
      	(MPX_LD_AS_NEEDED_GUARD_PUSH): Ditto.
      	(LIBMPXWRAPPERS_SPEC): Remove "--no-whole-archive" from
      	static-libmpxwrappers case.
      	(LIBMPX_SPEC): Add guards with MPX_LD_AS_NEEDED_GUARD_PUSH and
      	MPX_LD_AS_NEEDED_GUARD_POP.
      	* configure: Regenerate.
      	* configure.ac (HAVE_LD_PUSHPOPSTATE_SUPPORT): New variable.
      	defined if linker support "--push-state"/"--pop-state".
      
      From-SVN: r240057
      Alexander Ivchenko committed
    • Implement P0035R4, C++17 new of over-aligned types. · af63ba4b
      gcc/cp/
      	* cp-tree.h (enum cp_tree_index): Add CPTI_ALIGN_TYPE.
      	(align_type_node): New macro.
      	* call.c (build_operator_new_call): Handle C++17 aligned new.
      	(second_parm_is_size_t, build_op_delete_call): Likewise.
      	(non_placement_deallocation_fn_p): Likewise. Rename to
      	usual_deallocation_fn_p.
      	(aligned_allocation_fn_p, aligned_deallocation_fn_p): New.
      	* decl.c (cxx_init_decl_processing): Add aligned new support.
      	* init.c (type_has_new_extended_alignment): New.
      	(build_new_1): Handle aligned new.
      	* tree.c (vec_copy_and_insert): New.
      gcc/c-family/
      	* c.opt: Add -faligned-new and -Waligned-new.
      	* c-common.c (max_align_t_align): Split out from...
      	(cxx_fundamental_alignment_p): ...here.
      	* c-common.h: Declare it.
      	* c-cppbuiltin.c (c_cpp_builtins): Handle aligned new.
      libstdc++-v3/
      	* libsupc++/new: Declare aligned new/delete operators.
      	* config/abi/pre/gnu.ver: Export them.
      	* configure.ac: Check for aligned_alloc, posix_memalign, memalign,
      	_aligned_malloc.
      	* libsupc++/new_opa.cc: New.
      	* libsupc++/new_opant.cc: New.
      	* libsupc++/new_opva.cc: New.
      	* libsupc++/new_opva.cc: New.
      	* libsupc++/del_opa.cc: New.
      	* libsupc++/del_opant.cc: New.
      	* libsupc++/del_opsa.cc: New.
      	* libsupc++/del_opva.cc: New.
      	* libsupc++/del_opvant.cc: New.
      	* libsupc++/del_opvsa.cc: New.
      	* libsupc++/Makefile.am: Build them.
      
      From-SVN: r240056
      Jason Merrill committed
    • .gitignore: Ignore in-tree prerequisites. · 51389084
      From-SVN: r240055
      Jason Merrill committed
    • compiler: increase buffer size to avoid -Wformat-length warning · 922cbb7c
          
          GCC will soon get a new -Wformat-length option as described in
          https://gcc.gnu.org/PR49905.  This change makes a buffer larger to avoid
          a warning.
          
          Reviewed-on: https://go-review.googlesource.com/28915
      
      Also revert ChangeLog entry in gcc/go/ChangeLog--changes to
      gcc/go/gofrontend do not get ChangeLog entries.
      
      From-SVN: r240054
      Ian Lance Taylor committed
    • compiler: add abstraction layer for sha1 checksums. · 34144b6e
          
          Add new interface for the front end code to use when computing SHA1
          checksums; the intent is to allow the different implementation in
          different back ends.
          
          No change in functionality for gccgo; this is an enabling change to
          permit the front end to be used with other back ends (e.g. LLVM).
          
          Reviewed-on: https://go-review.googlesource.com/28833
      
      	* go-sha1.cc: New file.
      	* Make-lang.in (GO_OBJS): Add go/go-sha1.o.
      	(CFLAGS-go/go-sha1.o): New variable.
      
      From-SVN: r240053
      Than McIntosh committed
    • re PR fortran/77506 (F2008 Standard does not allow CHARACTER(LEN=*) in array constructor) · e81e83d0
      2016-09-09  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/77506
      	* array.c (gfc_match_array_constructor): CHARACTER(len=*) cannot
      	appear in an array constructor.
      
      2016-09-09  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/77506
      	* gfortran.dg/pr77506.f90: New test.
      
      From-SVN: r240052
      Steven G. Kargl committed
    • cpp.texi (__*_WIDTH__): Small wording fixes. · 36d9b716
      2016-09-09  Bernd Edlinger  <bernd.edlinger@hotmail.de>
      
              * doc/cpp.texi (__*_WIDTH__): Small wording fixes.
      
      From-SVN: r240051
      Bernd Edlinger committed
    • re PR fortran/77507 (gfortran rejects keyworded calls to procedures from intrinsic modules) · 8a92685e
      2016-09-09  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/77507
      	* intrinsic.c (add_functions):  Use correct keyword.
      
      2016-09-09  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/77507
       	* ieee/ieee_arithmetic.F90 (IEEE_VALUE_4,IEEE_VALUE_8,IEEE_VALULE_10,
      	IEEE_VALUE_16):  Use correct keyword.
      
      2016-09-09  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/77507
      	* gfortran.dg/pr77507.f90: New test.
      
      From-SVN: r240050
      Steven G. Kargl committed
    • compiler: break dependence on hex_value · 71177525
          
          Rework the lexical analyzer to eliminate the need to call
          hex_value() in libiberty (added equivalent local functionality).
          No change in functionality.
          
          Reviewed-on: https://go-review.googlesource.com/28855
      
      From-SVN: r240049
      Ian Lance Taylor committed
    • Define TS 18661-1 type width macros in <limits.h> and <stdint.h>. · c65248cb
      TS 18661-1 defines <limits.h> and <stdint.h> macros for widths of
      standard integer types and the typedefs defined in, or whose limits
      are defined in, <stdint.h>.  (The connection to the main
      floating-point subject matter of TS 18661-1 is that these are intended
      to be used with the fromfp functions to convert from floating point to
      integer types of any width in any rounding direction, though these
      macros may be of more general use.)
      
      This patch implements support for these macros in GCC's <limits.h> and
      <stdint.h>.  To avoid needing to implement fixincludes for system
      headers where GCC wraps the system libc's <stdint.h> in hosted mode,
      the test for the <stdint.h> macros uses -ffreestanding (I'll add the
      macros to glibc's headers separately) - but as usual for new features
      in these headers, platforms (primarily OpenBSD) that use USER_H to
      avoid using GCC's headers at all will have failures until the system
      headers have the feature added or appropriate fixincludes are
      implemented.
      
      The header macros are implemented using appropriate new predefined
      macros, with the code avoiding defining more such macros than
      necessary (so one predefined macro suffices for corresponding signed
      and unsigned types, while no such predefined macros are needed for the
      exact-width types such as int8_t).
      
      Bootstrapped with no regressions on x86_64-pc-linux-gnu.
      
      gcc:
      	* doc/cpp.texi (__SCHAR_WIDTH__, __SHRT_WIDTH__, __INT_WIDTH__)
      	(__LONG_WIDTH__, __LONG_LONG_WIDTH__, __PTRDIFF_WIDTH__)
      	(__SIG_ATOMIC_WIDTH__, __SIZE_WIDTH__, __WCHAR_WIDTH__)
      	(__WINT_WIDTH__, __INT_LEAST8_WIDTH__, __INT_LEAST16_WIDTH__)
      	(__INT_LEAST32_WIDTH__, __INT_LEAST64_WIDTH__)
      	(__INT_FAST8_WIDTH__, __INT_FAST16_WIDTH__, __INT_FAST32_WIDTH__)
      	(__INT_FAST64_WIDTH__, __INTPTR_WIDTH__, __INTMAX_WIDTH__):
      	Document.
      	* ginclude/stdint-gcc.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Define
      	width macros from TS 18661-1.
      	* glimits.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Likewise.
      
      gcc/c-family:
      	* c-cppbuiltin.c (builtin_define_type_width): New function.
      	(builtin_define_stdint_macros, c_cpp_builtins): Define type width
      	macros.
      
      gcc/testsuite:
      	* gcc.dg/limits-width-1.c, gcc.dg/stdint-width-1.c: New tests.
      
      From-SVN: r240048
      Joseph Myers committed
    • runtime: use alignof to check alignment of ucontext_t · ac376b15
          
          Use alignof rather than assuming a 16 byte alignment.
          
          Reviewed-on: https://go-review.googlesource.com/28913
      
      From-SVN: r240047
      Ian Lance Taylor committed
    • runtime: remove remaining use of MAKECONTEXT_STACK_TOP macro · a9ca0a9d
          
          The definition and most uses of MAKECONTEXT_STACK_TOP were removed in
          https://golang.org/cl/88660043, which removed support for Solaris 8/9.
          One use of MAKECONTEXT_STACK_TOP was accidentally left in the source
          code.  Remove it now.
          
          Reviewed-on: https://go-review.googlesource.com/28911
      
      From-SVN: r240045
      Ian Lance Taylor committed
    • runtime: align ucontext_t argument to 16 byte boundary · 6f02c138
          
          Some systems, such as ia64 and PPC, require that a ucontext_t pointer
          passed to getcontext and friends be aligned to a 16-byte boundary.
          Currently the ucontext_t fields in the g structure are defined in Go,
          and Go has no way to ensure a 16-byte alignment for a struct field.
          The fields are currently represented by an array of unsafe.Pointer.
          Enforce the alignment by making the array larger, and picking an offset
          into the array that is 16-byte aligned.
          
          Reviewed-on: https://go-review.googlesource.com/28910
      
      From-SVN: r240044
      Ian Lance Taylor committed
    • [Patch libgcc] Enable HCmode multiply and divide (mulhc3/divhc3) · 0abcd6cc
      This patch arranges for half-precision complex multiply and divide
      routines to be built if __LIBGCC_HAS_HF_MODE__.  This will be true
      if the target supports the _Float16 type.
      
      libgcc/
      
      	PR target/63250
      	*  Makefile.in (lib2funcs): Build _mulhc3 and _divhc3.
      	* libgcc2.h (LIBGCC_HAS_HF_MODE): Conditionally define.
      	(HFtype): Likewise.
      	(HCtype): Likewise.
      	(__divhc3): Likewise.
      	(__mulhc3): Likewise.
      	* libgcc2.c: Support _mulhc3 and _divhc3.
      
      From-SVN: r240043
      James Greenhalgh committed
    • Daily bump. · f67a81a5
      From-SVN: r240042
      GCC Administrator committed
  3. 08 Sep, 2016 4 commits
  4. 07 Sep, 2016 8 commits
    • Correct libgcc complex multiply excess precision handling (PR libgcc/77519). · d758aeb5
      libgcc complex multiply is meant to eliminate excess
      precision from certain internal values by forcing them to memory in
      exactly those cases where the type has excess precision.  But in
      https://gcc.gnu.org/ml/gcc-patches/2014-09/msg01894.html I
      accidentally inverted the logic so that values get forced to memory in
      exactly the cases where it's not needed.  (This is a pessimization in
      the no-excess-precision case, in principle could lead to bad results
      depending on code generation in the excess-precision case.  Note: I do
      not have a test demonstrating bad results.)
      
      Bootstrapped with no regressions on x86_64-pc-linux-gnu.  Code size
      went down on x86_64 as expected; old sizes:
      
         text    data     bss     dec     hex filename
          887       0       0     887     377 _muldc3.o
          810       0       0     810     32a _mulsc3.o
         2032       0       0    2032     7f0 _multc3.o
          983       0       0     983     3d7 _mulxc3.o
      
      New sizes:
      
          847       0       0     847     34f _muldc3.o
          770       0       0     770     302 _mulsc3.o
         2032       0       0    2032     7f0 _multc3.o
          951       0       0     951     3b7 _mulxc3.o
      
      	PR libgcc/77519
      	* libgcc2.c (NOTRUNC): Invert settings.
      
      From-SVN: r240033
      Joseph Myers committed
    • PR middle-end/77475: Fix AArch64 testcases. · 34718542
      2016-09-07  Jakub Jelinek  <jakub@redhat.com>
      
      	PR middle-end/77475
      	* gcc.target/aarch64/arch-diagnostics-1.c: Expect error on line 0.
      	* gcc.target/aarch64/arch-diagnostics-2.c: Likewise.
      	* gcc.target/aarch64/cpu-diagnostics-1.c: Likewise.
      	* gcc.target/aarch64/cpu-diagnostics-2.c: Likewise.
      	* gcc.target/aarch64/cpu-diagnostics-3.c: Likewise.
      	* gcc.target/aarch64/cpu-diagnostics-4.c: Likewise.
      
      From-SVN: r240030
      Jakub Jelinek committed
    • Move class substring_loc from c-family into gcc · e5106e27
      gcc/ChangeLog:
      	* Makefile.in (OBJS): Add substring-locations.o.
      	* langhooks-def.h (class substring_loc): New forward decl.
      	(lhd_get_substring_location): New decl.
      	(LANG_HOOKS_GET_SUBSTRING_LOCATION): New macro.
      	(LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_GET_SUBSTRING_LOCATION.
      	* langhooks.c (lhd_get_substring_location): New function.
      	* langhooks.h (class substring_loc): New forward decl.
      	(struct lang_hooks): Add field get_substring_location.
      	* substring-locations.c: New file, taking definition of
      	format_warning_va and format_warning_at_substring from
      	c-family/c-format.c, making them non-static.
      	* substring-locations.h (class substring_loc): Move class here
      	from c-family/c-common.h.  Add and rewrite comments.
      	(format_warning_va): New decl.
      	(format_warning_at_substring): New decl.
      	(get_source_location_for_substring): Add comment.
      
      gcc/c-family/ChangeLog:
      	* c-common.c (get_cpp_ttype_from_string_type): Handle being passed
      	a POINTER_TYPE.
      	(substring_loc::get_location): Move to substring-locations.c,
      	keeping implementation as...
      	(c_get_substring_location): New function, from the above, reworked
      	to use accessors rather than member lookup.
      	* c-common.h (class substring_loc): Move to substring-locations.h,
      	replacing with a forward decl.
      	(c_get_substring_location): New decl.
      	* c-format.c: Include "substring-locations.h".
      	(format_warning_va): Move to substring-locations.c.
      	(format_warning_at_substring): Likewise.
      
      gcc/c/ChangeLog:
      	* c-lang.c (LANG_HOOKS_GET_SUBSTRING_LOCATION): Use
      	c_get_substring_location for this new langhook.
      
      gcc/testsuite/ChangeLog:
      	* gcc.dg/plugin/diagnostic_plugin_test_string_literals.c: Include
      	"substring-locations.h".
      
      From-SVN: r240028
      David Malcolm committed
    • i386.c: Add 'U' suffix to processor feature bits to avoid -Wnarrowing warning. · 7100c1f2
      	* config/i386/i386.c: Add 'U' suffix to processor feature bits
      	to avoid -Wnarrowing warning.
      	* config/i386/x86-tune.def: Likewise for DEF_TUNE selector bitmasks.
      	* opts.c: Likewise for SANITIZER_OPT bitmasks.
      
      From-SVN: r240027
      Eric Gallager committed
    • Improve aarch64_legitimize_address - avoid splitting the offset if it is supported. · ff0f3f1c
      Improve aarch64_legitimize_address - avoid splitting the offset if it is
      supported.  When we do split, take the mode size into account.  BLKmode
      falls into the unaligned case but should be treated like LDP/STP.
      This improves codesize slightly due to fewer base address calculations:
      
      int f(int *p) { return p[5000] + p[7000]; }
      
      Now generates:
      
      f:
      	add	x0, x0, 16384
      	ldr	w1, [x0, 3616]
      	ldr	w0, [x0, 11616]
      	add	w0, w1, w0
      	ret
      
      instead of:
      
      f:
      	add	x1, x0, 16384
      	add	x0, x0, 24576
      	ldr	w1, [x1, 3616]
      	ldr	w0, [x0, 3424]
      	add	w0, w1, w0
      	ret
      
          gcc/
      	* config/aarch64/aarch64.c (aarch64_legitimize_address):
      	Avoid use of base_offset if offset already in range.
      
      From-SVN: r240026
      Wilco Dijkstra committed
    • re PR tree-optimization/77450 (ICE: in verify_ssa, at tree-ssa.c:1016 on very… · ca235a85
      re PR tree-optimization/77450 (ICE: in verify_ssa, at tree-ssa.c:1016 on very simple code with vectors)
      
      2016-09-07  Richard Biener  <rguenther@suse.de>
      
      	PR c/77450
      	* c-c++-common/vector-subscript-8.c: Move ..
      	* gcc.dg/pr77450.c: ... here.
      
      From-SVN: r240025
      Richard Biener committed
    • Daily bump. · cdc65c28
      From-SVN: r240022
      GCC Administrator committed
  5. 06 Sep, 2016 5 commits