Commit Graph

148343 Commits

Author SHA1 Message Date
Paul Thomas
739d93391d re PR fortran/77532 ([F03] ICE in check_dtio_interface1, at fortran/interface.c:4622)
2016-09-10  Paul Thomas  <pault@gcc.gnu.org>
	    Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/77532
	^ interface.c (check_dtio_arg_TKR_intent): Return after error.
	(check_dtio_interface1): Remove asserts, test for NULL and return
	if found.

	gfortran.dg/dtio_11.f90: new test.

Co-Authored-By: Steven G. Kargl <kargl@gcc.gnu.org>

From-SVN: r240074
2016-09-10 21:16:45 +00:00
Steven G. Kargl
fb7c40dde3 re PR fortran/77507 (gfortran rejects keyworded calls to procedures from intrinsic modules)
2016-09-10  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/77507
	* gfortran.dg/c_assoc_2.f03: Update for r240050
	* gfortran.dg/c_assoc_4.f90: Ditto.

From-SVN: r240073
2016-09-10 14:45:46 +00:00
Tom de Vries
5b28efbbf4 Make canonical_va_list_type more strict
2016-09-10  Tom de Vries  <tom@codesourcery.com>

	PR C/71602
	* builtins.c (std_canonical_va_list_type): Strictly return non-null for
	va_list type only.
	* config/i386/i386.c (ix86_canonical_va_list_type): Same.
	* gimplify.c (gimplify_va_arg_expr): Handle &va_list.

	* c-common.c (build_va_arg): Handle more strict
	targetm.canonical_va_list_type.  Replace first argument type error with
	assert.

	* c-c++-common/va-arg-va-list-type.c: New test.

From-SVN: r240072
2016-09-10 14:38:56 +00:00
Ian Lance Taylor
af4b8a5233 libgo: update to Go 1.7.1 release
Reviewed-on: https://go-review.googlesource.com/29012

From-SVN: r240071
2016-09-10 13:14:00 +00:00
Ian Lance Taylor
337fa50b7b runtime/internal/atomic: new package, API copied from Go 1.7
Copy over the Go 1.7 runtime/internal/atomic package, but implement the
    functions in C using __atomic functions rather than using the
    processor-specific assembler code.
    
    Reviewed-on: https://go-review.googlesource.com/29010

From-SVN: r240070
2016-09-10 12:21:59 +00:00
Ian Lance Taylor
ec1ea9cfbc go-backend.c (go_trampoline_info): Remove.
* go-backend.c (go_trampoline_info): Remove.
	* go-c.h (go_trampoline_info): Don't declare.

From-SVN: r240069
2016-09-10 10:39:22 +00:00
Mark Wielaard
99e77371ca Fix -Wshadow warning in libiberty/cp-demangle.c
valgrind contains a copy of the libiberty demangler which gets compiled
with -Wshadow. That shows the following warning:

cp-demangle.c: In function ‘d_substitution’:
cp-demangle.c:3772:35: warning: declaration of ‘c’ shadows a previous local
        struct demangle_component *c;
                                   ^
cp-demangle.c:3708:8: note: shadowed declaration is here
   char c;
        ^

Fix that by renaming the struct demangle_component variable to dc.

libiberty/ChangeLog:

	* cp-demangle.c (d_substitution): Change struct demangle_component
	variable name from c to dc.

From-SVN: r240068
2016-09-10 10:37:35 +00:00
Ian Lance Taylor
7861fc4f1c compiler: code cleanup (unused header file)
Remove inclusion of simple-ojbject.h (no longer needed);
    adjust comments.
    
    Reviewed-on: https://go-review.googlesource.com/28856

From-SVN: r240067
2016-09-10 10:35:19 +00:00
Peter Bergner
9d0a9bb43a re PR rtl-optimization/77289 (ICE in extract_constrain_insn, at recog.c:2212 on powerpc64)
gcc/
	PR rtl-optimization/77289
	* lra-constraints.c (get_final_hard_regno): Add support for non hard
	register numbers.  Remove support for subregs.
	(get_hard_regno): Use SUBREG_P.  Don't call get_final_hard_regno().
	(get_reg_class): Delete removed get_final_hard_regno() argument.
	(uses_hard_regs_p): Call get_final_hard_regno().

gcc/testsuite/
	PR rtl-optimization/77289
	* gcc.target/powerpc/pr77289.c: New test.

From-SVN: r240065
2016-09-09 20:36:33 -05:00
Steven G. Kargl
659edeaf8e Commit the ChangeLog entry for revision 240063.
From-SVN: r240064
2016-09-10 00:59:33 +00:00
Steven G. Kargl
352c2128b4 re PR fortran/77420 (gfortran and equivalence produces internal compiler error)
2016-09-09  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/77420
	* module.c (load_equiv): If the current namespace has a list of
	equivalence statements, initialize duplicate to false and then
	look for duplicates; otherwise, initialize it to true.
 
2016-09-09  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/77420
	* gfortran.dg/pr77420.f90: New test.

From-SVN: r240063
2016-09-10 00:52:45 +00:00
GCC Administrator
c87656b4d3 Daily bump.
From-SVN: r240062
2016-09-10 00:16:14 +00:00
Martin Sebor
3f0177e74c PR c/77520 - wrong value for extended ASCII characters in -Wformat message
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
2016-09-09 17:12:10 -06:00
Bernd Edlinger
5368023839 tm.texi.in (INITIAL_FRAME_POINTER_OFFSET): Remove.
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
2016-09-09 23:08:54 +00:00
Alexander Ivchenko
7e4955774f re PR target/77267 (MPX does not work in a presence of "-Wl,-as-needed" option (Ubuntu default))
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
2016-09-09 14:38:06 -07:00
Jason Merrill
af63ba4b30 Implement P0035R4, C++17 new of over-aligned types.
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
2016-09-09 17:22:15 -04:00
Jason Merrill
51389084ec .gitignore: Ignore in-tree prerequisites.
From-SVN: r240055
2016-09-09 17:20:55 -04:00
Ian Lance Taylor
922cbb7c7b compiler: increase buffer size to avoid -Wformat-length warning
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
2016-09-09 19:39:36 +00:00
Than McIntosh
34144b6ec0 compiler: add abstraction layer for sha1 checksums.
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
2016-09-09 18:27:42 +00:00
Steven G. Kargl
e81e83d047 re PR fortran/77506 (F2008 Standard does not allow CHARACTER(LEN=*) in array constructor)
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
2016-09-09 18:04:23 +00:00
Bernd Edlinger
36d9b716ad cpp.texi (__*_WIDTH__): Small wording fixes.
2016-09-09  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * doc/cpp.texi (__*_WIDTH__): Small wording fixes.

From-SVN: r240051
2016-09-09 17:59:50 +00:00
Steven G. Kargl
8a92685e53 re PR fortran/77507 (gfortran rejects keyworded calls to procedures from intrinsic modules)
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
2016-09-09 17:57:11 +00:00
Ian Lance Taylor
7117752523 compiler: break dependence on hex_value
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
2016-09-09 17:44:12 +00:00
Joseph Myers
c65248cb7d Define TS 18661-1 type width macros in <limits.h> and <stdint.h>.
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
2016-09-09 17:59:43 +01:00
Ian Lance Taylor
ac376b15df runtime: use alignof to check alignment of ucontext_t
Use alignof rather than assuming a 16 byte alignment.
    
    Reviewed-on: https://go-review.googlesource.com/28913

From-SVN: r240047
2016-09-09 16:39:44 +00:00
Ian Lance Taylor
a9ca0a9d02 runtime: remove remaining use of MAKECONTEXT_STACK_TOP macro
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
2016-09-09 14:00:43 +00:00
Ian Lance Taylor
6f02c13813 runtime: align ucontext_t argument to 16 byte boundary
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
2016-09-09 13:31:49 +00:00
James Greenhalgh
0abcd6cc73 [Patch libgcc] Enable HCmode multiply and divide (mulhc3/divhc3)
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
2016-09-09 09:40:22 +00:00
GCC Administrator
f67a81a5e2 Daily bump.
From-SVN: r240042
2016-09-09 00:16:17 +00:00
Steven G. Kargl
2cf0ff9806 re PR fortran/69514 (ICE with nested array constructor)
2016-09-08  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/69514
	* array.c (gfc_match_array_constructor):  If type-spec is present,
	walk the array constructor performing possible conversions for 
	numeric types.

2016-09-08  Steven G. Kargl  <kargl@gcc.gnu.org>
	    Louis Krupp      <lkrupp@gcc.gnu.org>

	PR fortran/69514
	* gfortran.dg/pr69514_1.f90: New test.
	* gfortran.dg/pr69514_2.f90: New test.

Co-Authored-By: Louis Krupp <lkrupp@gcc.gnu.org>

From-SVN: r240039
2016-09-08 22:33:10 +00:00
Jakub Jelinek
20b6cf0194 re PR fortran/77500 (ICE in gfc_trans_omp_atomic, at fortran/trans-openmp.c:2822)
PR fortran/77500
	* trans-openmp.c (gfc_trans_omp_atomic): For atomic write or
	swap, don't try to look through GFC_ISYM_CONVERSION.  In other cases,
	check that value.function.isym is non-NULL before dereferencing it.

	* gfortran.dg/gomp/pr77500.f90: New test.

From-SVN: r240038
2016-09-08 14:19:21 +02:00
Jakub Jelinek
8ebc1e0f8e re PR fortran/77516 (ICE in is_gimple_min_invariant, at gimple-expr.c:706)
PR fortran/77516
	* omp-low.c (lower_rec_simd_input_clauses): Use max_vf for non-positive
	OMP_CLAUSE_SAFELEN_EXPR.

	* gfortran.dg/gomp/pr77516.f90: New test.

From-SVN: r240037
2016-09-08 14:18:16 +02:00
GCC Administrator
e124cd64ae Daily bump.
From-SVN: r240036
2016-09-08 00:16:15 +00:00
Joseph Myers
d758aeb5ff Correct libgcc complex multiply excess precision handling (PR libgcc/77519).
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
2016-09-08 00:02:56 +01:00
Jakub Jelinek
34718542cb PR middle-end/77475: Fix AArch64 testcases.
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
2016-09-07 22:18:17 +02:00
David Malcolm
e5106e27fe Move class substring_loc from c-family into gcc
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
2016-09-07 16:56:23 +00:00
Eric Gallager
7100c1f253 i386.c: Add 'U' suffix to processor feature bits to avoid -Wnarrowing warning.
* 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
2016-09-07 17:05:56 +02:00
Wilco Dijkstra
ff0f3f1cb5 Improve aarch64_legitimize_address - avoid splitting the offset if it is supported.
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
2016-09-07 14:56:59 +00:00
Richard Biener
ca235a8500 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
2016-09-07 08:22:01 +00:00
Kaz Kojima
9bed553532 [SH] Move definitions for atomic models to sh.h from sh-protos.h.
From-SVN: r240023
2016-09-07 04:44:40 +00:00
GCC Administrator
cdc65c28a6 Daily bump.
From-SVN: r240022
2016-09-07 00:16:14 +00:00
Jerry DeLisle
0076b5dc3b Fix dates on changelog
From-SVN: r240019
2016-09-06 23:22:36 +00:00
Jerry DeLisle
5dcf68f510 re PR libfortran/77393 (Revision r237735 changed the behavior of F0.0)
2016-09-06  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/77393
	* io/write_float.def (build_float_string): Recognize when the
	result will not fit in the user provided, star fill, and exit
	early.

	* gfortran.dg/fmt_f0_2.f90: Update test.
	* gfortran.dg/fmt_f0_3.f90: New test.

From-SVN: r240018
2016-09-06 23:22:26 +00:00
Dominique d'Humieres
6ac7322b3e re PR debug/77389 (FAIL: g++.dg/debug/dwarf2/template-params-12f.C -std=gnu++11 scan-assembler-times DIE \\\\([^\\n]*\\\\) DW_TAG_template_value_param ...)
2016-09-07  Dominique d'Humieres  <dominiq@lps.ens.fr>

	PR debug/77389
	* g++.dg/debug/dwarf2/template-params-12g.C: Pass -gno-strict-dwarf
	in dg-options.

	PR debug/57519
	* g++.dg/debug/dwarf2/imported-decl-2.C: Likewise.

From-SVN: r240015
2016-09-07 00:18:54 +02:00
Jakub Jelinek
8eb9e049af re PR target/69255 (ICE on x86_64-linux-gnu in "emit_move_insn")
PR target/69255
	* config/i386/i386.c (ix86_expand_builtin): For builtin with
	unsupported or unknown ISA, use expand_call.

	* gcc.target/i386/pr69255-1.c: New test.
	* gcc.target/i386/pr69255-2.c: New test.
	* gcc.target/i386/pr69255-3.c: New test.

From-SVN: r240014
2016-09-06 22:30:57 +02:00
Martin Sebor
a42e7952b0 PR c/77336 - -Wsuggest-attribute=format warning overly simplistic
gcc/c-family/ChangeLog:

	PR c/77336
	* c-format.c (check_function_format): Avoid issuing warnings for
	functions unless they call format functions with non-constant
	format strings.

gcc/testsuite/ChangeLog:

	PR c/77336
	* gcc.dg/format/miss-7.c: New test.

From-SVN: r240013
2016-09-06 13:23:25 -06:00
Uros Bizjak
e6cb85d435 c_by_val_1.f: Correct the call to c_to_c and c_to_c8.
* gfortran.dg/c_by_val_1.f: Correct the call to c_to_c and c_to_c8.

From-SVN: r240009
2016-09-06 17:13:06 +02:00
Martin Liska
7fe76f6ae8 Detect whether target can use -fprofile-update=atomic
PR gcov-profile/77378
	PR gcov-profile/77466
	* libgcov-profiler.c: Use __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{4,8} to
	conditionaly enable/disable *_atomic functions.
	PR gcov-profile/77378
	PR gcov-profile/77466
	* tree-profile.c (tree_profiling): Detect whether target can use
	-fprofile-update=atomic.
	PR gcov-profile/77378
	PR gcov-profile/77466
	* gcc.dg/profile-update-warning.c: New test.

From-SVN: r240008
2016-09-06 14:13:21 +00:00
Richard Biener
209b636edd re PR tree-optimization/77479 (Compile time hog w/ -O2 (-Os))
2016-09-06  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/77479
	* tree-vrp.c (update_value_range): Extend overflow handling to
	VARYING.

	* gcc.dg/torture/pr77479.c: New testcase.

From-SVN: r240007
2016-09-06 12:51:01 +00:00
Richard Biener
b772a56562 re PR tree-optimization/77450 (ICE: in verify_ssa, at tree-ssa.c:1016 on very simple code with vectors)
2016-09-06  Richard Biener  <rguenther@suse.de>

	PR c/77450
	c-family/
	* c-common.c (c_common_mark_addressable_vec): Handle
	COMPOUND_LITERAL_EXPR.

	* c-c++-common/vector-subscript-7.c: Adjust.
	* c-c++-common/vector-subscript-8.c: New testcase.

From-SVN: r240006
2016-09-06 12:49:53 +00:00