Commit Graph

154300 Commits

Author SHA1 Message Date
GCC Administrator 6a382041dd Daily bump.
From-SVN: r249233
2017-06-16 00:16:24 +00:00
Nicolas Boulenguez cb55f77df1 re PR ada/81105 (system-freebsd-x86.ads renamed but referenced by gcc/ada/gcc-interface/Makefile.in)
PR ada/81105
	* gcc-interface/Makefile.in (x86 kfreebsd): Adjust system.ads setting.
	(i[3456]86-pc-gnu): Likewise.
	(x86_64 kfreebsd): Likewise.

From-SVN: r249228
2017-06-15 22:21:56 +00:00
Janus Weil d0e7a9fdfc re PR fortran/80983 ([F03] memory leak when calling procedure-pointer component with allocatable result)
2017-06-15  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/80983
	* trans-expr.c (gfc_conv_procedure_call): Deallocate the result of
	scalar allocatable procedure-pointer components.


2017-06-15  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/80983
	* gfortran.dg/proc_ptr_comp_51.f90: New test.

From-SVN: r249227
2017-06-15 23:17:48 +02:00
François Dumont 0356a0749b 2017-06-15 François Dumont <fdumont@gcc.gnu.org>
* src/c++98/tree.cc  [!_GLIBCXX_INLINE_VERSION]
	(_Rb_tree_rotate_left, _Rb_tree_rotate_right): Delete.

From-SVN: r249226
2017-06-15 20:32:09 +00:00
Jan Hubicka 3a849280c7 Revert accidental checkin.
From-SVN: r249225
2017-06-15 18:45:47 +00:00
Jan Hubicka d1eed638ed re PR lto/69866 (lto1: internal compiler error: in add_symbol_to_partition_1, at lto/lto-partition.c:158)
PR lto/69866
	* lto-symtab.c (lto_symtab_merge_symbols): Drop useless definitions
	that resolved externally.

	* gcc.dg/lto/pr69866_0.c: New test.
	* gcc.dg/lto/pr69866_1.c: Likewise.

From-SVN: r249224
2017-06-15 18:42:10 +00:00
Ramana Radhakrishnan 55dabf65f0 Update comment about is_leaf
crtl->is_leaf has a comment above it referring to "Local Register
Allocation". However this is set by IRA and not LRA since the meaning
of Local Register Allocator in GCC has changed quite drastically since
1999 when this comment was introduced above the variable
current_function_is_leaf. From memory gcc in those days had "local"
and "global" register allocation - however all of this has changed
quite a bit drastically since.

This patch merely updates the comment as I did some head scratching
this morning about how this could be set before Local Register
Allocator especially given the comment in ira.c as below.


 /* Determine if the current function is a leaf before running IRA
     since this can impact optimizations done by the prologue and
     epilogue thus changing register elimination offsets.  */
  crtl->is_leaf = leaf_function_p ();

From-SVN: r249223
2017-06-15 14:17:04 +00:00
Jozef Lawrynowicz 61f5d85294 Fix problems with the MSP430 port's handling of persistent data.
PR target/78818
gcc	* config/msp430/msp430.c (msp430_data_attr): Check that it's possible
	for a variable to have a section before checking if the section has a
	name.
	Set section to.persistent if persistent	attribute is set.
	Warn if .persistent attribute is used on an automatic variable.

tests	* gcc.target/msp430/pr78818-real.c: New template for tests.
	* gcc.target/msp430/pr78818-auto.c: New test.
	* gcc.target/msp430/pr78818-data-region.c: New test.
	* gcc.target/msp430/pr78818-data-sec.c: New test.
	* gcc.target/msp430/pr78818-auto-warn.c: New test.

From-SVN: r249222
2017-06-15 13:38:52 +00:00
Eric Botcazou 0948d23fff re PR rtl-optimization/80474 (ipa-cp wrongly adding LO(symbol) twice)
PR rtl-optimization/80474
	* reorg.c (update_block): Do not ignore instructions in a delay slot.

From-SVN: r249219
2017-06-15 13:24:53 +00:00
Rainer Orth d12366802a Use pthread effective-target in testsuite
* testsuite: Add dg-require-effective-target pthread to -pthread
	tests.
	Remove explicit target lists from dg-do and dg-options.

	* testsuite/30_threads/async/forced_unwind.cc: Remove explit
	target list from dg-options.
	* testsuite/30_threads/packaged_task/forced_unwind.cc: Likewise.

	* 30_threads/shared_mutex/cons/1.cc: Likewise.
	Pass -pthread for all targets.
	* 30_threads/shared_mutex/try_lock/1.cc: Likewise.
	* 30_threads/shared_mutex/try_lock/2.cc: Likewise.
	* 30_threads/shared_mutex/unlock/1.cc: Likewise.

	* testsuite/30_threads/this_thread/57060.cc: Require c++11 via
	dg-require-effective-target.

From-SVN: r249217
2017-06-15 12:18:05 +00:00
Thomas Preud'homme 6820664ac6 [ARM] Make gcc.target/arm/its.c more robust
2017-06-15  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/testsuite/
    * gcc.target/arm/its.c: Check that no IT blocks has more than 2
    instructions in it rather than the number of IT blocks being 2.
    Transfer scan directive arm_thumb2 restriction to the whole
    testcase and restrict further to Thumb-only targets.

From-SVN: r249215
2017-06-15 09:31:04 +00:00
Tamar Christina 41c540fc0f sdiv_costs_1.c: Use dg-add-options.
2017-06-15  Tamar Christina  <tamar.christina@arm.com>

	* gcc.target/arm/sdiv_costs_1.c:
	Use dg-add-options.

From-SVN: r249214
2017-06-15 09:23:28 +00:00
Segher Boessenkool dfc107627c rs6000: Don't use REGNO in the add<mode>3 expander
The argument could be a subreg of reg instead, which means we have to
use reg_or_subregno instead of REGNO.


	* config/rs6000/rs6000.md (add<mode>3): Use reg_or_subregno instead
	of REGNO.

From-SVN: r249213
2017-06-15 08:49:17 +02:00
GCC Administrator 0f25124435 Daily bump.
From-SVN: r249212
2017-06-15 00:16:20 +00:00
Ian Lance Taylor b901cf9dd9 compiler: avoid crash on erroneous type
If there is an error constructing the backend type, the GCC backend
    will report that the size is 1.  That will then cause construction of
    the ptrmask to crash.  Avoid that case by just generating an empty
    ptrmask.
    
    Noticed while compiling a broken package.  The policy I've been
    following is to not commit a test case for a compiler crash on invalid
    code, so no test case.
    
    Reviewed-on: https://go-review.googlesource.com/45775

From-SVN: r249208
2017-06-14 23:42:53 +00:00
Maciej W. Rozycki 3466430f38 MIPS16/GCC: Emit bounds checking as RTL in `casesi'
gcc/
	* config/mips/mips.md (MIPS16_T_REGNUM): Remove constant.
	(casesi): Emit bounds checking as RTL.
	(casesi_internal_mips16_<mode>): Remove bounds checking.

	gcc/testsuite/
	* gcc.target/mips/data-sym-jump.c: Adjust for whitespace changes.
	* gcc.target/mips/pr51513-1.c: New test.
	* gcc.target/mips/pr51513-2.c: New test.

From-SVN: r249207
2017-06-14 23:26:40 +00:00
Jonathan Wakely cdd17d6e99 Fix libstdc++ testsuite failures with -D_GLIBCXX_USE_CXX11_ABI=0
* doc/xml/manual/test.xml: Correct instructions on running tests.
	* testsuite/21_strings/basic_string/cons/char/deduction.cc: Adjust to
	pass when -D_GLIBCXX_USE_CXX11_ABI=0 added to RUNTESTFLAGS.
	* testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
	Likewise.
	* testsuite/27_io/basic_ios/copyfmt/char/1.cc: Likewise.
	* testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
	* testsuite/27_io/basic_istream/extractors_arithmetic/char/
	exceptions_failbit.cc: Likewise.
	* testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
	exceptions_failbit.cc: Likewise.
	* testsuite/27_io/basic_istream/extractors_other/char/
	exceptions_null.cc: Likewise.
	* testsuite/27_io/basic_istream/extractors_other/wchar_t/
	exceptions_null.cc: Likewise.
	* testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
	* testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
	* testsuite/27_io/basic_ostream/inserters_other/char/
	exceptions_null.cc: Likewise.
	* testsuite/27_io/basic_ostream/inserters_other/wchar_t/
	exceptions_null.cc: Likewise.
	* testsuite/27_io/ios_base/storage/2.cc: Likewise.

From-SVN: r249206
2017-06-14 20:38:30 +01:00
Ian Lance Taylor be75f645e6 Makefile.def: Add check-gotools to go check targets.
* Makefile.def: Add check-gotools to go check targets.
	* Makefile.in: Rebuild.

From-SVN: r249204
2017-06-14 19:36:42 +00:00
Ian Lance Taylor eec2130ea2 Makefile.am (libgosrcdir): Define.
* Makefile.am (libgosrcdir): Define.
	(check-head, check-gccgo, check-go-tool): New targets.
	(CHECK_ENV): Define.
	(check): New target.
	(mostlyclean-local): New target.
	* Makefile.in: Rebuild.

From-SVN: r249203
2017-06-14 19:26:21 +00:00
Max Filippov 1a711a0b5c gcc: xtensa: allow XCHAL_* macros to be non-constant
XCHAL_* macros from the xtensa-config.h are used in a number of places
that require them to be preprocessor constants. Rewrite these places so
that non-constant XCHAL_* definitions could be used there.

2017-06-14  Max Filippov  <jcmvbkbc@gmail.com>
gcc/
	* config/xtensa/xtensa.c (xtensa_option_override): Append
	MASK_CONST16 to target_flags in the absence of TARGET_L32R.
	(hwloop_optimize, hwloop_fail, hwloop_pattern_reg,
	 xtensa_doloop_hooks): Define unconditionally.
	(xtensa_reorg_loops): Only call reorg_loops in the presence of
	TARGET_LOOPS.
	* config/xtensa/xtensa.h (TARGET_L32R): New definition.
	(TARGET_DEFAULT): Remove XCHAL_HAVE_L32R condition and account
	for it in xtensa_option_override.
	(HARD_FRAME_POINTER_IS_FRAME_POINTER,
	 HARD_FRAME_POINTER_IS_ARG_POINTER): New definitions.

From-SVN: r249202
2017-06-14 17:19:44 +00:00
Boris Kolpackov e72c4afd99 Recognize '-' as special -MF argument (write to stdout)
Sometimes it is useful to generate pre-processed output to a file and
the dependency information to stdout for further analysis/processing.
For example:

g++ -E -MD -fdirectives-only -o test.ii test.cxx

This will generate the dependency information to test.d (as per the
documentation). While changing this behavior is probably unwise, one
traditional (e.g., supported by -o) way to handle this is to recognize
the special '-' file name as an instruction to write to stdout:

g++ -E -MD -fdirectives-only -o test.ii -MF - test.cxx

Currently this will create a file named '-'. The included patch
changes this behavior to write to stdout.

Note also that Clang has supported this from at least version 3.5.

gcc:
2017-06-14  Boris Kolpackov  <boris@codesynthesis.com>

	* doc/cppopts.texi: Document '-' special value to -MF.

gcc/c-family:
2017-06-14  Boris Kolpackov  <boris@codesynthesis.com>

	* c-opts.c (c_common_finish): Handle '-' special value to -MF.

From-SVN: r249201
2017-06-14 17:05:57 +01:00
Wilco Dijkstra 4524009c09 Improve Cortex-A53 FP scheduler
The Cortex-A53 scheduler model of FMAC bypass is not quite right
for FMAC to FMAC forwarding.  Experiments also show the latencies of
FP operations are too high as well.  Rather than adding more bypasses,
adjust the latencies of FP instructions to get a better schedule on
average.  As a result SPECFP2006 is 1.1% faster.

    gcc/
	* config/arm/cortex-a53.md (cortex_a53_fpalu) Adjust latency.
	(cortex_a53_fconst): Likewise.
	(cortex_a53_fpmul): Likewise.
	(cortex_a53_f_load_64): Likewise.
	(cortex_a53_f_load_many): Likewise.
	(cortex_a53_advsimd_alu): Likewise.
	(cortex_a53_advsimd_alu_q): Likewise.
	(cortex_a53_advsimd_mul): Likewise.
	(cortex_a53_advsimd_mul_q): Likewise.
	(fpmac bypass): Add new bypass for fpmac-fpmac case.
	Add missing fmul, r2f_cvt and fconst cases.

From-SVN: r249200
2017-06-14 14:51:46 +00:00
Ian Lance Taylor ea9a08f5df cmd/cgo: make _cgo_flags consistent across runs
The go tool will pass -I objdir as one of the flags, where objdir is
    the temporary build directory. Remove that from _cgo_flags: we don't
    need it, and it will be different each time.
    
    Sort the flags to avoid the unpredictable map iteration order.
    
    This matters for gccgo because for a package that uses cgo, the go
    tool when building for gccgo will store the _cgo_flags file in the
    archive. That means that we want to generate identical _cgo_flags for
    every run.
    
    The test for this is the cmd/go testsuite, to follow in a future CL.
    
    Reviewed-on: https://go-review.googlesource.com/45692

From-SVN: r249199
2017-06-14 13:59:02 +00:00
Ian Lance Taylor 1279f21fc5 cmd/go: gccgo: consistent results, fix vendoring
Pass the -fdebug-prefix-map and -gno-record-gcc-switches compiler
    options to gccgo to generate consistent results.
    
    Fix the vendoring code to look for /vendor/, not just /vendor, to
    avoid being confused by something like vendor/vendor.org.
    
    Tested by the cmd/go tests in a followup CL.
    
    Reviewed-on: https://go-review.googlesource.com/45695

From-SVN: r249198
2017-06-14 13:56:04 +00:00
Ian Lance Taylor 8ba20d7eb8 cmd/go: skip tests that do not work with gccgo
These tests fail for various reasons, most commonly because gccgo
    doesn't really have GOROOT, so things like `go build errors` fail.
    
    Reviewed-on: https://go-review.googlesource.com/45696

From-SVN: r249197
2017-06-14 13:53:43 +00:00
Ian Lance Taylor b205ec303f go/build: use GCCGOTOOLDIR to find gccgo tools
Add the environment variable GCCGOTOOLDIR to permit overriding the default
    directory where tools like cgo are found when building with gccgo.
    
    This will be used by the cmd/go tests in a future CL.
    
    Reviewed-on: https://go-review.googlesource.com/45694

From-SVN: r249196
2017-06-14 13:50:53 +00:00
Ian Lance Taylor 0818233f80 internal/testenv: support testing gccgo
If GO_TESTING_GOTOOLS is set in the environment, permit tests using
    gccgo to run the go tool. Like GO_BUILDER_NAME, this should not be set
    normally. But it is needed when testing the go tool itself, and will
    be set by the gotools Makefile in a future CL.
    
    Reviewed-on: https://go-review.googlesource.com/45693

From-SVN: r249195
2017-06-14 13:47:28 +00:00
Ian Lance Taylor 6916d6104f compiler: remove "DIR/../" when joining relative import path
Otherwise if DIR does not exist, the path does not work. This matches
    what the gc cmd/compile tool does, because it calls path.Join.
    
    The test for this is the cmd/go tests, to be added in a follow-up CL.
    
    Reviewed-on: https://go-review.googlesource.com/45691

From-SVN: r249194
2017-06-14 13:37:48 +00:00
Richard Biener 26fda5f59a re PR tree-optimization/81083 (ICE: Unable to coalesce ssa_names 4 and 13 which are marked as MUST COALESCE)
2017-06-14  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/81083
	* gcc.dg/torture/pr81083.c: Add prototypes.

From-SVN: r249193
2017-06-14 11:43:31 +00:00
Richard Biener 909263f855 re PR middle-end/81088 (UBSAN: false positive as a result of reassosiation)
2017-06-14  Richard Biener  <rguenther@suse.de>

	PR middle-end/81088
	* fold-const.c (split_tree): Drop TREE_OVERFLOW flag from
	literal constants.
	(fold_binary_loc): When associating do not treat pre-existing
	TREE_OVERFLOW on literal constants as a reason to allow
	TREE_OVERFLOW on associated literal constants.

	* c-c++-common/ubsan/pr81088.c: New testcase.

From-SVN: r249192
2017-06-14 11:40:20 +00:00
Jakub Jelinek c74985e3ee cp-gimplify.c (cp_genericize_r): Turn most of the function into a switch (TREE_CODE (stmt)) statement from long...
* cp-gimplify.c (cp_genericize_r): Turn most of the function
	into a switch (TREE_CODE (stmt)) statement from long else if
	sequence.

From-SVN: r249191
2017-06-14 13:24:48 +02:00
Eric Botcazou 938a807a68 sparc.h (MASK_ISA): Add MASK_LEON and MASK_LEON3.
* config/sparc/sparc.h (MASK_ISA): Add MASK_LEON and MASK_LEON3.
	(MASK_FEATURES): New macro.
	* config/sparc/sparc.c (sparc_option_override): Remove the special
	handling of -mfpu and generalize it to all MASK_FEATURES switches.

From-SVN: r249189
2017-06-14 11:22:19 +00:00
Eric Botcazou 9348614880 simplify-rtx.c (simplify_binary_operation_1): Do not simplify a division of 0 if non-call exceptions are enabled.
* simplify-rtx.c (simplify_binary_operation_1) <UDIV>: Do not simplify
	a division of 0 if non-call exceptions are enabled.

From-SVN: r249188
2017-06-14 10:40:34 +00:00
Andrew Pinski 85c1b6d7c8 re PR target/71663 (aarch64 Vector initialization can be improved slightly)
PR target/71663
gcc
	* config/aarch64/aarch64.c (aarch64_expand_vector_init):
	Improve vector initialization code gen for only variable case.

gcc/testsuite
	* gcc.target/aarch64/vect-init-1.c: Newtestcase.
	* gcc.target/aarch64/vect-init-2.c: Likewise.
	* gcc.target/aarch64/vect-init-3.c: Likewise.
	* gcc.target/aarch64/vect-init-4.c: Likewise.
	* gcc.target/aarch64/vect-init-5.c: Likewise.


Co-Authored-By: Naveen H.S <Naveen.Hurugalawadi@cavium.com>

From-SVN: r249187
2017-06-14 10:20:07 +00:00
Paolo Carlini bee9e49f6c re PR c++/58541 ([c++11] Bogus "error: redeclaration ... differs in ‘constexpr’")
2017-06-14  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/58541
	* g++.dg/cpp0x/constexpr-58541.C: New.

From-SVN: r249186
2017-06-14 09:18:57 +00:00
Eric Botcazou 280cace458 * config/sparc/driver-sparc.c (cpu_names): Add SPARC-T5 entry.
From-SVN: r249183
2017-06-14 07:44:59 +00:00
Richard Biener 24d020bd46 re PR tree-optimization/81083 (ICE: Unable to coalesce ssa_names 4 and 13 which are marked as MUST COALESCE)
2017-06-14  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/81083
	* tree-ssa-sccvn.c (vn_reference_lookup_3): Do not use abnormals
	as values.

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

From-SVN: r249182
2017-06-14 07:22:32 +00:00
Jakub Jelinek 6aa397703c vrp101.c: Fix scan-tree-dump regex.
* gcc.dg/tree-ssa/vrp101.c: Fix scan-tree-dump regex.
	* gcc.dg/tree-ssa/builtin-sprintf-2.c: Likewise.  Adjust comment.

From-SVN: r249181
2017-06-14 08:29:09 +02:00
Jakub Jelinek 11c16c2a22 vrp101.c: Fix scan-tree-dump regex.
* gcc.dg/tree-ssa/vrp101.c: Fix scan-tree-dump regex.
	* gcc.dg/tree-ssa/builtin-sprintf-2.c: Likewise.  Adjust comment.

From-SVN: r249180
2017-06-14 08:25:06 +02:00
GCC Administrator f3bc6d3ad3 Daily bump.
From-SVN: r249179
2017-06-14 00:16:20 +00:00
Jakub Jelinek f31a833983 re PR sanitizer/80973 (ICE with lambda and -fsanitize=undefined)
PR c++/80973
	* cp-gimplify.c (cp_genericize_r): Don't instrument MEM_REF second
	argument even if it has REFERENCE_TYPE.

	* g++.dg/ubsan/pr80973.C: New test.

From-SVN: r249174
2017-06-13 22:05:20 +02:00
Jakub Jelinek c60dc05326 re PR c++/80984 (ICE with label/variable ambiguity)
PR c++/80984
	* cp-gimplify.c (cp_genericize): Only look for VAR_DECLs in
	BLOCK_VARS (outer) chain.
	(cxx_omp_const_qual_no_mutable): Likewise.

	* g++.dg/opt/nrv18.C: New test.

From-SVN: r249173
2017-06-13 22:02:38 +02:00
Ian Lance Taylor e2fea9319e re PR go/80964 (cross-gotools are not executable on host system)
PR go/80964
	* configure.ac: Set NATIVE if host_alias = target_alias.
	* configure: Rebuild.

From-SVN: r249172
2017-06-13 19:56:45 +00:00
Marek Polacek 8a51658814 re PR objc/80949 (ICE in do_warn_duplicated_branches_r)
PR objc/80949
	* c-warn.c (do_warn_duplicated_branches): Return if any of the
	branches is null.

From-SVN: r249171
2017-06-13 17:30:58 +00:00
Segher Boessenkool 6ae036b330 rs6000: Comment fixes + some leftovers
* config/rs6000/rs6000.c: Update all comments that mentioned SPE.
	(rs6000_expand_builtin): Remove RS6000_BTC_EVSEL.
	* config/rs6000/rs6000.h (RS6000_BTC_EVSEL): Delete.
	* config/rs6000/vxworks.h (VXCPU_FOR_8548): Delete.  Adjust former use.
	* config/rs6000/vxworksae.h (VXCPU_FOR_8548): Delete.
	* config/rs6000/vxworksmils.h (VXCPU_FOR_8548): Delete.

From-SVN: r249170
2017-06-13 19:18:51 +02:00
Segher Boessenkool d20ae4d7da rs6000: Remove VECTOR_SPE
* config/rs6000/rs6000-opts.h (enum rs6000_vector): Delete VECTOR_SPE.
	* config/rs6000/rs6000.c (rs6000_debug_vector_unit): Delete VECTOR_SPE.

From-SVN: r249169
2017-06-13 19:17:54 +02:00
Segher Boessenkool a1450d5ff2 rs6000: Remove FIXED_SCRATCH
* config/rs6000/rs6000.h (FIXED_SCRATCH): Delete.

From-SVN: r249168
2017-06-13 19:16:57 +02:00
Segher Boessenkool 2f5f2b57e9 rs6000: Updates to t-rtems
* config/rs6000/t-rtems: Don't handle SPE.

From-SVN: r249167
2017-06-13 19:15:42 +02:00
Segher Boessenkool 22f8f4a943 rs6000: Updates to t-linux
* config/rs6000/t-linux: Don't handle SPE.

From-SVN: r249166
2017-06-13 19:14:25 +02:00
Segher Boessenkool 37e3456afe rs6000: Remove eabispe.h
* config/rs6000/eabispe.h: Delete file.

From-SVN: r249165
2017-06-13 19:13:24 +02:00