platform/upstream/gcc.git
6 years agore PR c++/78816 ([c++14] Static auto variable usage in generic/variadic lambda fails...
Paolo Carlini [Wed, 4 Oct 2017 08:34:40 +0000 (08:34 +0000)]
re PR c++/78816 ([c++14] Static auto variable usage in generic/variadic lambda fails to compile)

2017-10-04  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/78816
* g++.dg/cpp1y/lambda-generic-variadic6.C: New.

From-SVN: r253397

6 years agore PR tree-optimization/82381 (internal compiler error: qsort checking failed)
Jakub Jelinek [Wed, 4 Oct 2017 07:52:26 +0000 (09:52 +0200)]
re PR tree-optimization/82381 (internal compiler error: qsort checking failed)

PR tree-optimization/82381
* tree-ssa-reassoc.c (sort_by_operand_rank): Check for different
oeN->rank first.  Return 1 or -1 if one op is SSA_NAME and the other
is not.

From-SVN: r253396

6 years agore PR tree-optimization/82374 (#pragma GCC optimize is not applied to openmp-generate...
Jakub Jelinek [Wed, 4 Oct 2017 07:50:38 +0000 (09:50 +0200)]
re PR tree-optimization/82374 (#pragma GCC optimize is not applied to openmp-generated functions)

PR tree-optimization/82374
* omp-low.c (create_omp_child_function): Copy DECL_ATTRIBUTES,
DECL_FUNCTION_SPECIFIC_OPTIMIZATION,
DECL_FUNCTION_SPECIFIC_TARGET and DECL_FUNCTION_VERSIONED from
current_function_decl to the new decl.

* gcc.dg/gomp/pr82374.c: New test.

From-SVN: r253395

6 years agoid-17.f: For ilp32 allow graphite codegen errors and scan for one.
Richard Biener [Wed, 4 Oct 2017 07:43:54 +0000 (07:43 +0000)]
id-17.f: For ilp32 allow graphite codegen errors and scan for one.

2017-10-04  Richard Biener  <rguenther@suse.de>

* gfortran.dg/graphite/id-17.f: For ilp32 allow graphite codegen
errors and scan for one.
* gfortran.dg/graphite/id-19.f: Likewise.
* gfortran.dg/graphite/pr29832.f90: Likewise.
* gfortran.dg/graphite/pr42326-1.f90: Likewise.
* gfortran.dg/graphite/pr42326.f90: Likewise.
* gfortran.dg/graphite/pr68550-2.f90: Likewise.
* gfortran.dg/graphite/run-id-2.f90: Likewise.
* gfortran.dg/graphite/run-id-3.f90: Likewise.
* gfortran.dg/graphite/pr42393-1.f90: Dump graphite.

From-SVN: r253394

6 years agoDaily bump.
GCC Administrator [Wed, 4 Oct 2017 00:16:21 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r253393

6 years agors6000-builtin.def (BU_FLOAT128_2_HW): Define new helper macro for IEEE float128...
Michael Meissner [Tue, 3 Oct 2017 23:08:16 +0000 (23:08 +0000)]
rs6000-builtin.def (BU_FLOAT128_2_HW): Define new helper macro for IEEE float128 hardware built-in functions.

[gcc]
2017-10-03  Michael Meissner  <meissner@linux.vnet.ibm.com>

* config/rs6000/rs6000-builtin.def (BU_FLOAT128_2_HW): Define new
helper macro for IEEE float128 hardware built-in functions.
(SQRTF128_ODD): Add built-in functions with the round-to-odd
semantics.
(TRUNCF128_ODD): Likewise.
(ADDF128_ODD): Likewise.
(SUBF128_ODD): Likewise.
(MULF128_ODD): Likewise.
(DIVF128_ODD): Likewise.
(FMAF128_ODD): Likewise.
* config/rs6000/rs6000.md (UNSPEC_ROUND_TO_ODD): Rename to
UNSPEC_TRUNC_ROUND_TO_ODD.
(UNSPEC_TRUNC_ROUND_TO_ODD): Likewise.
(UNSPEC_ADD_ROUND_TO_ODD): New unspec codes for the IEEE 128-bit
floating point round to odd instructions.
(UNSPEC_SUB_ROUND_TO_ODD): Likewise.
(UNSPEC_MUL_ROUND_TO_ODD): Likewise.
(UNSPEC_DIV_ROUND_TO_ODD): Likewise.
(UNSPEC_FMA_ROUND_TO_ODD): Likewise.
(UNSPEC_SQRT_ROUND_TO_ODD): Likewise.
(trunc<mode>sf2_hw): Change the truncate with round to odd
expansion to use UNSPEC_TRUNC_ROUND_TO_ODD.
(add<mode>3_odd): Add insns for IEEE 128-bit floating point round
to odd hardware instructions.
(sub<mode>3_odd): Likewise.
(mul<mode>3_odd): Likewise.
(div<mode>3_odd): Likewise.
(sqrt<mode>2_odd): Likewise.
(fma<mode>4_odd): Likewise.
(fms<mode>4_odd): Likewise.
(nfma<mode>4_odd): Likewise.
(nfms<mode>4_odd): Likewise.
(trunc<mode>df2_odd): Change the truncate with round to odd
expansion to use UNSPEC_TRUNC_ROUND_TO_ODD.  Add a generator
function.
* doc/extend.texi (PowerPC built-in functions): Update documentation
for existing IEEE float128-bit built-in functions.  Add built-in
functions that generate the IEEE 128-bit floating point round to
odd instructions.

[gcc/testsuite]
2017-10-03  Michael Meissner  <meissner@linux.vnet.ibm.com>

* gcc.target/powerpc/float128-odd.c: New test.

From-SVN: r253389

6 years agore PR c++/70343 (internal compiler error: in tsubst_copy, wrong code with lambda...
Paolo Carlini [Tue, 3 Oct 2017 21:15:56 +0000 (21:15 +0000)]
re PR c++/70343 (internal compiler error: in tsubst_copy, wrong code with lambda in template fn)

2017-10-03  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/70343
* g++.dg/cpp0x/lambda/lambda-70343.C: New.

From-SVN: r253388

6 years agoImport from libffi master repository.
Tony Reix [Tue, 3 Oct 2017 18:26:31 +0000 (18:26 +0000)]
Import from libffi master repository.

2017-08-31  Tony Reix  <tony.reix@atos.net>

        * src/powerpc/aix.S (ffi_call_AIX): Add debugging pseudo-op and
        labels for EH.
        (ffi_call_go_AIX): New function.
        (_GLOBAL__F_libffi_src_powerpc_aix): New EH frame.
        * src/powerpc/aix_closure.S (ffi_closure_ASM): Add debugging
        pseudo-op and labels for EH.
        (ffi_go_closure_ASM): New function.
        (_GLOBAL__F_libffi_src_powerpc_aix_closure): New EH frame.
        * src/powrpc/ffi_darwin.c (ffi_call_go): New function.
        (ffi_prep_go_closure): New function.
        (ffi_closure_helper_common): Rename from ffi_closure_helper_DARWIN.
        (ffi_closure_helper_DARWIN): Call ffi_closure_helper_common.
        (ffi_go_closure_helper_DARWIN): Call ffi_closure_helper_common.
        * src/powerpc/ffitarget.h (FFI_GO_CLOSURES): Define.

From-SVN: r253386

6 years agore PR target/82358 (i386/stack-check-11.c fail)
Jeff Law [Tue, 3 Oct 2017 17:09:54 +0000 (11:09 -0600)]
re PR target/82358 (i386/stack-check-11.c fail)

PR target/82358
* gcc.target/i386/stack-check-11.c: Use -mtune=generic.

From-SVN: r253385

6 years agosimplify-rtx: Remove non-simplifying simplification (PR77729)
Segher Boessenkool [Tue, 3 Oct 2017 16:02:38 +0000 (18:02 +0200)]
simplify-rtx: Remove non-simplifying simplification (PR77729)

If we have (X&C1)|C2 simplify_binary_operation_1 makes C1 as small as
possible.  This makes worse code in common cases like when the AND with
C1 is from a zero-extension.  This patch fixes it by removing this
transformation (twice).

PR rtl-optimization/77729
* simplify-rtx.c (simplify_binary_operation_1): Delete the (X&C1)|C2
to (X&(C1&~C2))|C2 transformations.

From-SVN: r253384

6 years ago[BRIGFE] Fix (more) crash with calls with more than 4 args.
Henry Linjamäki [Tue, 3 Oct 2017 15:16:34 +0000 (15:16 +0000)]
[BRIGFE] Fix (more) crash with calls with more than 4 args.

It missed a reference which is required because vector expansion
can move the object to another location.

From-SVN: r253382

6 years agoio.c (match_wait_element): Correctly match END and EOR tags.
Thomas Koenig [Tue, 3 Oct 2017 13:49:39 +0000 (13:49 +0000)]
io.c (match_wait_element): Correctly match END and EOR tags.

2017-10-03  Thomas Koenig  <tkoenig@gcc.gnu.org>

* io.c (match_wait_element): Correctly match END and EOR tags.
* dump-parse-tree.c (show_code_node): Handle EXEC_WAIT.

From-SVN: r253381

6 years ago[PR 82363] Fix thinko in SRA subaccess propagation
Martin Jambor [Tue, 3 Oct 2017 11:43:45 +0000 (13:43 +0200)]
[PR 82363] Fix thinko in SRA subaccess propagation

2017-10-03  Martin Jambor  <mjambor@suse.cz>

PR tree-optimization/82363
* tree-sra.c (propagate_subaccesses_across_link): In unrecoverable
mismatch, mark lacc written regardless of racc.

testsuite/
* gcc.dg/tree-ssa/pr82363.c: New test.

From-SVN: r253380

6 years agore PR tree-optimization/82381 (internal compiler error: qsort checking failed)
Jakub Jelinek [Tue, 3 Oct 2017 11:24:39 +0000 (13:24 +0200)]
re PR tree-optimization/82381 (internal compiler error: qsort checking failed)

PR tree-optimization/82381
* tree-ssa-reassoc.c (sort_by_operand_rank): Don't check
stmt_to_insert nor wheather SSA_NAMEs are default defs.
Return 1 or -1 if one of bba and bbb is NULL. If bb_rank is equal,
fallthrough into reassoc_stmt_dominates_stmt_p.

* gcc.c-torture/compile/pr82381.c: New test.

From-SVN: r253379

6 years agore PR target/82386 (internal compiler error: Segmentation fault on 32-bit powerpc...
Jakub Jelinek [Tue, 3 Oct 2017 09:49:37 +0000 (11:49 +0200)]
re PR target/82386 (internal compiler error: Segmentation fault on 32-bit powerpc BE targets)

PR target/82386
* combine.c (combine_instructions): Don't combine in unreachable
basic blocks.

* gcc.dg/pr82386.c: New test.

From-SVN: r253378

6 years agoztest.c: #include <errno.h>.
Ian Lance Taylor [Tue, 3 Oct 2017 02:27:33 +0000 (02:27 +0000)]
ztest.c: #include <errno.h>.

* ztest.c: #include <errno.h>.
(TEST_TIMING): Don't define, don't test.
(xclock_gettime, xclockid_t): Define if !HAVE_CLOCK_GETTIME.
(clockid_t, clock_gettime, CLOCK_REALTIME): Likewise.
(ZLIB_CLOCK_GETTIME_ARG): Define.
* configure.ac: Change clock_gettime_link to CLOCK_GETTIME_LINK.
* Makefile.am: Likewise.
* configure, Makefile.in: Rebuild.

From-SVN: r253377

6 years agoDaily bump.
GCC Administrator [Tue, 3 Oct 2017 00:16:16 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r253376

6 years agoClean up more fallout from r252976.
Martin Sebor [Mon, 2 Oct 2017 23:57:19 +0000 (23:57 +0000)]
Clean up more fallout from r252976.

libatomic/ChangeLog:
2017-10-02  Martin Sebor  <msebor@redhat.com>

PR c/81854
* acinclude.m4 (LIBAT_CHECK_IFUNC): Have ifunc resolver return
a function pointer rather than void* to avoid GCC 8 warnings.
* configure: Regenerate.
* libatomic_i.h: Declare ifunc resolvers to return function
pointers rather than void*.

From-SVN: r253372

6 years agocharconv (__unsigned_least_t): Fix number of closing >s for !_GLIBCXX_USE_INT128.
Jakub Jelinek [Mon, 2 Oct 2017 23:28:54 +0000 (01:28 +0200)]
charconv (__unsigned_least_t): Fix number of closing >s for !_GLIBCXX_USE_INT128.

* include/std/charconv (__unsigned_least_t): Fix number of closing >s for
!_GLIBCXX_USE_INT128.

From-SVN: r253371

6 years agore PR c++/70570 (Assembler error "symbol already defined" from nested lambdas and...
Paolo Carlini [Mon, 2 Oct 2017 22:21:16 +0000 (22:21 +0000)]
re PR c++/70570 (Assembler error "symbol already defined" from nested lambdas and function-static variable)

2017-10-02  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/70570
* g++.dg/cpp1y/lambda-generic-70570.C: New.

From-SVN: r253370

6 years agore PR c++/79590 (ICE (internal compiler error) in nothrow_spec_p with generic lambda...
Paolo Carlini [Mon, 2 Oct 2017 22:02:03 +0000 (22:02 +0000)]
re PR c++/79590 (ICE (internal compiler error) in nothrow_spec_p with generic lambda and `noexcept(noexcept(...))` expression)

2017-10-02  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/79590
* g++.dg/cpp1y/lambda-generic-noexcept1.C: New.

From-SVN: r253369

6 years agore PR c++/79005 (Use of a captured variable within nested generic lambdas provokes...
Paolo Carlini [Mon, 2 Oct 2017 21:44:55 +0000 (21:44 +0000)]
re PR c++/79005 (Use of a captured variable within nested generic lambdas provokes internal compiler error.)

2017-10-02  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/79005
* g++.dg/cpp1y/lambda-generic-79005.C: New.

From-SVN: r253368

6 years agore PR ada/82384 (s-taprop.adb failed to compile for x32)
Eric Botcazou [Mon, 2 Oct 2017 19:38:06 +0000 (19:38 +0000)]
re PR ada/82384 (s-taprop.adb failed to compile for x32)

PR ada/82384
* libgnarl/s-linux__x32.ads (suseconds_t): New subtype.
(time_t): Change from derived type to subtype.
(timeval): Use suseconds_t for tv_usec.
* libgnarl/s-osinte__x32.adb (To_Timespec): Remove use type clause.

From-SVN: r253366

6 years agore PR fortran/82312 ([OOP] Pointer assignment to component of class variable results...
Paul Thomas [Mon, 2 Oct 2017 18:17:39 +0000 (18:17 +0000)]
re PR fortran/82312 ([OOP] Pointer assignment to component of class variable results wrong vptr for the variable.)

2017-10-02  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/82312
* resolve.c (gfc_resolve_code): Simplify condition for class
pointer assignments becoming regular assignments by asserting
that only class valued targets are permitted.
* trans-expr.c (trans_class_pointer_fcn): New function using a
block of code from gfc_trans_pointer_assignment.
(gfc_trans_pointer_assignment): Call the new function. Tidy up
a minor whitespace issue.

2017-10-02  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/82312
* gfortran.dg/typebound_proc_36.f90 : New test.

From-SVN: r253362

6 years agore PR target/80210 (ICE in in extract_insn, at recog.c:2311 on ppc64 for with __built...
Peter Bergner [Mon, 2 Oct 2017 16:56:58 +0000 (11:56 -0500)]
re PR target/80210 (ICE in in extract_insn, at recog.c:2311 on ppc64 for with __builtin_pow)

gcc/
PR target/80210
* config/rs6000/rs6000.c (rs6000_option_override_internal): Rewrite
function to not use the have_cpu variable.  Do not set cpu_index,
rs6000_cpu_index or rs6000_tune_index if we end up using TARGET_DEFAULT
or the default cpu.
(rs6000_valid_attribute_p): Remove duplicate initializations of
old_optimize and func_optimize.
(rs6000_pragma_target_parse): Call rs6000_activate_target_options ().
(rs6000_activate_target_options): Make global.
* config/rs6000/rs6000-protos.h (rs6000_activate_target_options): Add
prototype.

gcc/testsuite/
PR target/80210
* gcc.target/powerpc/pr80210-2.c: New test.

From-SVN: r253358

6 years agotree-dfa.c (get_ref_base_and_extent): Set *pmax_size to -1 if *poffset + *pmax_size...
Jakub Jelinek [Mon, 2 Oct 2017 15:48:55 +0000 (17:48 +0200)]
tree-dfa.c (get_ref_base_and_extent): Set *pmax_size to -1 if *poffset + *pmax_size overflows in HOST_WIDE_INT.

* tree-dfa.c (get_ref_base_and_extent): Set *pmax_size to -1
if *poffset + *pmax_size overflows in HOST_WIDE_INT.
Set *poffset to 0 and *psize and *pmax_size to -1 if
*poffset + *psize overflows in HOST_WIDE_INT.

* gcc.dg/pr82389.c: New test.

From-SVN: r253357

6 years agore PR tree-optimization/82387 (wrong code at -O1 and -Os on x86_64-linux-gnu in 64...
Jakub Jelinek [Mon, 2 Oct 2017 15:44:10 +0000 (17:44 +0200)]
re PR tree-optimization/82387 (wrong code at -O1 and -Os on x86_64-linux-gnu in 64-bit mode)

PR tree-optimization/82387
PR tree-optimization/82388
PR tree-optimization/82389
* tree-ssa-dse.c (dse_classify_store): Test byte_tracking_enabled
instead of live_bytes non-NULL.

* gcc.c-torture/compile/pr82389.c: New test.
* gcc.c-torture/execute/pr82387.c: New test.
* gcc.c-torture/execute/pr82388.c: New test.

From-SVN: r253356

6 years agoC++17 P0067R5 std::to_chars and std::from_chars (partial)
Jonathan Wakely [Mon, 2 Oct 2017 14:06:40 +0000 (15:06 +0100)]
C++17 P0067R5 std::to_chars and std::from_chars (partial)

This adds the integral overloads of std::to_chars and std::from_chars,
including the changes made by P0682R0. Support for floating point types
is absent.

* include/Makefile.am: Add new <charconv> header.
* include/Makefile.in: Regenerate.
* include/precompiled/stdc++.h: Include <charconv>.
* include/std/charconv: New file.
(to_chars_result, to_chars, from_chars_result, from_chars): Define.
* testsuite/20_util/from_chars/1.cc: New test.
* testsuite/20_util/from_chars/1_neg.cc: New test.
* testsuite/20_util/from_chars/2.cc: New test.
* testsuite/20_util/from_chars/requirements.cc: New test.
* testsuite/20_util/to_chars/1.cc: New test.
* testsuite/20_util/to_chars/1_neg.cc: New test.
* testsuite/20_util/to_chars/2.cc: New test.
* testsuite/20_util/to_chars/requirements.cc: New test.

From-SVN: r253353

6 years agobacktrace-rename.h (backtrace_uncompress_zdebug): Define.
Jakub Jelinek [Mon, 2 Oct 2017 14:00:53 +0000 (16:00 +0200)]
backtrace-rename.h (backtrace_uncompress_zdebug): Define.

* libbacktrace/backtrace-rename.h (backtrace_uncompress_zdebug):
Define.

From-SVN: r253351

6 years agore PR c++/79180 (Nested lambda-capture causes segfault for parameter pack)
Paolo Carlini [Mon, 2 Oct 2017 12:40:26 +0000 (12:40 +0000)]
re PR c++/79180 (Nested lambda-capture causes segfault for parameter pack)

2017-10-02  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/79180
* g++.dg/cpp0x/lambda/lambda-nested8.C: New.
* g++.dg/torture/pr79180.C: Likewise.

PR c++/71386
* g++.dg/cpp1y/lambda-generic-nested1.C: New.

From-SVN: r253350

6 years agoHandle libbacktrace in contrib/gcc_update
Thomas Schwinge [Mon, 2 Oct 2017 11:56:50 +0000 (13:56 +0200)]
Handle libbacktrace in contrib/gcc_update

contrib/
* gcc_update (files_and_dependencies): Handle libbacktrace.

From-SVN: r253346

6 years agolibbacktrace: Support the case that clock_gettime is in librt
Thomas Schwinge [Mon, 2 Oct 2017 11:56:39 +0000 (13:56 +0200)]
libbacktrace: Support the case that clock_gettime is in librt

libbacktrace/
PR other/67165
* Makefile.am: Append the content of clock_gettime_link to
ztest_LDADD.
* configure.ac: Test for the case that clock_gettime is in librt.
* Makefile.in: Regenerate.
* configure: Likewise.

From-SVN: r253345

6 years agolibbacktrace: Conditionalize test timing on clock_gettime availability
Thomas Schwinge [Mon, 2 Oct 2017 11:56:25 +0000 (13:56 +0200)]
libbacktrace: Conditionalize test timing on clock_gettime availability

libbacktrace/
PR other/67165
* configure.ac: Check for clock_gettime.
* config.h.in: Regenerate.
* configure: Likewise.
* ztest.c (average_time, test_large): Conditionalize test timing
on clock_gettime availability.

From-SVN: r253344

6 years agore PR target/41076 ([avr] pessimal code for logical OR of 8-bit fields)
Georg-Johann Lay [Mon, 2 Oct 2017 11:31:03 +0000 (11:31 +0000)]
re PR target/41076 ([avr] pessimal code for logical OR of 8-bit fields)

PR target/41076
* confg/avr/avr.md (*iorhi3.ashift8-ext.zerox): Add "r,r,0"
alternative.

From-SVN: r253343

6 years agographite-isl-ast-to-gimple.c (set_codegen_error): With -fchecking and --param graphit...
Richard Biener [Mon, 2 Oct 2017 10:04:00 +0000 (10:04 +0000)]
graphite-isl-ast-to-gimple.c (set_codegen_error): With -fchecking and --param graphite-allow-codegen-errors=0 ICE.

2017-10-02  Richard Biener  <rguenther@suse.de>

* graphite-isl-ast-to-gimple.c (set_codegen_error): With
-fchecking and --param graphite-allow-codegen-errors=0 ICE.
* params.def (PARAM_GRAPHITE_ALLOW_CODEGEN_ERRORS): New param.

* gcc.dg/graphite/graphite.exp: Add -fdump-tree-graphite-details.
* gcc.dg/graphite/id-15.c: Adjust for existing codegen errors.
* gcc.dg/graphite/id-16.c: Likewise.
* gcc.dg/graphite/pr46168.c: Likewise.
* gcc.dg/graphite/pr68756.c: Likewise.
* gcc.dg/graphite/pr69728.c: Likewise.
* gcc.dg/graphite/pr71575-2.c: Likewise.
* gcc.dg/graphite/pr77362.c: Likewise.
* gcc.dg/graphite/pr81373.c: Likewise.
* gcc.dg/graphite/run-id-pr67700-1.c: Likewise.
* gfortran.dg/graphite/interchange-1.f: Likewise.
* gfortran.dg/graphite/pr29581.f90: Likewise.
* gfortran.dg/graphite/pr42334-1.f: Likewise.
* gfortran.dg/graphite/pr42393-1.f90: Likewise.
* gfortran.dg/graphite/pr42393.f90: Likewise.
* gfortran.dg/graphite/pr47019.f: Likewise.

From-SVN: r253342

6 years agoFix mismatched precisions in tree arithmetic
Richard Sandiford [Mon, 2 Oct 2017 09:45:40 +0000 (09:45 +0000)]
Fix mismatched precisions in tree arithmetic

The tree wi:: decompose routine wasn't asserting that the requested
precision matched the tree's precision.  This could make a difference
for unsigned trees that are exactly N HWIs wide and that have the upper
bit set, since we then need an extra zero HWI when extending it to wider
precisions (as for wi::to_widest).

This patch adds the assert and fixes the fallout shown by the testsuite.
Go seems to be unaffected.

2017-10-02  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
* tree.h (wi::int_traits <const_tree>::decompose): Assert that the
requested precision matches the type's.
* calls.c (alloc_max_size): Calculate the new candidate size as
a widest_int and use wi::to_widest when comparing it with the
current candidate size.
* gimple-ssa-warn-alloca.c (pass_walloca::execute): Compare with
zero rather than integer_zero_node.
* match.pd: Check for a no-op conversion before using wi::add
rather than after.  Use tree_to_uhwi when summing small shift
counts into an unsigned int.

gcc/c-family/
* c-warn.c (warn_tautological_bitwise_comparison): Use wi::to_widest
when combining the original unconverted comparison operands.

gcc/cp/
* constexpr.c (cxx_eval_store_expression): Use wi::to_widest
when comparing the array bounds with an ARRAY_REF index.

gcc/ada/
* gcc-interface/decl.c (annotate_value): Use wi::to_widest when
handling the form (plus/mult (convert @0) @1).

From-SVN: r253341

6 years agore PR c++/69977 (internal compiler error: Segmentation fault when using generic lambdas)
Paolo Carlini [Mon, 2 Oct 2017 09:41:36 +0000 (09:41 +0000)]
re PR c++/69977 (internal compiler error: Segmentation fault when using generic lambdas)

2017-10-02  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/69977
* g++.dg/cpp1y/lambda-generic-69977.C: New.

From-SVN: r253340

6 years agore PR c++/59991 (Recursive lambda capture in C++1y constexpr function template causes...
Paolo Carlini [Mon, 2 Oct 2017 09:03:32 +0000 (09:03 +0000)]
re PR c++/59991 (Recursive lambda capture in C++1y constexpr function template causes internal compiler error)

2017-10-02  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/59991
* g++.dg/cpp0x/lambda/lambda-ice23.C: New.

From-SVN: r253339

6 years agoRequire nonlocal_goto for gcc.c-torture/compile/pr82337.c
Tom de Vries [Mon, 2 Oct 2017 09:02:05 +0000 (09:02 +0000)]
Require nonlocal_goto for gcc.c-torture/compile/pr82337.c

2017-10-02  Tom de Vries  <tom@codesourcery.com>

* gcc.c-torture/compile/pr82337.c: Add
dg-require-effective-target nonlocal_goto.

From-SVN: r253338

6 years ago[AArch64] PR71307: Define union class of POINTER+FP
Richard Sandiford [Mon, 2 Oct 2017 08:11:07 +0000 (08:11 +0000)]
[AArch64] PR71307: Define union class of POINTER+FP

ALL_REGS doesn't function as a union class of POINTER_REGS and FP_REGS
since it includes the CC register as well.  REGNO_REG_CLASS (CC_REGNUM)
is NO_REGS, but of course NO_REGS rightly doesn't include CC_REGNUM.

Adding a union class for POINTER+FP allows the RA to use it as the
preferred or alternative class of a pseudo.  It also works as a
union class of GENERAL+FP for modes that aren't allowed in SP.

This is also needed for the SVE port, which adds predicate registers
to the mix.

2017-09-15  Richard Sandiford  <richard.sandiford@linaro.org>
    Alan Hayward  <alan.hayward@arm.com>
    David Sherwood  <david.sherwood@arm.com>

gcc/
PR target/71307
* config/aarch64/aarch64.h (POINTER_AND_FP_REGS): New reg class.
(REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
* config/aarch64/aarch64.c (aarch64_class_max_nregs): Handle
POINTER_AND_FP_REGS.

gcc/testsuite/
PR target/71307
* gcc.target/aarch64/vect_copy_lane_1.c: Remove XFAIL.

Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
Co-Authored-By: David Sherwood <david.sherwood@arm.com>
From-SVN: r253337

6 years agore PR tree-optimization/82355 (ICE in outermost_loop_in_sese, at sese.c:301)
Richard Biener [Mon, 2 Oct 2017 07:32:52 +0000 (07:32 +0000)]
re PR tree-optimization/82355 (ICE in outermost_loop_in_sese, at sese.c:301)

2017-10-02  Richard Biener  <rguenther@suse.de>

PR tree-optimization/82355
* graphite-isl-ast-to-gimple.c (build_iv_mapping): Also build
a mapping for the enclosing loop but avoid generating one for
the loop tree root.
(copy_bb_and_scalar_dependences): Remove premature codegen
error on PHIs in blocks duplicated into multiple places.
* graphite-scop-detection.c
(scop_detection::stmt_has_simple_data_refs_p): For a loop not
in the region use it as loop and nest to analyze the DR in.
(try_generate_gimple_bb): Likewise.
* graphite-sese-to-poly.c (extract_affine_chrec): Adjust.
(add_loop_constraints): For blocks in a loop not in the region
create a dimension with a single iteration.
* sese.h (gbb_loop_at_index): Remove assert.

* gcc.dg/graphite/fuse-1.c: Adjust.
* gcc.dg/graphite/fuse-2.c: Likewise.
* gcc.dg/graphite/pr82355.c: New testcase.

From-SVN: r253336

6 years agoomp-expand.c (adjust_context_scope): New function.
Kevin Buettner [Mon, 2 Oct 2017 00:27:21 +0000 (00:27 +0000)]
omp-expand.c (adjust_context_scope): New function.

* omp-expand.c (adjust_context_scope): New function.
(expand_parallel_call): Call adjust_context_scope.

From-SVN: r253335

6 years agoDaily bump.
GCC Administrator [Mon, 2 Oct 2017 00:16:19 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r253334

6 years agoMAINTAINERS: Add a note that maintainership also includes web pages...
Gerald Pfeifer [Sun, 1 Oct 2017 18:36:37 +0000 (18:36 +0000)]
MAINTAINERS: Add a note that maintainership also includes web pages...

* MAINTAINERS: Add a note that maintainership also includes web
pages, docs, and testsuite related to that area.

From-SVN: r253330

6 years agotree-ssa-dom.c (optimize_stmt): Make this a method within the dom_opt_dom_walker...
Jeff Law [Sun, 1 Oct 2017 15:22:39 +0000 (09:22 -0600)]
tree-ssa-dom.c (optimize_stmt): Make this a method within the dom_opt_dom_walker class with direct access to...

* tree-ssa-dom.c (optimize_stmt): Make this a method within the
dom_opt_dom_walker class with direct access to private members.
Add comments.  Call test_for_singularity.
(dom_opt_dom_walker::before_dom_children): Corresponding changes.
(dom_opt_dom_walker::after_dom_children): Do not lazily initialize
m_dummy_cond anymore.
(class dom_opt_dom_walker): Initialize m_dummy_cond member in the
class ctor.
(pass_dominator:execute): Build the dummy_cond here and pass it
to the dom_opt_dom_walker ctor.
(test_for_singularity): New function.

* gcc.dg/tree-ssa/ssa-dom-simplify-1.c: New test.

2017-09-30  Paolo Carlini  <paolo.carlini@oracle.com>

From-SVN: r253329

6 years agore PR fortran/61450 (ICE in gfc_global_used())
Dominique d'Humieres [Sun, 1 Oct 2017 09:49:48 +0000 (11:49 +0200)]
re PR fortran/61450 (ICE in gfc_global_used())

2017-10-01  Dominique d'Humieres  <dominiq@lps.ens.fr>

PR fortran/61450
* parse.c (gfc_global_used): Replace the gfc_internal_error
with an error.

2017-10-01  Dominique d'Humieres  <dominiq@lps.ens.fr>

PR fortran/61450
* gfortran.dg/binding_label_tests_28.f90: New test.

From-SVN: r253328

6 years agoDaily bump.
GCC Administrator [Sun, 1 Oct 2017 00:16:19 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r253327

6 years agoconfig.gcc (*-*-netbsd*): New variable nbsd_tm_file containing netbsd.h, netbsd-stdin...
Krister Walfridsson [Sat, 30 Sep 2017 20:45:59 +0000 (20:45 +0000)]
config.gcc (*-*-netbsd*): New variable nbsd_tm_file containing netbsd.h, netbsd-stdint.h, and netbsd-elf.h.

2017-09-30  Krister Walfridsson  <krister.walfridsson@gmail.com>
    Maya Rashish  <coypu@sdf.org>

* config.gcc (*-*-netbsd*): New variable nbsd_tm_file containing
netbsd.h, netbsd-stdint.h, and netbsd-elf.h.
(alpha*-*-netbsd*) Use nbsd_tm_file.
(arm*-*-netbsdelf*) Likewise.
(i[34567]86-*-netbsdelf*) Likewise.
(x86_64-*-netbsd*) Likewise.
(mips*-*-netbsd*) Likewise.
(powerpc-*-netbsd*) Likewise.
(sh*-*-netbsd*) Likewise.
(sparc-*-netbsdelf*) Likewise.
(sparc64-*-netbsd*) Likewise.
(m68k*-*-netbsdelf*) Use nbsd_tm_file and add CHAR_FAST8/SHORT_FAST16
to tm_defines.
(vax-*-netbsdelf*) Likewise.
* config/netbsd-stdint.h (INT_FAST8_TYPE): Check CHAR_FAST8.
(UINT_FAST8_TYPE) Likewise.
(INT_FAST16_TYPE) Check CHAR_FAST16.
(UINT_FAST16_TYPE) Likewise.

Co-Authored-By: Maya Rashish <coypu@sdf.org>
From-SVN: r253323

6 years agore PR c++/65949 (Compiler can not deduce auto type in lambda)
Paolo Carlini [Sat, 30 Sep 2017 20:42:05 +0000 (20:42 +0000)]
re PR c++/65949 (Compiler can not deduce auto type in lambda)

2017-09-30  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/65949
* g++.dg/cpp1y/lambda-generic-variadic5.C: New.

From-SVN: r253322

6 years agore PR c++/68754 (Explicitly defaulted constexpr assignment operator fails to compile)
Paolo Carlini [Sat, 30 Sep 2017 17:00:32 +0000 (17:00 +0000)]
re PR c++/68754 (Explicitly defaulted constexpr assignment operator fails to compile)

/cp
2017-09-30  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/68754
* method.c (defaulted_late_check): Early return if the defaulted
declaration does not match the expected signature.

/testsuite
2017-09-30  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/68754
* g++.dg/cpp1y/constexpr-68754.C: Move...
* g++.dg/cpp0x/constexpr-68754.C: ... here, adjust.

From-SVN: r253321

6 years agore PR target/82361 (Useless "mov eax, eax" in generated code)
Jakub Jelinek [Sat, 30 Sep 2017 08:10:15 +0000 (10:10 +0200)]
re PR target/82361 (Useless "mov eax, eax" in generated code)

PR target/82361
* config/i386/i386.md
(TARGET_USE_8BIT_IDIV zext divmodsi4 splitter): New define_split.
(divmodsi4_zext_1, divmodsi4_zext_2, *divmodsi4_zext_1,
*divmodsi4_zext_2): New define_insn_and_split.
(*divmodsi4_noext_zext_1, *divmodsi4_noext_zext_2): New define_insn.
(TARGET_USE_8BIT_IDIV zext udivmodsi4 splitter): New define_split.
(udivmodsi4_zext_1, udivmodsi4_zext_2, *udivmodsi4_zext_1,
*udivmodsi4_zext_2, *udivmodsi4_pow2_zext_1, *udivmodsi4_pow2_zext_2):
New define_insn_and_split.
(*udivmodsi4_noext_zext_1, *udivmodsi4_noext_zext_2): New define_insn.
* config/i386/i386.c (ix86_split_idivmod): Handle operands[0] or
operands[1] having DImode when mode is SImode.

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

From-SVN: r253317

6 years agoi386.c (ix86_split_idivmod): Use mode instead of always SImode for DIV and MOD in...
Jakub Jelinek [Sat, 30 Sep 2017 07:59:27 +0000 (09:59 +0200)]
i386.c (ix86_split_idivmod): Use mode instead of always SImode for DIV and MOD in REG_EQUAL notes.

* config/i386/i386.c (ix86_split_idivmod): Use mode instead of
always SImode for DIV and MOD in REG_EQUAL notes.

From-SVN: r253316

6 years agoDaily bump.
GCC Administrator [Sat, 30 Sep 2017 00:16:18 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r253315

6 years agoOrder some filenames in a changelog entry.
Segher Boessenkool [Fri, 29 Sep 2017 22:49:24 +0000 (00:49 +0200)]
Order some filenames in a changelog entry.

From-SVN: r253311

6 years agoc-attribs.c (handle_noipa_attribute): Don't add "stack_protect" attribute.
Jakub Jelinek [Fri, 29 Sep 2017 21:06:28 +0000 (23:06 +0200)]
c-attribs.c (handle_noipa_attribute): Don't add "stack_protect" attribute.

* c-attribs.c (handle_noipa_attribute): Don't add "stack_protect"
attribute.

From-SVN: r253308

6 years agore PR middle-end/82319 (ICE in generic_simplify_148, at generic-match.c:6436)
Yury Gribov [Fri, 29 Sep 2017 19:40:16 +0000 (19:40 +0000)]
re PR middle-end/82319 (ICE in generic_simplify_148, at generic-match.c:6436)

2017-09-29  Yury Gribov  <tetra2005@gmail.com>

PR middle-end/82319
gcc/
* match.pd: Fix handling of NaNs in pattern.

gcc/testsuite/
* c-c++/common/pr57371-4.c: Test NaN comparisons.

From-SVN: r253307

6 years agoc-ada-spec.c (to_ada_name): Add index parameter.
Eric Botcazou [Fri, 29 Sep 2017 18:51:00 +0000 (18:51 +0000)]
c-ada-spec.c (to_ada_name): Add index parameter.

* c-ada-spec.c (to_ada_name): Add index parameter.
(pp_ada_tree_identifier): Likewise.
(dump_ada_macros): Adjust call to to_ada_name.
(struct overloaded_name_hash): New type.
(struct overloaded_name_hasher): Likewise.
(overloaded_names): New hash table.
(compute_overloading_index): New function.
(dump_ada_decl_name): Call it and pass the result to
pp_ada_tree_identifier.
(dump_ada_double_name): Adjust calls to pp_ada_tree_identifier.
(dump_ada_function_declaration): Likewise.
(dump_generic_ada_node): Likewise.
(print_constructor): Likewise.
(print_destructor): Likewise.
(dump_ada_specs): Delete overloaded_names table.

From-SVN: r253306

6 years agosbitmap.c (bitmap_bit_in_range_p): New function.
Jeff Law [Fri, 29 Sep 2017 18:20:41 +0000 (12:20 -0600)]
sbitmap.c (bitmap_bit_in_range_p): New function.

* sbitmap.c (bitmap_bit_in_range_p): New function.
* sbitmap.h (bitmap_bit_in_range_p): Prototype.
* tree-ssa-dse.c (live_bytes_read): New function.
(dse_classify_store): Ignore reads of dead bytes.

* testsuite/gcc.dg/tree-ssa/ssa-dse-26.c: New test.

From-SVN: r253305

6 years agoc-ada-spec.c (max_ada_macros): Move around.
Eric Botcazou [Fri, 29 Sep 2017 18:17:47 +0000 (18:17 +0000)]
c-ada-spec.c (max_ada_macros): Move around.

* c-ada-spec.c (max_ada_macros): Move around.
(store_ada_macro_index): Likewise.
(source_file): Rename into...
(macro_source_file): ...this.
(count_ada_macro): Move around.
(store_ada_macro): Likewise.
(compare_macro): Likewise.
(print_ada_macros): Merge in...
(dump_ada_macros): ...this.
(source_file_base): Rename into...
(current_source_file): ...this.
(print_comment): Move around.
(dump_ada_nodes): Call dump_ada_declaration directly.
(struct with): Change type of limited field to bool.
(append_withs): Change type of limited_access parameter to bool.
(pp_ada_tree_identifie): Likewise.
(dump_ada_decl_nam): Likewise.
(dump_generic_ada_node): Likewise.  Do not print the return type.
(to_ada_name): Change type of space_found parameter to bool.
(dump_ada_function_declaration): Return void and change type of
parameters to bool.  Also print the return type for a function.
(print_ada_methods): Rename into...
(dump_ada_methods): ...this.
(print_ada_declaration): Rename into ...
(dump_ada_declaration): ...this.  Do not print the return type.
(print_ada_struct_decl): Rename into...
(dump_ada_struct_decl): ...this.

From-SVN: r253304

6 years agoi386.c (ix86_adjust_stack_and_probe_stack_clash): Fix typos and whitespace errors.
Jeff Law [Fri, 29 Sep 2017 18:11:40 +0000 (12:11 -0600)]
i386.c (ix86_adjust_stack_and_probe_stack_clash): Fix typos and whitespace errors.

* config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): Fix
typos and whitespace errors.
* config/i386/predicates.md (address_no_seg_operand): Likewise.
* config/s390/s390.c (s390_emit_prologue): Likewise.

From-SVN: r253303

6 years agoP0683R1 - default member initializers for bit-fields
Jakub Jelinek [Fri, 29 Sep 2017 17:53:50 +0000 (19:53 +0200)]
P0683R1 - default member initializers for bit-fields

P0683R1 - default member initializers for bit-fields
cp/
* cp-tree.h (grokbitfield): Add INIT parameter.
* parser.c (cp_parser_constant_expression): Add STRICT_P argument,
if true, parse a conditional-expression rather than
assignment-expression.
(cp_parser_member_declaration): For C++11 and later pass true
as STRICT_P to cp_parser_constant_expression.  Parse C++2A bitfield
NSDMIs.  Adjust grokbitfield caller.  Handle DECL_INITIAL also for
DECL_C_BIT_FIELDs.
(cp_parser_objc_class_ivars): Adjust grokbitfield caller.
* class.c (check_field_decl): Recurse even for DECL_C_BIT_FIELDs.
(check_field_decls): Call check_field_decl even for DECL_C_BIT_FIELDs.
* decl2.c (grokbitfield): Add INIT parameter, pass it to
cp_finish_decl.
* pt.c (tsubst_decl): Handle DECL_INITIAL for all FIELD_DECLs, not
just non-bitfields.
testsuite/
* g++.dg/ext/bitfield6.C: New test.
* g++.dg/cpp2a/bitfield1.C: New test.
* g++.dg/cpp2a/bitfield2.C: New test.
* g++.dg/cpp2a/bitfield3.C: New test.

From-SVN: r253302

6 years agoc-attribs.c (handle_packed_attribute): Test DECL_C_BIT_FIELD rather than DECL_INITIAL.
Jakub Jelinek [Fri, 29 Sep 2017 17:45:32 +0000 (19:45 +0200)]
c-attribs.c (handle_packed_attribute): Test DECL_C_BIT_FIELD rather than DECL_INITIAL.

c-family/
* c-attribs.c (handle_packed_attribute): Test DECL_C_BIT_FIELD
rather than DECL_INITIAL.
(common_handle_aligned_attribute): Likewise.
c/
* c-decl.c (grokfield): Use SET_DECL_C_BIT_FIELD here if
width is non-NULL.
(finish_struct): Test DECL_C_BIT_FIELD instead of DECL_INITIAL,
don't SET_DECL_C_BIT_FIELD here.
cp/
* class.c (check_bitfield_decl): Retrieve and clear width from
DECL_BIT_FIELD_REPRESENTATIVE rather than DECL_INITIAL.
(check_field_decls): Test DECL_BIT_FIELD_REPRESENTATIVE rather than
DECL_INITIAL.
(remove_zero_width_bit_fields): Adjust comment.
* decl2.c (grokbitfield): Stash width into
DECL_BIT_FIELD_REPRESENTATIVE rather than DECL_INITIAL.
* pt.c (tsubst_decl): For DECL_C_BIT_FIELD, tsubst_expr
DECL_BIT_FIELD_REPRESENTATIVE rather than DECL_INITIAL for width.
objc/
* objc-act.c (check_ivars, gen_declaration): For OBJCPLUS look at
DECL_BIT_FIELD_REPRESENTATIVE rather than DECL_INITIAL.

From-SVN: r253301

6 years agore PR target/81481 (Spills %xmm to stack in glibc strspn SSE 4.2 variant)
Vladimir Makarov [Fri, 29 Sep 2017 17:39:58 +0000 (17:39 +0000)]
re PR target/81481 (Spills %xmm to stack in glibc strspn SSE 4.2 variant)

2017-09-29  Vladimir Makarov  <vmakarov@redhat.com>

PR target/81481
* ira-costs.c (scan_one_insn): Don't take into account PIC equiv
with a symbol for LRA.

2017-09-29  Vladimir Makarov  <vmakarov@redhat.com>

PR target/81481
* gcc.target/i386/pr81481.c: New.

From-SVN: r253300

6 years agore PR rtl-optimization/82338 (valgrind error in inherit_in_ebb)
Vladimir Makarov [Fri, 29 Sep 2017 17:15:24 +0000 (17:15 +0000)]
re PR rtl-optimization/82338 (valgrind error in inherit_in_ebb)

2017-09-29  Vladimir Makarov  <vmakarov@redhat.com>

PR rtl-optimization/82338
* lra-constraints.c (inherit_in_ebb): Check usage_insns check.

From-SVN: r253299

6 years ago[BRIGFE] Fix crash with calls with more than 4 args.
Henry Linjamäki [Fri, 29 Sep 2017 16:57:18 +0000 (16:57 +0000)]
[BRIGFE] Fix crash with calls with more than 4 args.

Also fix a misexecution issue with kernels that have
both unexpanded ID functions and calls to subfunctions.

From-SVN: r253298

6 years agoxcoff.c: Initial support for DWARF debug sections in XCOFF.
Tony Reix [Fri, 29 Sep 2017 16:37:39 +0000 (16:37 +0000)]
xcoff.c: Initial support for DWARF debug sections in XCOFF.

* xcoff.c: Initial support for DWARF debug sections in XCOFF.
(STYP_DWARF, SSUBTYP_DW*): Define.
(enum dwarf_section): Define.
(struct dwsect_info): Define.
(xcoff_add): Look for DWARF sections, pass them to
backtrace_dwarf_add.

From-SVN: r253297

6 years agoswaps-p8-30.c: Exchange the order of dg-do and dg-require-effective-target directives...
Kelvin Nilsen [Fri, 29 Sep 2017 16:07:55 +0000 (16:07 +0000)]
swaps-p8-30.c: Exchange the order of dg-do and dg-require-effective-target directives to...

gcc/testsuite/ChangeLog:

2017-09-29  Kelvin Nilsen  <kelvin@gcc.gnu.org>

* gcc.target/powerpc/swaps-p8-30.c: Exchange the order of dg-do
and dg-require-effective-target directives to correct testing
behavior.
* gcc.target/powerpc/swaps-p8-32.c: Likewise.
* gcc.target/powerpc/swaps-p8-41.c: Likewise.
* gcc.target/powerpc/swaps-p8-34.c: Likewise.
* gcc.target/powerpc/swaps-p8-43.c: Likewise.
* gcc.target/powerpc/swaps-p8-36.c: Likewise.
* gcc.target/powerpc/swaps-p8-45.c: Likewise.
* gcc.target/powerpc/swaps-p8-29.c: Likewise.
* gcc.target/powerpc/swaps-p8-38.c: Likewise.
* gcc.target/powerpc/swaps-p8-31.c: Likewise.
* gcc.target/powerpc/swaps-p8-40.c: Likewise.
* gcc.target/powerpc/swaps-p8-33.c: Likewise.
* gcc.target/powerpc/swaps-p8-42.c: Likewise.
* gcc.target/powerpc/swaps-p8-35.c: Likewise.
* gcc.target/powerpc/swaps-p8-44.c: Likewise.
* gcc.target/powerpc/swaps-p8-28.c: Likewise.
* gcc.target/powerpc/swaps-p8-37.c: Likewise.
* gcc.target/powerpc/swaps-p8-39.c: Likewise.

From-SVN: r253296

6 years agoqsort comparator consistency checking
Alexander Monakov [Fri, 29 Sep 2017 16:00:15 +0000 (19:00 +0300)]
qsort comparator consistency checking

* genmodes.c (calc_wider_mode): Suppress qsort macro.
* system.h [CHECKING_P] (qsort): Redirect to qsort_chk.
(qsort_chk): Declare.
* vec.c [CHECKING_P] (qsort_chk_error): New static function.
(qsort_chk): New function.

From-SVN: r253295

6 years ago[multiple changes]
Pierre-Marie de Rodat [Fri, 29 Sep 2017 15:33:23 +0000 (15:33 +0000)]
[multiple changes]

2017-09-29  Bob Duff  <duff@adacore.com>

* exp_ch6.adb (Expand_Call_Helper): Replace with code more similar to
what we had before.
(Make_Build_In_Place_Call_In_Object_Declaration): Back out previous
change. Set the Etype in the class-wide case. This fixes a regression
in the libadalang test suite.

2017-09-29  Joel Brobecker  <brobecker@adacore.com>

* doc/gnat_ugn/building_executable_programs_with_gnat.rst,
doc/gnat_ugn/the_gnat_compilation_model.rst: Avoid use of single colon
in comment markup.
* gnat_ugn.texi: Regenerate.

2017-09-29  Justin Squirek  <squirek@adacore.com>

* ali-util.adb, comperr.adb, cprint.adb, errout.adb, fmap.adb,
fname-sf.adb, frontend.adb, lib-xref-spark_specific.adb, gnat1drv.adb,
gnatls.adb, lib.adb, lib-load.adb, lib-writ.adb, prepcomp.adb,
sinput-d.adb, sinput-l.adb, sprint.adb, targparm.adb: Update comparison
for checking source file status and error message and/or call to
Read_Source_File.
* libgnat/s-os_lib.ads: Add new potential value constant for
uninitialized file descriptors.
* osint.adb, osint.ads (Read_Source_File): Add extra parameter to
return result of IO to encompass a read access failure in addition to a
file-not-found error.

From-SVN: r253294

6 years agore PR tree-optimization/82337 (ICE: SSA corruption at tree-ssa-coalesce.c:1010)
Bill Schmidt [Fri, 29 Sep 2017 14:55:14 +0000 (14:55 +0000)]
re PR tree-optimization/82337 (ICE: SSA corruption at tree-ssa-coalesce.c:1010)

[gcc]

2017-09-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

PR tree-optimization/82337
* gimple-ssa-strength-reduction.c (find_phi_def): Don't record a
phi definition if the PHI result appears in an abnormal PHI.
(find_basis_for_base_expr): Don't record a basis if the LHS of the
basis appears in an abnormal PHI.

[gcc]

2017-09-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

PR tree-optimization/82337
* gcc.c-torture/compile/pr82337.c: New file.

From-SVN: r253293

6 years agodebug/elf: support 32-bit SPARC relocs
Ian Lance Taylor [Fri, 29 Sep 2017 14:35:58 +0000 (14:35 +0000)]
debug/elf: support 32-bit SPARC relocs

    Patch by Rainer Orth.

    Reviewed-on: https://go-review.googlesource.com/67111

From-SVN: r253292

6 years agomksysinfo: strip locale structs
Ian Lance Taylor [Fri, 29 Sep 2017 14:14:40 +0000 (14:14 +0000)]
mksysinfo: strip locale structs

    We don't need them, and this fixes the build when using uClibc-ng
    1.0.26 as originally reported at
    https://gcc.gnu.org/ml/gcc-patches/2017-09/msg01930.html

    Reviewed-on: https://go-review.googlesource.com/67110

From-SVN: r253291

6 years agoexp_ch6.adb (Expand_Call_Helper): Handle case of build-in-place functions returning...
Bob Duff [Fri, 29 Sep 2017 13:48:57 +0000 (13:48 +0000)]
exp_ch6.adb (Expand_Call_Helper): Handle case of build-in-place functions returning nonlimited types.

2017-09-29  Bob Duff  <duff@adacore.com>

* exp_ch6.adb (Expand_Call_Helper): Handle case of build-in-place
functions returning nonlimited types. Allow for qualified expressions
and type conversions.
(Expand_N_Extended_Return_Statement): Correct the computation of
Func_Bod to allow for child units.
(Expand_Simple_Function_Return): Remove assumption that b-i-p implies
limited (initialization of In_Place_Expansion), and implies >= Ada
2005.
(Is_Build_In_Place_Result_Type): New function to accompany
Is_Build_In_Place_Function and Is_Build_In_Place_Function_Call, because
sometimes we just have the type on our hands, not the function.  For
now, does the same thing as the old version, so build-in-place is
disabled for nonlimited types, except that you can use -gnatd.9 to
enable it.
* exp_ch6.ads (Is_Build_In_Place_Result_Type): New function to
accompany Is_Build_In_Place_Function and
Is_Build_In_Place_Function_Call, because sometimes we just have the
type on our hands, not the function.
(Make_Build_In_Place_Call_In_...): Handle nonlimited build-in-place
cases.
(Make_Build_In_Place_Call_In_Object_Declaration): Remove the
questionable code at the end that was setting the Etype.
* exp_aggr.adb (Is_Build_In_Place_Aggregate_Return): New function to
determine whether "return (...agg...);" is returning from a
build-in-place function.
(Initialize_Ctrl_Array_Component, Initialize_Ctrl_Record_Component):
Remove assumption that b-i-p implies limited (initialization of
In_Place_Expansion).
(Build_Record_Aggr_Code): AI-287: fix comment; it can't be wrapped in
an unchecked conversion.  Add assertions.
(Convert_Aggr_In_Object_Decl): Establish_Transient_Scope -- no need for
secondary stack here, just because the type needs finalization.  That
code is obsolete.
(Convert_To_Assignments): Only set Unc_Decl if Nkind (N) = N_Aggregate.
For "return (...agg...);" don't assume b-i-p implies limited.
Needs_Finalization does not imply secondary stack.
(Expand_Array_Aggregate): Named notation.  Reverse the sense of
Component_OK_For_Backend -- more readability with fewer double
negatives.
* exp_attr.adb (Expand_N_Attribute_Reference): Remove assumptions that
b-i-p implies >= Ada 2005.
* exp_ch3.adb (Expand_N_Object_Declaration): Remove assumptions that
b-i-p implies >= Ada 2005.  Remove Adjust if we're building the return
object of an extended return statement in place.
* exp_ch4.adb (Expand_Allocator_Expression, Expand_N_Indexed_Component,
Expand_N_Selected_Component, Expand_N_Slice): Remove assumptions that
b-i-p implies >= Ada 2005.
* exp_ch5.adb (Expand_N_Assignment_Statement): Remove assumption that
b-i-p implies >= Ada 2005.
* exp_ch7.adb: Comment fix.
* exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Remove
assumptions that b-i-p implies >= Ada 2005.
* exp_disp.adb (Expand_Interface_Actuals): Remove assumptions that
b-i-p implies >= Ada 2005.
* exp_util.adb (Build_Allocate_Deallocate_Proc): Look at Storage_Pool
(Expr), in case Pool_Id is not set.
(Initialized_By_Aliased_BIP_Func_Call): Handle case where the call is
qualified or converted.
(Is_Secondary_Stack_BIP_Func_Call): Don't check if Nkind (Selector_Name
(Param)) = N_Identifier; that's all it could be.
* sinfo.ads: Comment fixes.
* snames.ads-tmpl: Comment fixes.
* debug.adb: Add flag gnatd.9, to enable the build-in-place machinery.

From-SVN: r253290

6 years agoAdd missing ChangeLog entries for previous commit
Javier Miranda [Fri, 29 Sep 2017 13:26:55 +0000 (13:26 +0000)]
Add missing ChangeLog entries for previous commit

From-SVN: r253289

6 years ago[multiple changes]
Pierre-Marie de Rodat [Fri, 29 Sep 2017 13:22:45 +0000 (13:22 +0000)]
[multiple changes]

2017-09-29  Justin Squirek  <squirek@adacore.com>

* sem_ch8.adb (Analyze_Use_Package): Add sanity check to avoid
circularities in the use-clause chain.

2017-09-29  Javier Miranda  <miranda@adacore.com>

* sem_ch3.adb (Replace_Components): Update references to discriminants
located in variant parts inherited from the parent type.

2017-09-29  Javier Miranda  <miranda@adacore.com>

* exp_ch5.adb (Expand_Assign_Record): Do not generate code to copy
discriminants if the target is an Unchecked_Union record type.

2017-09-29  Ed Schonberg  <schonberg@adacore.com>

* sem_aggr.adb (Resolve_Record_Aggregate): Reject the use of an
iterated component association in an aggregate for a record type.

2017-09-29  Piotr Trojanek  <trojanek@adacore.com>

* make.adb: Minor whitespace fixes.
* libgnat/s-resfil.ads: Minor reformatting.

From-SVN: r253288

6 years agore PR fortran/25071 (dummy argument larger than actual argument)
Dominique d'Humieres [Fri, 29 Sep 2017 13:19:21 +0000 (15:19 +0200)]
re PR fortran/25071 (dummy argument larger than actual argument)

2017-09-29  Dominique d'Humieres  <dominiq@lps.ens.fr>

PR fortran/25071
* gfortran.dg/argument_checking_3.f90: Change warnings to errors.
* gfortran.dg/argument_checking_4.f90: Likewise.
* gfortran.dg/argument_checking_5.f90: Likewise.
* gfortran.dg/argument_checking_6.f90: Likewise.
* gfortran.dg/argument_checking_10.f90: Likewise.
* gfortran.dg/argument_checking_13.f90: Likewise.
* gfortran.dg/argument_checking_15.f90: Likewise.
* gfortran.dg/argument_checking_18.f90: Likewise.
* gfortran.dg/gomp/udr8.f90: Likewise.
* gfortran.dg/warn_argument_mismatch_1.f90: Add -std=legacy to
the dg-options.

From-SVN: r253287

6 years agore PR fortran/25071 (dummy argument larger than actual argument)
Dominique d'Humieres [Fri, 29 Sep 2017 13:15:26 +0000 (15:15 +0200)]
re PR fortran/25071 (dummy argument larger than actual argument)

2017-09-29  Dominique d'Humieres  <dominiq@lps.ens.fr>

PR fortran/25071
* interface.c (compare_actual_formal): Change warnings to errors
when "Actual argument contains too few elements for dummy
argument", unless -std=legacy is used.

From-SVN: r253286

6 years ago[multiple changes]
Pierre-Marie de Rodat [Fri, 29 Sep 2017 13:04:47 +0000 (13:04 +0000)]
[multiple changes]

2017-09-29  Justin Squirek  <squirek@adacore.com>

* sem_ch8.adb (Mark_Use_Clauses): Add recursive call to properly handle
all cases related to marking entity identifiers.

2017-09-29  Vasiliy Fofanov  <fofanov@adacore.com>

* adaint.c (win32_wait): Properly handle error and take into account
the WIN32 limitation on the number of simultaneous wait objects.

2017-09-29  Vasiliy Fofanov  <fofanov@adacore.com>

* cal.c: Minor proofreading.

2017-09-29  Vasiliy Fofanov  <fofanov@adacore.com>

* doc/gnat_ugn/gnat_utility_programs.rst: Minor formatting fix.
* gnat_ugn.texi: Regenerate.

2017-09-29  Bob Duff  <duff@adacore.com>

* lib-xref.ads: Comment fix.

2017-09-29  Bob Duff  <duff@adacore.com>

* exp_aggr.adb: Remove calls to Set_No_Ctrl_Actions for discriminants.
Discriminants can't need finalization.

2017-09-29  Ed Schonberg  <schonberg@adacore.com>

* sem_ch6.adb (Analyze_Expression_Function): Do not emit freeze nodes
for types in expression if the function is within a generic unit.
* sem_res.adb (Resolve): In a generic context do not freeze an
expression, unless it is an entity. This exception is solely for the
purpose of detecting illegal uses of deferred constants in generic
units.
* sem_res.adb: Minor reformatting.

From-SVN: r253285

6 years ago[multiple changes]
Pierre-Marie de Rodat [Fri, 29 Sep 2017 12:53:24 +0000 (12:53 +0000)]
[multiple changes]

2017-09-29  Justin Squirek  <squirek@adacore.com>

* sem_ch8.adb (Note_Redundant_Use): Add guard to protect against false
redundant warnings.

2017-09-29  Yannick Moy  <moy@adacore.com>

* sinput-c.adb: Remove unused with-clause on Ada.Unchecked_Conversion.

2017-09-29  Eric Botcazou  <ebotcazou@adacore.com>

* doc/gnat_rm/representation_clauses_and_pragmas.rst: Minor rewording.
* doc/gnat_rm/implementation_defined_pragmas.rst (Optimize_Alignment):
Document the effect of pragma Optimize_Alignment (Space) on non-packed
record types.
* gnat_rm.texi: Regenerate.

From-SVN: r253284

6 years ago2017-09-29 Richard Biener <rguenther@suse.de>
Richard Biener [Fri, 29 Sep 2017 08:54:01 +0000 (08:54 +0000)]
2017-09-29  Richard Biener  <rguenther@suse.de>

* graphite-isl-ast-to-gimple.c
(translate_isl_ast_to_gimple::set_codegen_error): New function.
(binary_op_to_tree): Use it.
(get_rename_from_scev): Likewise.
(copy_loop_phi_nodes): Likewise.
(copy_bb_and_scalar_dependences): Likewise.
(translate_pending_phi_nodes): Likewise.

From-SVN: r253282

6 years agoparser.c (cp_parser_member_declaration): Parse attributes before colon of a bitfield...
Jakub Jelinek [Fri, 29 Sep 2017 07:49:15 +0000 (09:49 +0200)]
parser.c (cp_parser_member_declaration): Parse attributes before colon of a bitfield in addition to after colon.

cp/
* parser.c (cp_parser_member_declaration): Parse attributes before
colon of a bitfield in addition to after colon.
testsuite/
* g++.dg/ext/bitfield7.C: New test.
* g++.dg/ext/bitfield8.C: New test.
* g++.dg/ext/bitfield9.C: New test.

From-SVN: r253281

6 years agore PR c/82340 (volatile ignored in compound literal)
Jakub Jelinek [Fri, 29 Sep 2017 07:35:37 +0000 (09:35 +0200)]
re PR c/82340 (volatile ignored in compound literal)

PR c/82340
* c-decl.c (build_compound_literal): Use c_apply_type_quals_to_decl
instead of trying to set just TREE_READONLY manually.

* gcc.dg/tree-ssa/pr82340.c: New test.

From-SVN: r253280

6 years agore PR target/82339 (Inefficient movabs instruction)
Jakub Jelinek [Fri, 29 Sep 2017 07:20:09 +0000 (09:20 +0200)]
re PR target/82339 (Inefficient movabs instruction)

PR target/82339
* config/i386/i386.md (*movdi_internal peephole2): New -Os peephole
for movabsq $(i32 << shift), r64.

From-SVN: r253279

6 years ago* Make-lang.in (check-c++-all): Test also c++2a.
Jakub Jelinek [Fri, 29 Sep 2017 07:13:30 +0000 (09:13 +0200)]
* Make-lang.in (check-c++-all): Test also c++2a.

From-SVN: r253278

6 years ago* g++.dg/eh/uncaught3.C: Add -Wno-deprecated for c++17.
Jakub Jelinek [Fri, 29 Sep 2017 07:12:46 +0000 (09:12 +0200)]
* g++.dg/eh/uncaught3.C: Add -Wno-deprecated for c++17.

From-SVN: r253277

6 years agocrti-hw.S: Add watchdog vector, FT930 IRQ support.
James Bowman [Fri, 29 Sep 2017 01:01:52 +0000 (01:01 +0000)]
crti-hw.S: Add watchdog vector, FT930 IRQ support.

libgcc/
* config/ft32/crti-hw.S: Add watchdog vector, FT930
IRQ support.

From-SVN: r253276

6 years agore PR other/67165 (please enable libbacktrace to work with compressed debug sections)
Ian Lance Taylor [Fri, 29 Sep 2017 00:30:35 +0000 (00:30 +0000)]
re PR other/67165 (please enable libbacktrace to work with compressed debug sections)

PR other/67165
* elf.c (__builtin_prefetch): Define if not __GNUC__.
(unlikely): Define.
(SHF_UNCOMPRESSED, ELFCOMPRESS_ZLIB): Define.
(b_elf_chdr): Define type.
(enum debug_section): Add ZDEBUG_xxx values.
(debug_section_names): Add names for new sections.
(struct debug_section_info): Add compressed field.
(elf_zlib_failed, elf_zlib_fetch): New static functions.
(HUFFMAN_TABLE_SIZE, HUFFMAN_VALUE_MASK): Define.
(HUFFMAN_BITS_SHIFT, HUFFMAN_BITS_MASK): Define.
(HUFFMAN_SECONDARY_SHIFT): Define.
(ZDEBUG_TABLE_SIZE): Define.
(ZDEBUG_TABLE_CODELEN_OFFSET, ZDEBUG_TABLE_WORK_OFFSET): Define.
(final_next_secondary): New static variable if
BACKTRACE_GENERATE_FIXED_HUFFMAN_TABLE.
(elf_zlib_inflate_table): New static function.
(BACKTRACE_GENERATE_FIXED_HUFFMAN_TABLE): If define, define main
function to produce fixed Huffman table.
(elf_zlib_default_table): New static variable.
(elf_zlib_inflate): New static function.
(elf_zlib_verify_checksum): Likewise.
(elf_zlib_inflate_and_verify): Likewise.
(elf_uncompress_zdebug): Likewise.
(elf_uncompress_chdr): Likewise.
(backtrace_uncompress_zdebug): New extern function.
(elf_add): Look for .zdebug sections and SHF_COMPRESSED debug
sections, and uncompress them.
* internal.h (backtrace_compress_zdebug): Declare.
* ztest.c: New file.
* configure.ac: Check for -lz and check whether the linker
supports --compress-debug-sections.
* Makefile.am (ztest_SOURCES): New variable.
(ztest_CFLAGS, ztest_LDADD): New variables.
(check_PROGRAMS): Add ztest.
(ctestg_SOURCES): New variable.
(ctestg_CFLAGS, ctestg_LDFLAGS, ctestg_LDADD): New variables.
(ctesta_SOURCES): New variable.
(ctesta_CFLAGS, ctesta_LDFLAGS, ctesta_LDADD): New variables.
(check_PROGRAMS): Add ctestg and ctesta.
* configure, config.h.in, Makefile.in: Rebuild.

From-SVN: r253275

6 years agoDaily bump.
GCC Administrator [Fri, 29 Sep 2017 00:16:20 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r253274

6 years agore PR c++/79488 (ICE from lambda that has invalid return type)
Paolo Carlini [Thu, 28 Sep 2017 21:18:36 +0000 (21:18 +0000)]
re PR c++/79488 (ICE from lambda that has invalid return type)

2017-09-28  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/79488
* g++.dg/cpp0x/lambda/lambda-ice22.C: New.

From-SVN: r253270

6 years agoPR c++/56973, DR 696 - capture constant variables only as needed.
Jason Merrill [Thu, 28 Sep 2017 19:39:45 +0000 (15:39 -0400)]
PR c++/56973, DR 696 - capture constant variables only as needed.

* expr.c (mark_use): Split out from mark_rvalue_use and
mark_lvalue_use.  Handle lambda capture of constant variables.
(mark_lvalue_use_nonread): New.
* semantics.c (process_outer_var_ref): Don't capture a constant
variable until forced.
* pt.c (processing_nonlambda_template): New.
* call.c (build_this): Check it.
* decl2.c (grok_array_decl): Call mark_rvalue_use and
mark_lvalue_use_nonread.
* init.c (constant_value_1): Don't call mark_rvalue_use.
* typeck.c (build_static_cast): Handle lambda capture.

From-SVN: r253266

6 years agoUse local_specializations to find capture proxies.
Jason Merrill [Thu, 28 Sep 2017 19:39:38 +0000 (15:39 -0400)]
Use local_specializations to find capture proxies.

* cp-tree.h (DECL_CAPTURED_VARIABLE): New.
* lambda.c (build_capture_proxy): Set it.
(add_capture): Pass initializer to build_capture_proxy.
(start_lambda_function): Likewise.
(insert_capture_proxy): Use register_local_specialization.
(is_lambda_ignored_entity): Always ignore proxies.
* name-lookup.c (qualify_lookup): Don't check
is_lambda_ignored_entity if LOOKUP_HIDDEN is set.
* semantics.c (process_outer_var_ref): Use
retrieve_local_specialization.
* parser.c (cp_parser_lambda_body): Push local_specializations.
* pt.c (tsubst_expr): Pass LOOKUP_HIDDEN when looking for a proxy.
(tsubst_lambda_expr): Push local_specializations sooner.
(tsubst_copy_and_build): Don't register_local_specialization.

From-SVN: r253265

6 years agoSmall lambda fixes.
Jason Merrill [Thu, 28 Sep 2017 19:39:32 +0000 (15:39 -0400)]
Small lambda fixes.

* call.c (build_special_member_call): Use the return value of
mark_lvalue_use.
* decl.c (compute_array_index_type): Likewise.
* parser.c (cp_parser_oacc_wait_list): Likewise.
* lambda.c (is_normal_capture_proxy): Handle *this capture.
(add_capture): Clarify internal_error message.

From-SVN: r253264

6 years agoUse -Wno-deprecated for std::uncaught_exception tests.
Jason Merrill [Thu, 28 Sep 2017 18:36:58 +0000 (14:36 -0400)]
Use -Wno-deprecated for std::uncaught_exception tests.

* g++.dg/eh/uncaught1.C: Pass -Wno-deprecated.
* g++.dg/eh/uncaught2.C: Pass -Wno-deprecated.
* g++.dg/eh/uncaught4.C: Pass -Wno-deprecated.
* g++.old-deja/g++.mike/eh48.C: Pass -Wno-deprecated.

From-SVN: r253262

6 years agore PR target/82342 (i386/pr82260-2.c fail)
Jakub Jelinek [Thu, 28 Sep 2017 18:35:58 +0000 (20:35 +0200)]
re PR target/82342 (i386/pr82260-2.c fail)

PR target/82342
* gcc.target/i386/pr82260-1.c: Add -mno-bmi2 to dg-options.
* gcc.target/i386/pr82260-2.c: Likewise.

From-SVN: r253261

6 years agoi386.c (ix86_print_operand_address_as): Do not check index when encoding %esp as...
Uros Bizjak [Thu, 28 Sep 2017 18:14:27 +0000 (20:14 +0200)]
i386.c (ix86_print_operand_address_as): Do not check index when encoding %esp as %rsp to avoid 0x67 prefix.

* config/i386/i386.c (ix86_print_operand_address_as): Do not check
index when encoding %esp as %rsp to avoid 0x67 prefix.

From-SVN: r253260

6 years agoi386.md (*movsf_internal, [...]): Return 256-bit AVX modes for TARGET_PREFER_AVX256.
Sergey Shalnov [Thu, 28 Sep 2017 18:11:41 +0000 (20:11 +0200)]
i386.md (*movsf_internal, [...]): Return 256-bit AVX modes for TARGET_PREFER_AVX256.

gcc/
        * config/i386/i386.md (*movsf_internal, *movdf_internal):
        Return 256-bit AVX modes for TARGET_PREFER_AVX256.

gcc/testsuite/
        * gcc.target/i386/avx512f-constant-float-return.c: New test.

From-SVN: r253259

6 years ago[ARM] Some tests require arm_neon_hw
Christophe Lyon [Thu, 28 Sep 2017 18:00:42 +0000 (18:00 +0000)]
[ARM] Some tests require arm_neon_hw

2017-09-28  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/arm/aapcs/align4.c: Require arm_neon_hw effective target.
* gcc.target/arm/aapcs/align_rec4.c: Likewise.
* gcc.target/arm/aapcs/neon-vect1.c: Likewise.
* gcc.target/arm/aapcs/neon-vect2.c: Likewise.
* gcc.target/arm/aapcs/neon-vect3.c: Likewise.
* gcc.target/arm/aapcs/neon-vect4.c: Likewise.
* gcc.target/arm/aapcs/neon-vect5.c: Likewise.
* gcc.target/arm/aapcs/neon-vect6.c: Likewise.
* gcc.target/arm/aapcs/neon-vect7.c: Likewise.
* gcc.target/arm/aapcs/neon-vect8.c: Likewise.

From-SVN: r253258

6 years agojit: document function pointers
David Malcolm [Thu, 28 Sep 2017 17:12:19 +0000 (17:12 +0000)]
jit: document function pointers

gcc/jit/ChangeLog:
* docs/topics/expressions.rst (Function calls): Add link to
gcc_jit_context_new_function_ptr_type.
(Function pointers): Convert to cross-references to
function-pointers.rst, moving material there.
* docs/topics/function-pointers.rst: New page.
* docs/topics/index.rst: Add function-pointers.rst.
* docs/topics/types.rst (Function pointer types): New section.
* docs/_build/texinfo/libgccjit.texi: Regenerate.

From-SVN: r253257

6 years ago[ARM] Remove ARMv8-M code for D17-D31
Thomas Preud'homme [Thu, 28 Sep 2017 16:13:01 +0000 (16:13 +0000)]
[ARM] Remove ARMv8-M code for D17-D31

Function cmse_nonsecure_entry_clear_before_return has code to deal with
high VFP register (D16-D31) while ARMv8-M Baseline and Mainline both do
not support more than 16 double VFP registers (D0-D15). This makes this
security-sensitive code harder to read for not much benefit since
libcall for cmse_nonsecure_call functions do not deal with those high
VFP registers anyway.

This commit gets rid of this code for simplicity and fixes 2 issues in
the same function:

- stop the first loop when reaching maxregno to avoid dealing with VFP
  registers if targetting Thumb-1 or using -mfloat-abi=soft
- include maxregno in that loop

2017-09-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    * config/arm/arm.c (arm_option_override): Forbid ARMv8-M Security
    Extensions with more than 16 double VFP registers.
    (cmse_nonsecure_entry_clear_before_return): Remove second entry of
    to_clear_mask and all code related to it.  Replace the remaining
    entry by a sbitmap and adapt code accordingly.

From-SVN: r253256

6 years agojit: handle equality of function pointer types
David Malcolm [Thu, 28 Sep 2017 16:00:57 +0000 (16:00 +0000)]
jit: handle equality of function pointer types

gcc/jit/ChangeLog:
* jit-recording.c
(gcc::jit::recording::function_type::is_same_type_as): New function.
* jit-recording.h: In namespace gcc::jit::recording::
(type::accepts_writes_from): Use is_same_type_as rather than pointer
equality.
(type::is_same_type_as): New virtual function.
(function_type::is_same_type_as): New override.

gcc/testsuite/ChangeLog:
* jit.dg/test-error-mismatching-types-in-assignment-fn-ptr.c: New
test case.
* jit.dg/test-returning-function-ptr.c (create_code): Update to
create a function pointer type independently of the call to
gcc_jit_function_get_address, and assign the pointer to a local
before returning it, to exercise the function pointer type
comparison code.

From-SVN: r253255