]> git.ipfire.org Git - thirdparty/gcc.git/log
thirdparty/gcc.git
5 years agofix PR89864
iains [Thu, 18 Apr 2019 06:53:21 +0000 (06:53 +0000)] 
fix PR89864

      2019-04-18  Erik Schnetter  <schnetter@gmail.com>
  Jakub Jelinek  <jakub@redhat.com>
  Iain Sandoe  <iain@sandoe.co.uk>

PR bootstrap/89864
* inclhack.def (darwin_ucred__Atomic): New, work around _Atomic keyword
use in headers included by C++.
* fixincl.x: Regenerated.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270435 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR go/90110
ian [Thu, 18 Apr 2019 04:11:22 +0000 (04:11 +0000)] 
PR go/90110
    compiler: use temporary to avoid early destruction

    The code was passing a substr directly to strtol, and then checking
    the *end value returned by strtol.  But the substr could be destroyed
    as soon as strtol returns, making the test of *end invalid.

    Also fix an incorrect test of the string index rather than the value.

    Fixes https://gcc.gnu.org/PR90110

    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/172663

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270434 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR c++/90047 - ICE with enable_if alias template.
jason [Thu, 18 Apr 2019 03:32:24 +0000 (03:32 +0000)] 
PR c++/90047 - ICE with enable_if alias template.

In order to make alias templates useful for SFINAE we instantiate them under
the prevailing 'complain' argument, so an error encountered while
instantiating during SFINAE context is silent.  The problem in this PR comes
when we later look up the erroneous instantiation and don't give an error at
that point.  Fixed by not adding an erroneous instantiation to the hash
table, so we instantiate it again when needed and get the error.  This
required changes to a number of tests, which previously said "substitution
failed:" with no explanation of what the failure was; now we properly
explain.

* pt.c (tsubst_decl) [TYPE_DECL]: Don't put an erroneous decl in the
hash table when we're in SFINAE context.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270433 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoDaily bump.
gccadmin [Thu, 18 Apr 2019 00:16:20 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270430 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoPR libstdc++/90105 make forward_list::sort stable
redi [Wed, 17 Apr 2019 21:47:20 +0000 (21:47 +0000)] 
PR libstdc++/90105 make forward_list::sort stable

While testing the fix I also discovered that operator== assumes the
elements are comparable with operator!= which is not required.

PR libstdc++/90105
* include/bits/forward_list.h (operator==): Do not use operator!= to
compare elements.
(forward_list<T, A>::sort(Comp)): When elements are equal take the one
earlier in the list, so that sort is stable.
* testsuite/23_containers/forward_list/operations/90105.cc: New test.
* testsuite/23_containers/forward_list/comparable.cc: Test with
types that meet the minimum EqualityComparable and LessThanComparable
requirements. Remove irrelevant comment.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270427 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agors6000: Remove a comma in a debug string
segher [Wed, 17 Apr 2019 21:11:00 +0000 (21:11 +0000)] 
rs6000: Remove a comma in a debug string

It is a bit confusing, it looks as if the compiler tried to print
something there.

* config/rs6000/rs6000.c (rs6000_register_move_cost): Fix typo.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270426 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoFix condition for std::variant to be copy constructible
redi [Wed, 17 Apr 2019 19:27:27 +0000 (19:27 +0000)] 
Fix condition for std::variant to be copy constructible

The standard says the std::variant copy constructor is defined as
deleted unless all alternative types are copy constructible, but we were
making it also depend on move constructible. Fix the condition and
enhance the tests to check the semantics with pathological copy-only
types (i.e. supporting copying but having deleted moves).

The enhanced tests revealed a regression in copy assignment for
non-trivial alternative types, where the assignment would not be
performed because the condition in the _Copy_assign_base visitor is
false: is_same_v<remove_reference_t<T&>, remove_reference_t<const T&>>.

* include/std/variant (__detail::__variant::_Traits::_S_copy_assign):
Do not depend on whether all alternative types are move constructible.
(__detail::__variant::_Copy_assign_base::operator=): Remove cv-quals
from the operand when deciding whether to perform the assignment.
* testsuite/20_util/variant/compile.cc (DeletedMoves): Define type
with deleted move constructor and deleted move assignment operator.
(default_ctor, copy_ctor, move_ctor, copy_assign, move_assign): Check
behaviour of variants with DeletedMoves as an alternative.
* testsuite/20_util/variant/run.cc (DeletedMoves): Define same type.
(move_ctor, move_assign): Check that moving a variant with a
DeletedMoves alternative falls back to copying instead of moving.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270425 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoRemove unnecessary string literals from static_assert in C++17 tests
redi [Wed, 17 Apr 2019 19:27:23 +0000 (19:27 +0000)] 
Remove unnecessary string literals from static_assert in C++17 tests

The string literal is optional in C++17 and all these are empty so add
no value.

* testsuite/20_util/variant/compile.cc: Remove empty string literals
from static_assert declarations.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270424 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoFix tests for std::variant to match original intention
redi [Wed, 17 Apr 2019 19:27:19 +0000 (19:27 +0000)] 
Fix tests for std::variant to match original intention

* testsuite/20_util/variant/compile.cc (MoveCtorOnly): Fix type to
actually match its name.
(MoveCtorAndSwapOnly): Define new type that adds swap to MoveCtorOnly.
(test_swap()): Fix result for MoveCtorOnly and check
MoveCtorAndSwapOnly.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270423 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR c++/89325
jakub [Wed, 17 Apr 2019 19:24:55 +0000 (19:24 +0000)] 
PR c++/89325
* g++.dg/ext/attrib58.C: New test.
* g++.dg/ext/attrib59.C: New test.
* g++.dg/ext/attrib60.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270422 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR target/90125
jakub [Wed, 17 Apr 2019 19:23:45 +0000 (19:23 +0000)] 
PR target/90125
* config/i386/avx512fintrin.h (_mm_maskz_fmadd_round_sd,
_mm_maskz_fmadd_round_ss, _mm_maskz_fmsub_round_sd,
_mm_maskz_fmsub_round_ss, _mm_maskz_fnmadd_round_sd,
_mm_maskz_fnmadd_round_ss, _mm_maskz_fnmsub_round_sd,
_mm_maskz_fnmsub_round_ss): Use _maskz builtin instead of _mask3.

PR target/90125
* gcc.target/i386/avx512f-vfmsubXXXss-2.c (avx512f_test): Adjust
constants to ensure precise result even when not using fma.
* gcc.target/i386/avx512f-vfnmaddXXXss-2.c (avx512f_test): Likewise.
* gcc.target/i386/avx512f-vfmaddXXXsd-3.c: New test.
* gcc.target/i386/avx512f-vfmaddXXXss-3.c: New test.
* gcc.target/i386/avx512f-vfmsubXXXsd-3.c: New test.
* gcc.target/i386/avx512f-vfmsubXXXss-3.c: New test.
* gcc.target/i386/avx512f-vfnmaddXXXsd-3.c: New test.
* gcc.target/i386/avx512f-vfnmaddXXXss-3.c: New test.
* gcc.target/i386/avx512f-vfnmsubXXXsd-3.c: New test.
* gcc.target/i386/avx512f-vfnmsubXXXss-3.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270421 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agogcc/
bergner [Wed, 17 Apr 2019 19:22:15 +0000 (19:22 +0000)] 
gcc/
* ira-conflicts.c (print_allocno_conflicts): Always print something,
even for allocno's with no conflicts.
(print_conflicts): Print an extra newline.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270420 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoauto-inc-dec: Set alignment properly
segher [Wed, 17 Apr 2019 18:49:50 +0000 (18:49 +0000)] 
auto-inc-dec: Set alignment properly

When auto-inc-dec creates a new mem to compute the cost of doing some
transform, it forgets to copy over the alignment of the original mem.
This gives wrong costs, for example, for rs6000 a floating point load
or store is hugely expensive if unaligned.  This patch fixes it.

* auto-inc-dec.c (attempt_change): Set the alignment of the
temporary memory to that of the original.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270419 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR c++/90124 - bogus error with incomplete type in decltype.
mpolacek [Wed, 17 Apr 2019 18:26:42 +0000 (18:26 +0000)] 
PR c++/90124 - bogus error with incomplete type in decltype.
* typeck.c (build_class_member_access_expr): Check
cp_unevaluated_operand.

* g++.dg/cpp0x/decltype70.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270418 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago * targhooks.c (default_print_patchable_function_entry): Emit
law [Wed, 17 Apr 2019 18:24:23 +0000 (18:24 +0000)] 
* targhooks.c (default_print_patchable_function_entry): Emit
__patchable_function_entries section with writable flags to allow
relocation resolution.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270417 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago * collect2.c (main): Change gcc.gnu.org URL to HTTPS.
law [Wed, 17 Apr 2019 18:11:06 +0000 (18:11 +0000)] 
    * collect2.c (main): Change gcc.gnu.org URL to HTTPS.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270416 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago * dg-extract-results.sh: Only handle WARNING: program timed out
jakub [Wed, 17 Apr 2019 17:57:02 +0000 (17:57 +0000)] 
* dg-extract-results.sh: Only handle WARNING: program timed out
lines specially in "$MODE" == "sum".  Restore previous behavior
for "$MODE" != "sum".  Clear has_timeout and timeout_cnt if in
a different variant or curfile is empty.
* dg-extract-results.py: Fix a typo.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270415 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR middle-end/90095
jakub [Wed, 17 Apr 2019 13:28:39 +0000 (13:28 +0000)] 
PR middle-end/90095
* internal-fn.c (expand_mul_overflow): Don't set SUBREG_PROMOTED_VAR_P
on lowpart SUBREGs.

* gcc.dg/pr90095-1.c: New test.
* gcc.dg/pr90095-2.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270410 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoAdd constexpr to std::optional::value_or(U&&)&&
redi [Wed, 17 Apr 2019 13:13:30 +0000 (13:13 +0000)] 
Add constexpr to std::optional::value_or(U&&)&&

In C++1z drafts up to N4606 the constexpr keyword was missing from the
detailed description of this function, despite being shown in the class
synopsis.  That was fixed editorially for N4618, but our implementation
was not corrected to match.

* include/std/optional (optional::value_or(U&&) &&): Add missing
constexpr specifier.
* testsuite/20_util/optional/constexpr/observers/4.cc: Check value_or
for disengaged optionals and rvalue optionals.
* testsuite/20_util/optional/observers/4.cc: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270409 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago[ARC][COMMITTED] Fix diagnostic messages.
claziss [Wed, 17 Apr 2019 11:09:59 +0000 (11:09 +0000)] 
[ARC][COMMITTED] Fix diagnostic messages.

Apply upper/dot rule on diagnostic messages.

gcc/
xxxx-xx-xx  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc.c (arc_init): Format diagnostic string.
(arc_override_options): Likewise.
(check_if_valid_regno_const): Likewise.
(arc_reorg): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270408 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agors6000: Improve the load/store-with-update patterns (PR17108)
segher [Wed, 17 Apr 2019 09:45:57 +0000 (09:45 +0000)] 
rs6000: Improve the load/store-with-update patterns (PR17108)

Many of these patterns only worked in 32-bit mode, and some only worked
in 64-bit mode.  This patch makes these use Pmode, fixing the PR.  On
the other hand, the stack updates have to use the same mode for the
stack pointer as for the value stored, so let's simplify that a bit.

Many of these patterns pass the wrong mode to
avoiding_indexed_address_p (it should be the mode of the datum
accessed, not the mode of the pointer).

Finally, I merge some patterns into one (using iterators).

PR target/17108
* config/rs6000/rs6000.c (rs6000_split_multireg_move): Adjust pattern
name.
(rs6000_emit_allocate_stack_1): Simplify condition.  Adjust pattern
name.
* config/rs6000/rs6000.md (bits): Add entries for SF and DF.
(*movdi_update1): Use Pmode.
(movdi_<mode>_update): Fix argument to avoiding_indexed_address_p.
(movdi_<mode>_update_stack): Rename to ...
(movdi_update_stack): ... this.  Fix comment.  Change condition. Don't
use Pmode.
(*movsi_update1): Use Pmode.
(*movsi_update2): Use Pmode.
(movsi_update): Rename to ...
(movsi_<mode>_update): ... this.  Use Pmode.
(movsi_update_stack): Fix condition.
(*movhi_update1): Use Pmode.  Fix argument to
avoiding_indexed_address_p.
(*movhi_update2): Ditto.
(*movhi_update3): Ditto.
(*movhi_update4): Ditto.
(*movqi_update1): Ditto.
(*movqi_update2): Ditto.
(*movqi_update3): Ditto.
(*movsf_update1, *movdf_update1): Merge, rename to...
(*mov<mode>_update1): This.  Use Pmode.  Fix argument to
avoiding_indexed_address_p.  Add "size" attribute.
(*movsf_update2, *movdf_update2): Merge, rename to...
(*mov<mode>_update2): This.  Ditto.
(*movsf_update3): Use Pmode.  Fix argument to
avoiding_indexed_address_p.
(*movsf_update4): Ditto.
(allocate_stack): Simplify condition.  Adjust pattern names.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270407 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago[PR90048] Fortran OpenACC 'private' clause rejected for predetermined private loop...
tschwinge [Wed, 17 Apr 2019 08:34:20 +0000 (08:34 +0000)] 
[PR90048] Fortran OpenACC 'private' clause rejected for predetermined private loop iteration variable

gcc/fortran/
PR fortran/90048
* openmp.c (gfc_resolve_do_iterator): Handle sharing_clauses for
OpenACC, too.
(gfc_resolve_oacc_blocks): Populate sharing_clauses with private
clauses.
gcc/testsuite/
PR fortran/90048
* gfortran.dg/goacc/private-explicit-kernels-1.f95: New file.
* gfortran.dg/goacc/private-explicit-parallel-1.f95: Likewise.
* gfortran.dg/goacc/private-explicit-routine-1.f95: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270406 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago[PR90067, PR90114] Document Fortran OpenACC predetermined private status quo
tschwinge [Wed, 17 Apr 2019 08:34:10 +0000 (08:34 +0000)] 
[PR90067, PR90114] Document Fortran OpenACC predetermined private status quo

gcc/testsuite/
PR fortran/90067
PR fortran/90114
* gfortran.dg/goacc/private-1.f95: Remove file.
* gfortran.dg/goacc/private-2.f95: Likewise.
* gfortran.dg/goacc/private-predetermined-kernels-1.f95: New file.
* gfortran.dg/goacc/private-predetermined-parallel-1.f95:
Likewise.
* gfortran.dg/goacc/private-predetermined-routine-1.f95: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270405 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR target/89093
jakub [Wed, 17 Apr 2019 08:30:44 +0000 (08:30 +0000)] 
PR target/89093
* config/arm/arm.c (arm_valid_target_attribute_rec): Don't skip
whitespace at the start of target attribute string.

* gcc.target/arm/pr89093-2.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270404 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agod: Fix the build on hosts missing _MAX and _MAX macros.
ibuclaw [Wed, 17 Apr 2019 06:02:01 +0000 (06:02 +0000)] 
d: Fix the build on hosts missing _MAX and _MAX macros.

gcc/d/ChangeLog:

2019-04-17  Iain Buclaw  <ibuclaw@gdcproject.org>

* d-system.h (POSIX): Define unix as POSIX.
(INT32_MAX, INT32_MIN, INT64_MIN, UINT32_MAX, UINT64_MAX): Provide
fallback definitions.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270403 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoDaily bump.
gccadmin [Wed, 17 Apr 2019 00:16:11 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270401 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agod: Use build_exeext suffix for D generator programs.
ibuclaw [Tue, 16 Apr 2019 21:16:43 +0000 (21:16 +0000)] 
d: Use build_exeext suffix for D generator programs.

Updated build and invocation of idgen and impcnvgen, ensuring that they
are removed when cleaning the build directory.

Added BUILD_LIBDEPS on the link command for the generator programs as
well, which is necessary when the system installed compiler is not GCC.

gcc/d/ChangeLog:

2019-04-16  Iain Buclaw  <ibuclaw@gdcproject.org>

* Make-lang.in (d.mostyclean): Clean idgen and impcnvgen.
(d/idgen): Rename to d/idgen$(build_exeext), add BUILD_LIBDEPS.
(d/impcnvgen): Rename to d/impcnvgen$(build_exeext), add
BUILD_LIBDEPS.
(d/id.c): Call idgen$(build_exeext).
(d/impcnvtab.c): Call impcnvgen$(build_exeext).

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270397 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR c++/86953
jakub [Tue, 16 Apr 2019 19:06:41 +0000 (19:06 +0000)] 
PR c++/86953
* g++.dg/cpp0x/constexpr-86953.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270396 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR target/84369
pthaugen [Tue, 16 Apr 2019 15:58:02 +0000 (15:58 +0000)] 
PR target/84369
* config/rs6000/power9.md: Add store forwarding bypass.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270394 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoFilter out LTO in config/bootstrap-lto-lean.mk.
marxin [Tue, 16 Apr 2019 15:24:53 +0000 (15:24 +0000)] 
Filter out LTO in config/bootstrap-lto-lean.mk.

2019-04-16  Martin Liska  <mliska@suse.cz>

* bootstrap-lto-lean.mk: Filter out -flto in STAGEtrain_CFLAGS.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270393 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago2019-04-16 Dominique d'Humieres <dominiq@gcc.gnu.org>
dominiq [Tue, 16 Apr 2019 13:24:58 +0000 (13:24 +0000)] 
2019-04-16  Dominique d'Humieres  <dominiq@gcc.gnu.org>

* g++.dg/lto/pr89358_0.C: Replace dg-* with dg-lto-*.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270390 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago[PR89528] reset debug uses of return value when dropping dead RTL call
aoliva [Tue, 16 Apr 2019 12:44:57 +0000 (12:44 +0000)] 
[PR89528] reset debug uses of return value when dropping dead RTL call

When we remove an RTL call, we wouldn't clean up references to the
return value of the call in debug insns.  Make it so that we do.

for  gcc/ChangeLog

PR debug/89528
* valtrack.c (dead_debug_insert_temp): Reset debug references
to the return value of a call being removed.

for  gcc/testsuite/ChangeLog

PR debug/89528
* gcc.dg/guality/pr89528.c: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270389 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago[PR86438] avoid too-long shift in test
aoliva [Tue, 16 Apr 2019 12:44:46 +0000 (12:44 +0000)] 
[PR86438] avoid too-long shift in test

The test fell back to long long and long when __int128 is not
available, but it assumed sizeof(long) < sizeof(long long) because of
a shift count that would be out of range for a long long if their
widths are the same.  Fixed by splitting it up into two shifts.

for  gcc/testsuite/ChangeLog

PR rtl-optimization/86438
* gcc.dg/torture/pr86438.c: Split up too-wide shift.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270388 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago[ARC] Refactor deprecated macros.
claziss [Tue, 16 Apr 2019 10:21:15 +0000 (10:21 +0000)] 
[ARC] Refactor deprecated macros.

xxxx-xx-xx  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc-protos.h (arc_register_move_cost): Remove.
* config/arc/arc.c (arc_register_move_cost): Re-purpose it to
implement target hook.
(arc_memory_move_cost): New function.
(TARGET_REGISTER_MOVE_COST): Define.
(TARGET_MEMORY_MOVE_COST): Likewise.
* config/arc/arc.h (REGISTER_MOVE_COST): Remove.
(MEMORY_MOVE_COST): Likewise.

fix

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270387 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago[ARC] Remove Rs5 constraint.
claziss [Tue, 16 Apr 2019 10:21:03 +0000 (10:21 +0000)] 
[ARC] Remove Rs5 constraint.

New LRA algorithms require the all the register constraints to be
defined using define_register_constraint keyword. However, Rs5
constraint was not LRA proof. Remove it and replace it by equivalent
Rcd constraint.

gcc/
xxxx-xx-xx  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc.md (sibcall_insn): Use Rcd constraint.
(sibcall_value_insn): Likewise.
* config/arc/constraints.md (Rs5): Remove.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270386 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago[ARC] Refurb eliminate regs.
claziss [Tue, 16 Apr 2019 10:20:52 +0000 (10:20 +0000)] 
[ARC] Refurb eliminate regs.

gcc/
xxxx-xx-xx  Claudiu Zissulescu  <claziss@synopsys.com>

        * config/arc/arc.c (arc_hard_regno_modes): Add two missing modes
        for last two fake registers.
        (arc_conditional_register_usage): Make sure fake frame and arg
        pointer regs are in general regs class.
        (FRAME_POINTER_MASK): Remove.
        (RETURN_ADDR_MASK): Remove.
        (arc_must_save_register): Use hard frame regnum.
        (frame_restore_reg): Use hard_frame_pointer_rtx.
        (arc_save_callee_saves): Likewise.
        (arc_restore_callee_saves): Likewise.
        (arc_save_callee_enter): Likewise.
        (arc_restore_callee_leave): Likewise.
        (arc_save_callee_milli): Likewise.
        (arc_eh_return_address_location): Likewise.
        (arc_check_multi): Use hard frame regnum.
        (arc_can_eliminate): Likewise.
        * config/arc/arc.h (FIXED_REGISTERS): Make FP register available
        for register allocator.
        (REG_CLASS_CONTENTS): Update GENERAL_REGS.
        (REGNO_OK_FOR_BASE_P): Consider FRAME_POINTER_REGNUM.
        (FRAME_POINTER_REGNUM): Change it to a fake register.
        (HARD_FRAME_POINTER_REGNUM): Defined.
        (ARG_POINTER_REGNUM): Change it to a new fake register.
        (ELIMINABLE_REGS): Update.
        (REGISTER_NAMES): Update names.
        * config/arc/arc.md (LP_START): Remove.
        (LP_END): Likewise.
        (shift_si3_loop): Update pattern.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270385 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago[ARC] Emit blockage regardless to avoid delay slot scheduling.
claziss [Tue, 16 Apr 2019 10:20:40 +0000 (10:20 +0000)] 
[ARC] Emit blockage regardless to avoid delay slot scheduling.

1.The delay slot scheduler can reschedule some of the frame related
instructions resulting in having incorect CFI information. This patch
introduces a schedule blockage to avoid this problem.

2.There are cases when an interrupt may happen and not all the current
function stack operations are done, which may result in stack
corruption. Such an example is accessing an returning a local
structure members, which members are allocated on stack. The stack
adjustment and the accessing of the struct member can be reorder as
they may not use both the SP register for the access.

3.Also, do not save/restore SP when in interrupt. The SP is switch by
the core IRQ machinery.

gcc/
xxxx-xx-xx  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc.c (arc_expand_prologue): Emit blockage regardless
to avoid delay slot scheduling.
(arc_must_save_register): Don't save SP.
* config/arc/arc.md (stack_tie): Remove.
(UNSPEC_ARC_STKTIE): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270384 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago[NDS32] Fix nds32_split_ashiftdi3 with large shift amount.
jasonwucj [Tue, 16 Apr 2019 09:27:31 +0000 (09:27 +0000)] 
[NDS32] Fix nds32_split_ashiftdi3 with large shift amount.

gcc/
* config/nds32/nds32-md-auxiliary.c (nds32_split_ashiftdi3): Fix wrong
code gen with large shift amount.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270383 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago[NDS32] Handle subreg correctly in wext_odd_dep_p.
jasonwucj [Tue, 16 Apr 2019 09:22:26 +0000 (09:22 +0000)] 
[NDS32] Handle subreg correctly in wext_odd_dep_p.

gcc/
* config/nds32/nds32-pipelines-auxiliary.c (wext_odd_dep_p): Handle
subreg.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270382 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR target/90096
jakub [Tue, 16 Apr 2019 08:40:58 +0000 (08:40 +0000)] 
PR target/90096
* config/i386/i386.c (ix86_target_string): Add ADD_ABI_P argument, only
print -m64/-mx32/-m32 if it is true.
(ix86_debug_options, ix86_function_specific_print): Pass true as
ADD_ABI_P to ix86_target_string.
(ix86_expand_builtin): Adjust ix86_target_string caller, pass true as
ADD_ABI_P only if OPTION_MASK_ISA_64BIT is set in bisa and in that case
or into it OPTION_MASK_ISA_ABI_64 or OPTION_MASK_ISA_ABI_X32.

* gcc.target/i386/pr90096.c: New test.
* gcc.target/i386/pr69255-1.c: Adjust expected diagnostics.
* gcc.target/i386/pr69255-2.c: Likewise.
* gcc.target/i386/pr69255-3.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270381 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR rtl-optimization/90082
jakub [Tue, 16 Apr 2019 08:26:26 +0000 (08:26 +0000)] 
PR rtl-optimization/90082
* dce.c (can_delete_call): New function.
(deletable_insn_p, mark_insn): Use it.

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270380 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR tree-optimization/90090
jakub [Tue, 16 Apr 2019 08:24:47 +0000 (08:24 +0000)] 
PR tree-optimization/90090
* tree-ssa-math-opts.c (is_division_by): Ignore divisions that can
throw internally.
(is_division_by_square): Likewise.  Formatting fix.

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270379 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago2019-04-16 Richard Biener <rguenther@suse.de>
rguenth [Tue, 16 Apr 2019 07:55:41 +0000 (07:55 +0000)] 
2019-04-16  Richard Biener  <rguenther@suse.de>

PR tree-optimization/56049
* tree-ssa-loop-im.c (mem_ref_hasher::equal): Elide alias-set
equality check if alias-set zero will prevail.

* gfortran.dg/pr56049.f90: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270378 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agolibphobos: Fix configure test for backtrace-supported.h
ibuclaw [Tue, 16 Apr 2019 05:58:25 +0000 (05:58 +0000)] 
libphobos: Fix configure test for backtrace-supported.h

libphobos/ChangeLog:

2019-04-16  Iain Buclaw  <ibuclaw@gdcproject.org>

* config.h.in: Regenerate.
* configure: Regenerate.
* m4/druntime/libraries.m4 (DRUNTIME_LIBRARIES_BACKTRACE): Set
CPPFLAGS correctly for backtrace support test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270377 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoDaily bump.
gccadmin [Tue, 16 Apr 2019 00:16:12 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270376 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago * config/microblaze/microblaze.c (microblaze_expand_block_move): Treat
law [Mon, 15 Apr 2019 21:19:21 +0000 (21:19 +0000)] 
* config/microblaze/microblaze.c (microblaze_expand_block_move): Treat
size and alignment as unsigned.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270373 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR d/90059
ibuclaw [Mon, 15 Apr 2019 20:32:50 +0000 (20:32 +0000)] 
PR d/90059
PR d/90060
PR d/90062
libphobos: Merge upstream druntime 70b9fea6

Backports fixes in the extern(C) bindings for the Solaris/SPARC port.

Initial patch by Rainer Orth.

Reviewed-on: https://github.com/dlang/druntime/pull/2555

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270372 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago2019-04-15 Richard Biener <rguenther@suse.de>
rguenth [Mon, 15 Apr 2019 12:26:11 +0000 (12:26 +0000)] 
2019-04-15  Richard Biener  <rguenther@suse.de>

PR debug/90074
* tree-loop-distribution.c (destroy_loop): Preserve correct
debug info.

* gcc.dg/guality/pr90074.c: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270370 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago2019-04-15 Richard Biener <rguenther@suse.de>
rguenth [Mon, 15 Apr 2019 11:59:02 +0000 (11:59 +0000)] 
2019-04-15  Richard Biener  <rguenther@suse.de>

PR tree-optimization/90071
* tree-ssa-reassoc.c (init_range_entry): Do not pick up
abnormal operands from def stmts.

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270369 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agocombine: Count auto_inc properly (PR89794)
segher [Mon, 15 Apr 2019 11:33:29 +0000 (11:33 +0000)] 
combine: Count auto_inc properly (PR89794)

The code that checks if an auto-increment from i0 or i1 is not lost is
a bit shaky.  The code to check the same for i2 is non-existent, and
cannot be implemented in a similar way at all.  So, this patch counts
all auto-increments, and makes sure we end up with the same number as
we started with.  This works because we still have a check that we
will not duplicate any.

We should do this some better way, but not while we are in stage 4.

PR rtl-optimization/89794
* combine.c (count_auto_inc): New function.
(try_combine): Count how many auto_inc expressions there were in the
original instructions.  Ensure we have the same number in the new
instructions.  Remove the code that tried to ensure auto_inc side
effects on i1 and i0 are not lost.

gcc/testsuite/
PR rtl-optimization/89794
* gcc.dg/torture/pr89794.c: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270368 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago2019-04-15 Richard Biener <rguenther@suse.de>
rguenth [Mon, 15 Apr 2019 10:09:08 +0000 (10:09 +0000)] 
2019-04-15  Richard Biener  <rguenther@suse.de>

PR ipa/88936
* tree.h (auto_var_p): Declare.
* tree.c (auto_var_p): New function, split out from ...
(auto_var_in_fn_p): ... here.
* tree-ssa-structalias.c (struct variable_info): Add shadow_var_uid
member.
(new_var_info): Initialize it.
(set_uids_in_ptset): Also set the shadow variable uid if required.
(ipa_pta_execute): Postprocess points-to solutions assigning
shadow variable uids for locals that may reach their containing
function recursively.
* tree-ssa-ccp.c (fold_builtin_alloca_with_align): Do not
assert but instead check whether the points-to solution is
a singleton.

* gcc.dg/torture/pr88936-1.c: New testcase.
* gcc.dg/torture/pr88936-2.c: Likewise.
* gcc.dg/torture/pr88936-3.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270366 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoReorganize cgraph_node::clone_of_p
jamborm [Mon, 15 Apr 2019 08:30:36 +0000 (08:30 +0000)] 
Reorganize cgraph_node::clone_of_p

2019-04-15  Martin Jambor  <mjambor@suse.cz>

PR ipa/pr89693
* cgraph.c (clone_of_p): Loop over clone chain for each step in
the thunk chain.

testsuite/
* g++.dg/ipa/pr89693.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270364 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago[NDS32] Refine force unwind. Linux kernel only uses RT_SIGRETURN.
jasonwucj [Mon, 15 Apr 2019 08:19:23 +0000 (08:19 +0000)] 
[NDS32] Refine force unwind. Linux kernel only uses RT_SIGRETURN.

libgcc/
* config/nds32/linux-unwind.h (SIGRETURN): Remove.
(RT_SIGRETURN): Update.
(nds32_fallback_frame_state): Update.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270363 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago[NDS32] nds32*-*-linux* target using init_array/finit_array for ctor/dtor.
jasonwucj [Mon, 15 Apr 2019 08:05:03 +0000 (08:05 +0000)] 
[NDS32] nds32*-*-linux* target using init_array/finit_array for ctor/dtor.

gcc/
* config.gcc (nds32*-*-linux*): Set gcc_cv_initfini_array to yes.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270362 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago[NDS32] Rewrite PIC/TLS patterns.
jasonwucj [Mon, 15 Apr 2019 07:59:01 +0000 (07:59 +0000)] 
[NDS32] Rewrite PIC/TLS patterns.

gcc/
* config/nds32/nds32-md-auxiliary.c
(nds32_legitimize_pic_address): Use new PIC pattern.
(nds32_legitimize_tls_address): Use new TLS pattern.
(nds32_output_symrel): New.
* config/nds32/nds32-protos.h (nds32_output_symrel): Declare.
(nds32_alloc_relax_group_id): Ditto.
* config/nds32/nds32-relax-opt.c (nds32_alloc_relax_group_id): New.
(nds32_group_insns): Use nds32_alloc_relax_group_id instead of use
relax_group_id.
(nds32_group_tls_insn): Ditto.
(nds32_group_float_insns): Ditto.
* config/nds32/nds32.md (tls_le): New.
(sym_got): Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270361 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago2019-04-15 Dominique d'Humieres <dominiq@gcc.gnu.org>
dominiq [Mon, 15 Apr 2019 07:56:43 +0000 (07:56 +0000)] 
2019-04-15  Dominique d'Humieres  <dominiq@gcc.gnu.org>

PR tree-optimization/90020
* gcc.dg/torture/pr90020.c: Add linker options for darwin.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270360 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago[NDS32] Provide one valid nds32 assembly instruction to check assembler debugging...
jasonwucj [Mon, 15 Apr 2019 07:39:20 +0000 (07:39 +0000)] 
[NDS32] Provide one valid nds32 assembly instruction to check assembler debugging options and features.

gcc/
* configure: Add nds32 target for dwarf2 debug_line checking.
* configure.ac: Regenerated.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270359 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoDaily bump.
gccadmin [Mon, 15 Apr 2019 00:16:17 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270358 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR lto/89358
hubicka [Sun, 14 Apr 2019 20:56:45 +0000 (20:56 +0000)] 
PR lto/89358
* g++.dg/lto/pr89358_0.C: New testcase.
* g++.dg/lto/pr89358_1.C: New testcase.
* ipa-devirt.c (skip_in_fields_list_p): New.
(odr_types_equivalent_p): Use it.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270355 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago2019-04-14 Thomas Koenig <tkoenig@gcc.gnu.org>
tkoenig [Sun, 14 Apr 2019 20:15:48 +0000 (20:15 +0000)] 
2019-04-14  Thomas Koenig  <tkoenig@gcc.gnu.org>

    PR fortran/85448
    * gfortran.dg/bind_c_usage_33.f90: New test and...
    * gfortran.dg/bind_c_usage_33_c.c: Additional source.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270354 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago2019-04-14 Paul Thomas <pault@gcc.gnu.org>
pault [Sun, 14 Apr 2019 18:14:58 +0000 (18:14 +0000)] 
2019-04-14  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/89843
* trans-decl.c (gfc_get_symbol_decl): Assumed shape and assumed
rank dummies of bind C procs require deferred initialization.
(convert_CFI_desc): New procedure to convert incoming CFI
descriptors to gfc types and back again.
(gfc_trans_deferred_vars): Call it.
* trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Null the CFI
descriptor pointer. Free the descriptor in all cases.

PR fortran/89846
* expr.c (is_CFI_desc): New function.
(is_subref_array): Tidy up by referencing the symbol directly.
* gfortran.h : Prototype for is_CFI_desc.
* trans_array.c (get_CFI_desc): New function.
(gfc_get_array_span, gfc_conv_scalarized_array_ref,
gfc_conv_array_ref): Use it.
* trans.c (get_array_span): Extract the span from descriptors
that are indirect references.

PR fortran/90022
* trans-decl.c (gfc_get_symbol_decl): Make sure that the se
expression is a pointer type before converting it to the symbol
backend_decl type.
* trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Eliminate
temporary creation for intent(in).

2019-04-14  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/89843
* gfortran.dg/ISO_Fortran_binding_4.f90: Modify the value of x
in ctg. Test the conversion of the descriptor types in the main
program.
* gfortran.dg/ISO_Fortran_binding_10.f90: New test.
* gfortran.dg/ISO_Fortran_binding_10.c: Called by it.

PR fortran/89846
* gfortran.dg/ISO_Fortran_binding_11.f90: New test.
* gfortran.dg/ISO_Fortran_binding_11.c: Called by it.

PR fortran/90022
* gfortran.dg/ISO_Fortran_binding_1.c: Correct the indexing for
the computation of 'ans'. Also, change the expected results for
CFI_is_contiguous to comply with standard.
* gfortran.dg/ISO_Fortran_binding_1.f90: Correct the expected
results for CFI_is_contiguous to comply with standard.
* gfortran.dg/ISO_Fortran_binding_9.f90: New test.
* gfortran.dg/ISO_Fortran_binding_9.c: Called by it.

2019-04-14  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/89843
* runtime/ISO_Fortran_binding.c (cfi_desc_to_gfc_desc): Only
return immediately if the source pointer is null. Bring
forward the extraction of the gfc type. Extract the kind so
that the element size can be correctly computed for sections
and components of derived type arrays. Remove the free of the
CFI descriptor since this is now done in trans-expr.c.
(gfc_desc_to_cfi_desc): Only allocate the CFI descriptor if it
is not null.
(CFI_section): Normalise the difference between the upper and
lower bounds by the stride to correctly calculate the extents
of the section.

PR fortran/89846
* runtime/ISO_Fortran_binding.c (cfi_desc_to_gfc_desc): Use
the stride measure for the gfc span if it is not a multiple
of the element length. Otherwise use the element length.

PR fortran/90022
* runtime/ISO_Fortran_binding.c (CFI_is_contiguous) : Return
1 for true and 0 otherwise to comply with the standard. Correct
the contiguity check for rank 3 and greater by using the stride
measure of the lower dimension rather than the element length.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270353 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoPR d/87799 Fix D build on windows hosts
jpfau [Sun, 14 Apr 2019 09:52:22 +0000 (09:52 +0000)] 
PR d/87799 Fix D build on windows hosts

PR d/87799
* d-system.h (_mkdir): Forward _mkdir on MinGW to mkdir in system.h.
* configure.ac: Remove d from unsupported languages on mingw and cygwin.
* configure: Regenerate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270349 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoEnable libphobos on Solaris 11/x86
ro [Sun, 14 Apr 2019 09:38:01 +0000 (09:38 +0000)] 
Enable libphobos on Solaris 11/x86

toplevel:
* configure.ac (enable_libphobos): Check LIBPHOBOS_SUPPORTED.
* configure: Regenerate.

libphobos:
* configure.tgt (LIBPHOBOS_SUPPORTED): Default to no.
Set to yes explicitly.
* configure.ac: Handle --enable-libphobos.
(x86_64-*-solaris2.* | i?86-*-solaris2.*): Only mark supported
with gas.
(ENABLE_LIBPHOBOS): New conditional.
* configure: Regenerate.
* Makefile.am (SUBDIRS): Only set if ENABLE_LIBPHOBOS.
* Makefile.in: Regenerate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270348 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoWork around lack of dlpi_tls_modid before Solaris 11.5
ro [Sun, 14 Apr 2019 09:30:42 +0000 (09:30 +0000)] 
Work around lack of dlpi_tls_modid before Solaris 11.5

2019-04-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
    Iain Buclaw  <ibuclaw@gdcproject.org>

PR d/88150
* m4/druntime/os.m4 (DRUNTIME_OS_DLPI_TLS_MODID): New macro.
* configure.ac: Use it.
Call AC_USE_SYSTEM_EXTENSIONS.
* configure: Regenerate.
* Makefile.in, libdruntime/Makefile.in, src/Makefile.in,
testsuite/Makefile.in: Regenerate.
* libdruntime/gcc/config.d.in (OS_Have_Dlpi_Tls_Modid): Define.
* libdruntime/gcc/sections/elf_shared.d: Import gcc.config.
(scanSegments) <PT_TLS> [OS_Have_Dlpi_Tls_Modid]: Use
dlpi_tls_modid.
[Solaris]: Use dlinfo(RTLD_DI_LINKMAP) to get rt_tlsmodid.
Otherwise clear pdso._tlsMod, pdso._tlsSize.
(getTLSRange) [Solaris && !OS_Have_Dlpi_Tls_Modid]: Readjust mod.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270347 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoWork around Solaris ld bug linking __tls_get_addr on 64-bit x86
ro [Sun, 14 Apr 2019 09:24:26 +0000 (09:24 +0000)] 
Work around Solaris ld bug linking __tls_get_addr on 64-bit x86

* m4/druntime/os.m4 (DRUNTIME_OS_LINK_SPEC): New macro.
* configure.ac: Call it.
* configure: Regenerate.
* Makefile.in, libdruntime/Makefile.in, src/Makefile.in,
testsuite/Makefile.in: Regenerate.
* src/libgphobos.spec.in (*link): Append OS_LINK_SPEC.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270346 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoUse gcc/sections/elf_shared.d on Solaris 11.5 (PR d/88150)
ro [Sun, 14 Apr 2019 09:18:42 +0000 (09:18 +0000)] 
Use gcc/sections/elf_shared.d on Solaris 11.5 (PR d/88150)

PR d/88150
* libdruntime/gcc/sections/elf_shared.d [Solaris] (SharedELF): Set
to true.
Import core.sys.solaris.dlfcn, core.sys.solaris.link,
core.sys.solaris.sys.elf, core.sys.solaris.sys.link.
(dummy_ref): Declare.
(initSections): Initialize dummy_ref.
(getDependencies): Set strtab.
(handleForName): Don't dlclose handle.
(findDSOInfoForAddr): Set IterateManually.
(getprogname): Declare.
(progname): Use it.
* libdruntime/gcc/sections/package.d [Solaris]: Import
gcc.sections.elf_shared instead of gcc.sections.solaris.
* libdruntime/gcc/sections/solaris.d: Remove.
* libdruntime/Makefile.am (DRUNTIME_DSOURCES): Remove
gcc/sections/solaris.d.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270345 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoDaily bump. 40/head
gccadmin [Sun, 14 Apr 2019 00:16:15 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270344 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agolibphobos: Move rt.sections modules to gcc.sections
ibuclaw [Sat, 13 Apr 2019 15:29:15 +0000 (15:29 +0000)] 
libphobos: Move rt.sections modules to gcc.sections

These modules depend on a mixture between how the compiler emits
run-time module information, and what functions are exposed by the
platform to inquire about loaded global and thread-local data sections.

As the upstream implementation is written to work only with how the
reference D compiler writes out data, much of what is present does not
apply to the GCC D front-end.  So it has been moved to a non-upstream
location in the source tree, where most of it will be rewritten once
each port has been completed.

The only tested module sections/elf_shared.d has been cleaned up so that
all deprecated declarations have been removed, as well as the brittle
module collision checking, which required bss_sections.c.  All other
ports have been left unchanged apart from a commonizing of attributes.

libphobos/ChangeLog:

2019-04-13  Iain Buclaw  <ibuclaw@gdcproject.org>

* libdruntime/Makefile.am (DRUNTIME_CSOURCES): Remove bss_sections.c.
(DRUNTIME_DSOURCES): Rename rt/sections_* modules to gcc/sections/*.
* libdruntime/Makefile.in: Regenerate.
* libdruntime/gcc/sections/android.d: New file.
* libdruntime/gcc/sections/elf_shared.d: New file.
* libdruntime/gcc/sections/osx.d: New file.
* libdruntime/gcc/sections/package.d: New file.
* libdruntime/gcc/sections/solaris.d: New file.
* libdruntime/gcc/sections/win32.d: New file.
* libdruntime/gcc/sections/win64.d: New file.
* libdruntime/rt/bss_section.c: Remove.
* libdruntime/rt/sections.d: Publicly import gcc.sections.
* libdruntime/rt/sections_android.d: Remove.
* libdruntime/rt/sections_elf_shared.d: Remove.
* libdruntime/rt/sections_osx.d: Remove.
* libdruntime/rt/sections_solaris.d: Remove.
* libdruntime/rt/sections_win32.d: Remove.
* libdruntime/rt/sections_win64.d: Remove.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270341 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago * gcc.pot: Regenerate.
jakub [Sat, 13 Apr 2019 15:22:23 +0000 (15:22 +0000)] 
* gcc.pot: Regenerate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270340 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR target/89093
jakub [Sat, 13 Apr 2019 15:20:46 +0000 (15:20 +0000)] 
PR target/89093
* config/arm/arm.c (arm_valid_target_attribute_rec): Use strcmp
instead of strncmp when checking for thumb and arm.  Formatting fixes.

* gcc.target/arm/pr89093.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270339 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago2019-04-13 Dominique d'Humieres <dominiq@gcc.gnu.org>
dominiq [Sat, 13 Apr 2019 11:32:49 +0000 (11:32 +0000)] 
2019-04-13  Dominique d'Humieres  <dominiq@gcc.gnu.org>

PR fortran/79842
* module.c (gfc_use_module): use complete sentences.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270338 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago * gcc.pot: Regenerate.
jakub [Sat, 13 Apr 2019 08:16:59 +0000 (08:16 +0000)] 
* gcc.pot: Regenerate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270337 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago compiler: improve type handling for string concat ops on constants
ian [Sat, 13 Apr 2019 01:03:55 +0000 (01:03 +0000)] 
compiler: improve type handling for string concat ops on constants

    Resolve a small problem with concatenation of string constants: in a
    string concat X + Y where X has named type and Y has abstract string
    type, insure that the result has X's type, and disable folding if the
    both sides have a concrete type that does not match.

    Fixes golang/go#31412.

    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/171797

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270336 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoDaily bump.
gccadmin [Sat, 13 Apr 2019 00:16:34 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270335 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoUglify identifiers missed in previous commit(s)
rodgertq [Sat, 13 Apr 2019 00:13:46 +0000 (00:13 +0000)] 
Uglify identifiers missed in previous commit(s)

       * include/pstl/algorithm_impl.h: Uglify identfiers.
       * include/pstl/numeric_impl.h:  Uglify identfiers.
       * include/pstl/parallel_backend_tbb.h: Uglify identfiers.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270332 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoCommit a change missed in r270326:
msebor [Fri, 12 Apr 2019 22:37:12 +0000 (22:37 +0000)] 
Commit a change missed in r270326:

gcc/c-family/ChangeLog:

PR c/88383
PR c/89288
PR c/89798
PR c/89797
* c-attribs.c (type_valid_for_vector_size): Detect excessively
large sizes.
(validate_attribute): Handle DECLs and expressions.
(has_attribute): Handle types referenced by expressions.
Avoid considering array attributes in ARRAY_REF expressions .

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270331 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agolibphobos: Add subdir-objects to configure script.
ibuclaw [Fri, 12 Apr 2019 21:50:42 +0000 (21:50 +0000)] 
libphobos: Add subdir-objects to configure script.

Running autoreconf regenerates all files cleanly with autoconf2.69.

libphobos/ChangeLog:

2019-04-12  Iain Buclaw  <ibuclaw@gdcproject.org>

* configure.ac (AM_INIT_AUTOMAKE): Add subdir-objects.
* configure: Regenerate.
* libdruntime/Makefile.in: Regenerate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270330 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR c/89933
jakub [Fri, 12 Apr 2019 21:45:54 +0000 (21:45 +0000)] 
PR c/89933
c/
* c-decl.c (merge_decls): When newdecl's type is its main variant,
don't try to remove it from the variant list, but instead assert
it has no variants.
cp/
* decl.c (duplicate_decls): When newdecl's type is its main variant,
don't try to remove it from the variant list, but instead assert
it has no variants.
testsuite/
* c-c++-common/pr89933.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270329 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agolibphobos: Add target-zlib to top-level configure
ibuclaw [Fri, 12 Apr 2019 20:13:34 +0000 (20:13 +0000)] 
libphobos: Add target-zlib to top-level configure

Removes the building of zlib from within libphobos, using instead the
libz_convenience.a library.

ChangeLog:

2019-04-12  Iain Buclaw  <ibuclaw@gdcproject.org>

* configure.ac: Add target-zlib to target_libraries.
* configure: Regenerate.

gcc/ChangeLog:

2019-04-12  Iain Buclaw  <ibuclaw@gdcproject.org>

* doc/install.texi: Document --with-target-system-zlib.

libphobos/ChangeLog:

2019-04-12  Iain Buclaw  <ibuclaw@gdcproject.org>

* m4/druntime/libraries.m4 (DRUNTIME_LIBRARIES_ZLIB): Use
libz_convenience.a if not using system zlib.
* Makefile.in: Regenerate.
* configure: Regenerate.
* libdruntime/Makefile.in: Regenerate.
* src/Makefile.am: Remove ZLIB_CSOURCES and AM_CFLAGS.
* src/Makefile.in: Regenerate.
* testsuite/Makefile.in: Regenerate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270328 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agogcc/ChangeLog:
msebor [Fri, 12 Apr 2019 19:11:59 +0000 (19:11 +0000)] 
gcc/ChangeLog:
* doc/extend.texi (__builtin_has_attribute): Add a clarifying note.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270327 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoPR c/88383 - ICE calling __builtin_has_attribute on a reference
msebor [Fri, 12 Apr 2019 19:01:17 +0000 (19:01 +0000)] 
PR c/88383 - ICE calling __builtin_has_attribute on a reference
PR c/89288 - ICE in tree_code_size, at tree.c:865
PR c/89798 - excessive vector_size silently accepted and truncated
PR c/89797 - ICE on a vector_size (1LU << 33) int variable

gcc/ChangeLog:

PR c/89797
* targhooks.c (default_vector_alignment): Avoid assuming
argument fits in SHWI.
* tree.h (TYPE_VECTOR_SUBPARTS): Avoid sign overflow in
a shift expression.
* doc/extend.texi (__builtin_has_attribute): Add a clarifying note.

gcc/c-family/ChangeLog:

PR c/88383
PR c/89288
PR c/89798
PR c/89797
* c-attribs.c (type_valid_for_vector_size): Detect excessively
large sizes.
(validate_attribute): Handle DECLs and expressions.
(has_attribute): Handle types referenced by expressions.
Avoid considering array attributes in ARRAY_REF expressions .

gcc/cp/ChangeLog:

PR c/88383
PR c/89288
* parser.c (cp_parser_has_attribute_expression): Handle assignment
expressions.

gcc/testsuite/ChangeLog:

PR c/88383
PR c/89288
PR c/89798
PR c/89797
* c-c++-common/attributes-1.c: Adjust.
* c-c++-common/builtin-has-attribute-6.c: New test.
* c-c++-common/builtin-has-attribute-7.c: New test.
* c-c++-common/builtin-has-attribute-4.c: Adjust expectations.
* c-c++-common/builtin-has-attribute-6.c: New test.
* c-c++-common/pr71574.c: Adjust.
* gcc.dg/pr25559.c: Adjust.
* gcc.dg/attr-vector_size.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270326 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoAvoid ICE on pmf{} in template.
jason [Fri, 12 Apr 2019 16:25:59 +0000 (16:25 +0000)] 
Avoid ICE on pmf{} in template.

Now that we return the original CONSTRUCTOR from finish_compound_literal,
the call to null_member_pointer_value_p in tsubst_copy_and_build was getting
confused because the CONSTRUCTOR was still empty rather than a valid PMF
value.

* call.c (null_member_pointer_value_p): Handle an empty CONSTRUCTOR
of PMF type.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270324 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR rtl-optimization/89965
jakub [Fri, 12 Apr 2019 16:20:21 +0000 (16:20 +0000)] 
PR rtl-optimization/89965
* dce.c: Include rtl-iter.h.
(struct check_argument_load_data): New type.
(check_argument_load): New function.
(find_call_stack_args): Check for loads from stack slots still tracked
in sp_bytes and punt if any is found.

* gcc.target/i386/pr89965.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270323 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago * config/mips/loongson-mmiintrin.h: Fix up #error message.
jakub [Fri, 12 Apr 2019 16:16:35 +0000 (16:16 +0000)] 
* config/mips/loongson-mmiintrin.h: Fix up #error message.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270322 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR translation/90041
jakub [Fri, 12 Apr 2019 16:12:49 +0000 (16:12 +0000)] 
PR translation/90041
* exgettext: Print MissingArgError, UnknownError or Warn
*.opt argument using error or warning instead of _ to mark it
as gcc-internal-format.

* c.opt (-fhandle-exceptions): Use %< and %> around option names
in the Warn diagnostics.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270321 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR c++/87603 - constexpr functions are no longer noexcept.
mpolacek [Fri, 12 Apr 2019 15:29:03 +0000 (15:29 +0000)] 
PR c++/87603 - constexpr functions are no longer noexcept.
* constexpr.c (is_sub_constant_expr): Remove unused function.
* cp-tree.h (is_sub_constant_expr): Remove declaration.
* except.c (check_noexcept_r): Don't consider a call to a constexpr
function noexcept.

* g++.dg/cpp0x/constexpr-noexcept.C: Adjust the expected result.
* g++.dg/cpp0x/constexpr-noexcept3.C: Likewise.
* g++.dg/cpp0x/constexpr-noexcept4.C: Likewise.
* g++.dg/cpp0x/constexpr-noexcept8.C: New test.
* g++.dg/cpp0x/inh-ctor32.C: Remove dg-message.
* g++.dg/cpp1y/constexpr-noexcept1.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270320 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago * except.c (build_noexcept_spec): Use build_converted_constant_bool_expr
mpolacek [Fri, 12 Apr 2019 15:26:16 +0000 (15:26 +0000)] 
* except.c (build_noexcept_spec): Use build_converted_constant_bool_expr
instead of perform_implicit_conversion_flags.

* g++.dg/cpp0x/noexcept30.C: Tweak dg-error.
* g++.dg/cpp0x/pr86397-1.C: Likewise.
* g++.dg/cpp0x/pr86397-2.C: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270319 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago * doc/invoke.texi (max-lto-streaming-paralellism): New --param.
hubicka [Fri, 12 Apr 2019 14:36:26 +0000 (14:36 +0000)] 
* doc/invoke.texi (max-lto-streaming-paralellism): New --param.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270318 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago * params.def (PARAM_MAX_LTO_STREAMING_PARALLELISM): New parameter.
hubicka [Fri, 12 Apr 2019 14:35:48 +0000 (14:35 +0000)] 
* params.def (PARAM_MAX_LTO_STREAMING_PARALLELISM): New parameter.
* lto.c (do_stream_out): rename to ...
(stream_out): ... this one; move original code to ...
(stream_out_partitions_1, stream_out_partitions): ... these new
functions.
(lto_wpa_write_files): Honnor lto_parallelism

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270317 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago[testsuite][arm] Update warning prune regex
matmal01 [Fri, 12 Apr 2019 13:15:52 +0000 (13:15 +0000)] 
[testsuite][arm] Update warning prune regex

r269586 changed the format of some warning messages.

Each switch in the warning message is now surrounded by single quotes.

This commit updates the regex's in arm.exp dejagnu files to match the
new format and remove the extra 20+ FAILs on excess errors that are
introduced on certain variations (e.g.
arm-eabi-aem/-marm/-march=armv7-a/-mfpu=vfpv3-d16/-mfloat-abi=softfp).

Regtested arm.exp with cross-compiler arm-none-eabi

gcc/testsuite/ChangeLog:

2019-04-12  Matthew Malcomson  <matthew.malcomson@arm.com>

* g++.target/arm/arm.exp: Change format of default prune regex.
* gcc.target/arm/arm.exp: Change format of default prune regex.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270316 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoHandle multiple 'default' in target attribute (PR middle-end/89970).
marxin [Fri, 12 Apr 2019 12:54:00 +0000 (12:54 +0000)] 
Handle multiple 'default' in target attribute (PR middle-end/89970).

2019-04-12  Martin Liska  <mliska@suse.cz>

PR middle-end/89970
* multiple_target.c (create_dispatcher_calls): Wrap ifunc
in error message.
(separate_attrs): Handle multiple 'default's.
(expand_target_clones): Rework error handling code.
2019-04-12  Martin Liska  <mliska@suse.cz>

PR middle-end/89970
* gcc.target/i386/mvc15.c: New test.
* gcc.target/i386/mvc3.c: Quote target in error pattern.
* gcc.target/i386/mvc4.c: Remove duplicit 'default'.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270314 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agogcc/ChangeLog:
kelvin [Fri, 12 Apr 2019 12:51:58 +0000 (12:51 +0000)] 
gcc/ChangeLog:

2019-04-12  Kelvin Nilsen  <kelvin@gcc.gnu.org>

PR target/87532
* config/rs6000/rs6000.c (rs6000_split_vec_extract_var): Use inner
mode of vector rather than mode of destination for move instruction.
* config/rs6000/vsx.md (*vsx_extract_<mode>_<VS_scalar>mode_var):
Use QI inner mode with V16QI vector mode.

gcc/testsuite/ChangeLog:

2019-04-12  Kelvin Nilsen  <kelvin@gcc.gnu.org>

PR target/87532
* gcc.target/powerpc/fold-vec-extract-char.p8.c: Adjust expected
instruction counts.
* gcc.target/powerpc/fold-vec-extract-int.p8.c: Likewise.
* gcc.target/powerpc/fold-vec-extract-short.p8.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270313 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago * de.po, sv.po: Update.
jakub [Fri, 12 Apr 2019 09:07:37 +0000 (09:07 +0000)] 
* de.po, sv.po: Update.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270309 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR target/52726
jakub [Fri, 12 Apr 2019 08:10:51 +0000 (08:10 +0000)] 
PR target/52726
* config/tilepro/tilepro.c (tilepro_print_operand): Use just
"invalid %%t operand" in output_operand_lossage message.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270308 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoRemove spurious empty line from ChangeLog
redi [Fri, 12 Apr 2019 08:04:56 +0000 (08:04 +0000)] 
Remove spurious empty line from ChangeLog

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270307 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agoS/390: Fix a problem with the bswap vector pattern
krebbel [Fri, 12 Apr 2019 07:41:51 +0000 (07:41 +0000)] 
S/390: Fix a problem with the bswap vector pattern

arch13 introduced instructions to perform vector element-wise byte
swaps on the way from or to memory.  For a byte swap between vector
registers the vector permute instruction is required which needs a
permute pattern to be loaded into a vector register first.

With the current implementation there is a potential problem when the
decision for the reg-reg variant is made very late.  This patch is
supposed to fix that.

With the patch the required permute pattern is generated already in
the expander and attached to the bswap pattern as USE operand.  The
predicate in the insn_and_split pattern accepts it although the
permute constant as such is not a valid constant.  For the reg-reg
variant only the vector register constraint is used for the permute
constant forcing LRA to a) push the constant into literal pool and b)
load the literal pool constant into a vector register.

gcc/ChangeLog:

2019-04-12  Andreas Krebbel  <krebbel@linux.ibm.com>

* config/s390/predicates.md (permute_pattern_operand): New
predicate.
* config/s390/vector.md ("*vec_splats_bswap_vec<mode>"): Add USE
operand for the permute pattern.
("*vec_perm<mode>"): New insn definition.
("bswap<mode>"): Generate the permute pattern operand in the
expander and perform the operand reloads for pre arch13 level
already.
("*bswap<mode>_emu"): Rename to ...
("*bswap<mode>"): ... this. And make the splitter vxe2 only.
* config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap<mode>"):
Add the USE operand for the permute pattern.
("*vec_set_bswap_vec<mode>"): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270306 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR c/89946
jakub [Fri, 12 Apr 2019 07:28:35 +0000 (07:28 +0000)] 
PR c/89946
* varasm.c (assemble_start_function): Don't use tree_fits_uhwi_p
and gcc_unreachable if it fails, just call tree_to_uhwi which
verifies that too.  Test TREE_CHAIN instead of list_length > 1.
Start warning message with a lower-case letter.  Formatting fixes.
c-family/
* c-attribs.c (handle_patchable_function_entry_attribute): Add
function comment.  Warn if arguments of the attribute are not positive
integer constants.
testsuite/
* c-c++-common/pr89946.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270305 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago PR rtl-optimization/90026
jakub [Fri, 12 Apr 2019 07:27:25 +0000 (07:27 +0000)] 
PR rtl-optimization/90026
* cfgcleanup.c (try_optimize_cfg): When removing empty bb with no
successors, look for BARRIERs inside of the whole BB_FOOTER chain
rather than just at the start of it.  If e->src BB_FOOTER is not NULL
in cfglayout mode, use emit_barrier_after_bb.

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270304 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agolibphobos: Parallelize the libphobos testsuite
ibuclaw [Fri, 12 Apr 2019 06:25:34 +0000 (06:25 +0000)] 
libphobos: Parallelize the libphobos testsuite

The removal of the check programs in libphobos means that all tests
will now be compiled one at a time, causing a notable slowdown in
comparison with the previous method of testing.

libphobos/ChangeLog:

2019-04-12  Iain Buclaw  <ibuclaw@gdcproject.org>

* testsuite/Makefile.am:
* testsuite/Makefile.am (AUTOMAKE_OPTIONS): Remove dejagnu.
(RUNTEST): Remove variable.
(RUNTESTDEFAULTFLAGS, check_p_subno, check_p_numbers0,
check_p_numbers1, check_p_numbers2, check_p_numbers3,
check_p_numbers4, check_p_numbers5, check_p_numbers6, check_p_numbers,
check_p_subdirs, check_DEJAGNU_libphobos_targets): New variables.
(site.exp, %/site.exp, check-DEJAGNU, check-am, clean-local): New
rules written so that all the *.exp files are ran parallelized.
(CLEANFILES): Add *.exe, *.o, and site.exp.
* testsuite/Makefile.in: Regenerate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270303 138bc75d-0d04-0410-961f-82ee72b054a4

5 years agolibphobos: Replace library check programs with dg-runtest
ibuclaw [Fri, 12 Apr 2019 06:25:17 +0000 (06:25 +0000)] 
libphobos: Replace library check programs with dg-runtest

Fixes multilib handling when running the libphobos testsuite.

libphobos/ChangeLog:

2019-04-12  Iain Buclaw  <ibuclaw@gdcproject.org>

PR d/89255
* configure.ac (ENABLE_SHARED, ENABLE_STATIC): Remove conditionals.
* configure: Regenerate.
* d_rules.am (%.t.lo, %.t.o): Remove rules.
(unittest_static_LINK, unittest_LINK, libgdruntime_t_la_LINK,
libgphobos_t_la_LINK): Remove variables.
* libdruntime/Makefile.am (DRUNTIME_TEST_LOBJECTS,
DRUNTIME_TEST_OBJECTS, check_PROGRAMS, check_LTLIBRARIES,
unittest_static_SOURCES, unittest_static_LIBTOOLFLAGS,
unittest_static_LDFLAGS, unittest_static_LDADD,
EXTRA_unittest_static_DEPENDENCIES, libgdruntime_t_la_SOURCES,
libgdruntime_t_la_LIBTOOLFLAGS, libgdruntime_t_la_LDFLAGS,
libgdruntime_t_la_LIBADD, EXTRA_libgdruntime_t_la_DEPENDENCIES,
unittest_SOURCES, unittest_LIBTOOLFLAGS, unittest_LDFLAGS,
unittest_LDADD): Remove variables.
(clean-local): Remove rule.
* libdruntime/Makefile.in: Regenerate.
* src/Makefile.am (PHOBOS_TEST_LOBJECTS,
PHOBOS_TEST_OBJECTS, check_PROGRAMS, check_LTLIBRARIES,
unittest_static_SOURCES, unittest_static_LIBTOOLFLAGS,
unittest_static_LDFLAGS, unittest_static_LDADD,
EXTRA_unittest_static_DEPENDENCIES, libgdruntime_t_la_SOURCES,
libgdruntime_t_la_LIBTOOLFLAGS, libgdruntime_t_la_LDFLAGS,
libgdruntime_t_la_LIBADD, EXTRA_libgdruntime_t_la_DEPENDENCIES,
unittest_SOURCES, unittest_LIBTOOLFLAGS, unittest_LDFLAGS,
unittest_LDADD): Remove variables.
(clean-local): Remove rule.
* src/Makefile.in: Regenerate.
* testsuite/lib/libphobos.exp (libphobos_test_name): New global.
(libphobos_init): Set libphobos_test_name.
(libphobos-dg-test): Override name if libphobos_test_name is set.
(filter_libphobos_unittests): New proc.
* testsuite/libphobos.aa/aa.exp: Don't load libphobos-dg.exp.
* testsuite/libphobos.cycles/cycles.exp: Set libphobos_test_name.
* testsuite/libphobos.druntime/druntime.exp: New file.
* testsuite/libphobos.druntime_shared/druntime_shared.exp: New file.
* testsuite/libphobos.phobos/phobos.exp: New file.
* testsuite/libphobos.phobos_shared/phobos_shared.exp: New file.
* testsuite/libphobos.shared/shared.exp: Use dg-runtest to run tests.
* testsuite/libphobos.hash/hash.exp: Don't load libphobos-dg.exp
* testsuite/libphobos.init_fini/init_fini.exp: Likewise.
* testsuite/libphobos.thread/thread.exp: Likewise.
* testsuite/libphobos.typeinfo/typeinfo.exp: Likewise.
* testsuite/libphobos.unittests/unittests.exp: Remove.
* testsuite/test_runner.d: Remove.
* testsuite/testsuite_flags.in: Add phobos to --gdcpaths.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@270302 138bc75d-0d04-0410-961f-82ee72b054a4