Sandra Loosemore [Sun, 21 Apr 2019 02:01:36 +0000 (22:01 -0400)]
pr89009.C: Add dg-require-effective-target fpic.
2019-04-20 Sandra Loosemore <sandra@codesourcery.com>
gcc/testsuite/
* g++.dg/ipa/pr89009.C: Add dg-require-effective-target fpic.
From-SVN: r270476
GCC Administrator [Sun, 21 Apr 2019 00:16:12 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r270475
Thomas Rodgers [Sat, 20 Apr 2019 23:20:03 +0000 (23:20 +0000)]
Delegate PSTL configuration to pstl/pstl_config.h
* include/bits/c++config: Remove explicit PSTL configuration
macros and use definitions from <pstl/pstl_config.h>.
From-SVN: r270472
Thomas Rodgers [Sat, 20 Apr 2019 22:45:58 +0000 (22:45 +0000)]
Cleanup algorithm implementations
* include/pstl/glue_algorithm_impl.h (stable_sort): Forward
execution policy.
(mismatch): Forward execution policy.
(equal): Qualify call to std::equal().
(partial_sort): Forward execution policy.
(inplace_merge): Forward execution policy.
From-SVN: r270471
Iain Buclaw [Sat, 20 Apr 2019 17:14:50 +0000 (17:14 +0000)]
libphobos: core.atomic should have fallback when there's no libatomic.
libphobos/ChangeLog:
2019-04-20 Iain Buclaw <ibuclaw@gdcproject.org>
PR d/89293
* libdruntime/core/atomic.d (casImpl): Remove static assert for
GNU_Have_Atomics, add static path to handle missing atomic support.
(atomicLoad): Likewise.
(atomicStore): Likewise.
(atomicFence): Likewise.
(atomicMutexHandle, AtomicMutex): Declare types.
(_getAtomicMutex): New function.
(getAtomicMutex): Declare.
From-SVN: r270470
Jason Merrill [Sat, 20 Apr 2019 06:18:39 +0000 (02:18 -0400)]
PR c++/90190 - CTAD with list-constructor.
The passage quoted talks about an initializer list containing a single
expression, but a braced-init-list is not an expression.
* pt.c (do_class_deduction): Don't try the single element deduction
if the single element is also a braced list.
From-SVN: r270468
Jason Merrill [Sat, 20 Apr 2019 06:18:30 +0000 (02:18 -0400)]
PR c++/90171 - ICE with destroying delete with size_t parm.
The problem here was that "second parm is size_t" is false for a destroying
sized delete. So let's introduce sized_deallocation_fn_p when that's what
we're asking, and reserve second_parm_is_size_t for the specific case of
warning about possible confusion with placement delete.
* call.c (sized_deallocation_fn_p): New. Use it instead of
second_parm_is_size_t in most cases.
(second_parm_is_size_t): Don't check for aligned.
From-SVN: r270467
GCC Administrator [Sat, 20 Apr 2019 00:16:17 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r270466
Thomas Rodgers [Fri, 19 Apr 2019 22:44:11 +0000 (22:44 +0000)]
Improve implementation of parallel equal()
* include/pstl/algorithm_impl.h
(__internal::__brick_equal): use "4 iterator" version of
std::equal().
(__internal::__brick_equal): use simd for random access
iterators on unsequenced execution policies.
(__internal::__pattern_equal): add "4 iterator" version
(__internal::__pattern_equal): dispatch to simd __brick_equal
for vector-only execution policies.
(__internal::__pattern_equal): dispatch to __parallel_or for
parallel execution policies.
* include/pstl/glue_algorithm_impl.h
(std::equal): dispatch to "4 iterator" version of
__internal::__pattern_equal().
From-SVN: r270463
Jakub Jelinek [Fri, 19 Apr 2019 19:19:51 +0000 (21:19 +0200)]
* de.po, es.po, fr.po, sv.po: Update.
From-SVN: r270462
Segher Boessenkool [Fri, 19 Apr 2019 16:58:01 +0000 (18:58 +0200)]
tree-call-cdce: If !HONOR_NANS do not make code with NaNs (PR88055)
If we don't HONOR_NANS we should not try to use any unordered
comparison results. Best case those will just be optimized away;
realistically, they ICE. For example, the rs6000 backend has some
code that specifically checks we never do this.
PR tree-optimization/88055
* tree-call-cdce.c (comparison_code_if_no_nans): New function.
(gen_one_condition): Use it if !HONOR_NANS.
From-SVN: r270460
Paolo Carlini [Fri, 19 Apr 2019 15:36:20 +0000 (15:36 +0000)]
re PR c++/89900 (ICE: Segmentation fault (in check_instantiated_arg))
/cp
2019-04-19 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/89900
* pt.c (fn_type_unification): When handling null explicit
arguments do not special case non-parameter packs.
/testsuite
2019-04-19 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/89900
* g++.dg/cpp0x/pr89900-1.C: New.
* g++.dg/cpp0x/pr89900-2.C: Likewise.
* g++.dg/cpp0x/pr89900-3.C: Likewise.
* g++.dg/cpp0x/pr89900-4.C: Likewise.
From-SVN: r270459
Ian Lance Taylor [Fri, 19 Apr 2019 14:20:16 +0000 (14:20 +0000)]
libgo/go/syscall: add SockAddrDatalink on AIX
This patch is required in order to build golang.org/x/net. The
corresponding Go Toolchain patch is CL 170537.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/172898
From-SVN: r270458
Jakub Jelinek [Fri, 19 Apr 2019 11:58:11 +0000 (13:58 +0200)]
re PR middle-end/90139 (ICE in emit_block_move_hints, at expr.c:1601)
PR middle-end/90139
* tree-outof-ssa.c (get_temp_reg): If reg_mode is BLKmode, return
assign_temp instead of gen_reg_rtx.
* gcc.c-torture/compile/pr90139.c: New test.
From-SVN: r270457
Jakub Jelinek [Fri, 19 Apr 2019 11:57:23 +0000 (13:57 +0200)]
re PR c++/90138 (ICE on invalid in contains_struct_check())
PR c++/90138
* pt.c (process_template_parm): Set decl to pushdecl result. If
!is_non_type, also set parm to that.
* g++.dg/template/pr90138.C: New test.
From-SVN: r270456
Jakub Jelinek [Fri, 19 Apr 2019 11:56:07 +0000 (13:56 +0200)]
re PR c/89888 (When switch controlling expression is promoted from type narrower than int, GCC does not diagnose identical cases)
PR c/89888
* c-common.h (c_add_case_label): Remove orig_type and outside_range_p
arguments.
(c_do_switch_warnings): Remove outside_range_p argument.
* c-common.c (check_case_bounds): Removed.
(c_add_case_label): Remove orig_type and outside_range_p arguments.
Don't call check_case_bounds. Fold low_value as well as high_value.
* c-warn.c (c_do_switch_warnings): Remove outside_range_p argument.
Check for case labels outside of range of original type here and
adjust them.
c/
* c-typeck.c (struct c_switch): Remove outside_range_p member.
(c_start_case): Don't clear it.
(do_case): Adjust c_add_case_label caller.
(c_finish_case): Adjust c_do_switch_warnings caller.
cp/
* decl.c (struct cp_switch): Remove outside_range_p member.
(push_switch): Don't clear it.
(pop_switch): Adjust c_do_switch_warnings caller.
(finish_case_label): Adjust c_add_case_label caller.
testsuite/
* c-c++-common/pr89888.c: New test.
* g++.dg/torture/pr40335.C: Change dg-bogus into dg-warning.
Don't expect -Wswitch-unreachable warning.
From-SVN: r270455
Christophe Lyon [Fri, 19 Apr 2019 09:08:49 +0000 (09:08 +0000)]
PR translation/90118 Missing space between words
2019-04-19 Christophe Lyon <christophe.lyon@linaro.org>
PR translation/90118
contrib/
* check-internal-format-escaping.py: Check that %< is not next to
a word.
gcc/
* config/aarch64/aarch64.c (aarch64_override_options_internal):
Add missing space before %<.
From-SVN: r270454
Jakub Jelinek [Fri, 19 Apr 2019 08:24:05 +0000 (10:24 +0200)]
re PR c++/90108 (ICE: Segmentation fault (in c_tree_chain_next))
PR c++/90108
* c-decl.c (merge_decls): If remove is main variant and
DECL_ORIGINAL_TYPE is some other type, remove a DECL_ORIGINAL_TYPE
variant that has newdecl as TYPE_NAME if any.
* decl.c (duplicate_decls): If remove is main variant and
DECL_ORIGINAL_TYPE is some other type, remove a DECL_ORIGINAL_TYPE
variant that has newdecl as TYPE_NAME if any.
* c-c++-common/pr90108.c: New test.
From-SVN: r270453
GCC Administrator [Fri, 19 Apr 2019 00:16:19 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r270451
Peter Bergner [Thu, 18 Apr 2019 22:14:17 +0000 (22:14 +0000)]
re PR rtl-optimization/87871 (testcases fail after r265398 on arm)
PR rtl-optimization/87871
* ira-lives.c (make_object_dead): Don't add conflicts to
TOTAL_CONFLICT_HARD_REGS for register ignore_reg_for_conflicts.
From-SVN: r270448
Martin Sebor [Thu, 18 Apr 2019 20:26:07 +0000 (20:26 +0000)]
PR middle-end/89797 - ICE on a vector_size (1LU << 33) int variable
gcc/ChangeLog:
* tree.h (TYPE_VECTOR_SUBPARTS): Use HOST_WIDE_INT_1U.
* config/aarch64/aarch64.c (aarch64_simd_vector_alignment): Avoid
assuming type size fits in SHWI.
From-SVN: r270447
Jan Hubicka [Thu, 18 Apr 2019 17:03:00 +0000 (19:03 +0200)]
re PR ipa/85051 (ICE: in edge_badness, at ipa-inline.c:1035 with flattening recursive calls)
PR ipa/85051
* ipa-inline.c (flatten_function): New parameter UPDATE.
(ipa_inline, early_inliner): Use it.
From-SVN: r270446
Jason Merrill [Thu, 18 Apr 2019 16:50:10 +0000 (12:50 -0400)]
PR c++/87554 - ICE with extern template and reference member.
The removed code ended up setting DECL_INITIAL to the INIT_EXPR returned by
split_nonconstant_init, which makes no sense. This code was added back in
1996, so any rationale is long lost.
* decl.c (cp_finish_decl): Don't set DECL_INITIAL of external vars.
From-SVN: r270445
Segher Boessenkool [Thu, 18 Apr 2019 13:38:55 +0000 (15:38 +0200)]
move ChangeLog entry to the correct file
From-SVN: r270444
Richard Sandiford [Thu, 18 Apr 2019 12:30:36 +0000 (12:30 +0000)]
Fix UB in int_const_binop
When testing PR 85164, the baseline bootstrap-ubsan results had
a lot of failures from int_const_binop. This is because with the
new overflow handling we can sometimes do:
poly_res = res;
on an uninitialised res.
2019-04-18 Richard Sandiford <richard.sandiford@arm.com>
gcc/
* fold-const.c (int_const_binop): Return early on failure.
From-SVN: r270443
Richard Sandiford [Thu, 18 Apr 2019 12:29:56 +0000 (12:29 +0000)]
Fix two ubsan failures (PR85164)
Two fixes for UB when handling very large offsets. The calculation in
force_int_to_mode would have been correct if signed integers used modulo
arithmetic, so just switch to unsigned types. The calculation in
rtx_addr_can_trap_p_1 didn't handle overflow properly, so switch to
known_subrange_p instead (which is supposed to handle all cases).
2019-04-18 Richard Sandiford <richard.sandiford@arm.com>
gcc/
PR middle-end/85164
* combine.c (force_int_to_mode): Cast the argument rather than
the result of known_alignment.
* rtlanal.c (rtx_addr_can_trap_p_1): Use known_subrange_p.
gcc/testsuite/
PR middle-end/85164
* gcc.dg/pr85164-1.c, gcc.dg/pr85164-2.c: New tests.
From-SVN: r270442
Richard Biener [Thu, 18 Apr 2019 12:02:40 +0000 (12:02 +0000)]
re PR debug/90131 (wrong debug info at -O3)
2019-04-18 Richard Biener <rguenther@suse.de>
PR debug/90131
* tree-cfgcleanup.c (move_debug_stmts_from_forwarder): Split
out from ...
(remove_forwarder_block): ... here.
(remove_forwarder_block_with_phi): Also move debug stmts here.
* gcc.dg/guality/pr90131.c: New testcase.
From-SVN: r270441
Jakub Jelinek [Thu, 18 Apr 2019 10:34:06 +0000 (12:34 +0200)]
Reverted unintended part of previous commit.
From-SVN: r270439
Jakub Jelinek [Thu, 18 Apr 2019 10:28:21 +0000 (12:28 +0200)]
re PR translation/79183 (Hard coded plurals in gimple-ssa-sprintf.c:2050)
PR translation/79183
* gimple-ssa-sprintf.c (format_directive): Use inform_n instead of
inform where appropriate.
From-SVN: r270438
Richard Biener [Thu, 18 Apr 2019 07:40:35 +0000 (07:40 +0000)]
tree.c (get_qualified_type): Put found type variants at the head of the variant list.
2019-04-18 Richard Biener <rguenther@suse.de>
* tree.c (get_qualified_type): Put found type variants at the
head of the variant list.
From-SVN: r270437
Iain Sandoe [Thu, 18 Apr 2019 07:40:08 +0000 (07:40 +0000)]
MAINTAINERS: Update email address
2019-04-18 Iain Sandoe <iain@sandoe.co.uk>
* MAINTAINERS: Update my email address.
From-SVN: r270436
Erik Schnetter [Thu, 18 Apr 2019 06:53:21 +0000 (06:53 +0000)]
re PR bootstrap/89864 (gcc fails to build/bootstrap with XCode 10.2)
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.
Co-Authored-By: Iain Sandoe <iain@sandoe.co.uk>
Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
From-SVN: r270435
Ian Lance Taylor [Thu, 18 Apr 2019 04:11:22 +0000 (04:11 +0000)]
re PR go/90110 (libgo fails to build against glibc 2.19)
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
From-SVN: r270434
Jason Merrill [Thu, 18 Apr 2019 03:32:24 +0000 (23:32 -0400)]
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.
From-SVN: r270433
GCC Administrator [Thu, 18 Apr 2019 00:16:20 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r270430
Jonathan Wakely [Wed, 17 Apr 2019 21:47:20 +0000 (22:47 +0100)]
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.
From-SVN: r270427
Segher Boessenkool [Wed, 17 Apr 2019 21:11:00 +0000 (23:11 +0200)]
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.
From-SVN: r270426
Jonathan Wakely [Wed, 17 Apr 2019 19:27:27 +0000 (20:27 +0100)]
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.
From-SVN: r270425
Jonathan Wakely [Wed, 17 Apr 2019 19:27:23 +0000 (20:27 +0100)]
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.
From-SVN: r270424
Jonathan Wakely [Wed, 17 Apr 2019 19:27:19 +0000 (20:27 +0100)]
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.
From-SVN: r270423
Jakub Jelinek [Wed, 17 Apr 2019 19:24:55 +0000 (21:24 +0200)]
re PR c++/89325 (False warnings about "optimization attribute" on operators when -fno-ipa-cp-clone)
PR c++/89325
* g++.dg/ext/attrib58.C: New test.
* g++.dg/ext/attrib59.C: New test.
* g++.dg/ext/attrib60.C: New test.
From-SVN: r270422
Jakub Jelinek [Wed, 17 Apr 2019 19:23:45 +0000 (21:23 +0200)]
re PR target/90125 (Typo of AVX512 intrinsics)
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.
From-SVN: r270421
Peter Bergner [Wed, 17 Apr 2019 19:22:15 +0000 (19:22 +0000)]
ira-conflicts.c (print_allocno_conflicts): Always print something, even for allocno's with no conflicts.
gcc/
* ira-conflicts.c (print_allocno_conflicts): Always print something,
even for allocno's with no conflicts.
(print_conflicts): Print an extra newline.
From-SVN: r270420
Segher Boessenkool [Wed, 17 Apr 2019 18:49:50 +0000 (20:49 +0200)]
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.
From-SVN: r270419
Marek Polacek [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.
From-SVN: r270418
Joao Moreira [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...
* targhooks.c (default_print_patchable_function_entry): Emit
__patchable_function_entries section with writable flags to allow
relocation resolution.
From-SVN: r270417
Jonny Grant [Wed, 17 Apr 2019 18:11:06 +0000 (18:11 +0000)]
* collect2.c (main): Change gcc.gnu.org URL to HTTPS.
From-SVN: r270416
Jakub Jelinek [Wed, 17 Apr 2019 17:57:02 +0000 (19:57 +0200)]
dg-extract-results.sh: Only handle WARNING: program timed out lines specially in "$MODE" == "sum".
* 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.
From-SVN: r270415
Jakub Jelinek [Wed, 17 Apr 2019 13:28:39 +0000 (15:28 +0200)]
re PR middle-end/90095 (wrong code with -Os -fno-tree-bit-ccp)
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.
From-SVN: r270410
Jonathan Wakely [Wed, 17 Apr 2019 13:13:30 +0000 (14:13 +0100)]
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.
From-SVN: r270409
Claudiu Zissulescu [Wed, 17 Apr 2019 11:09:59 +0000 (13:09 +0200)]
[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.
From-SVN: r270408
Segher Boessenkool [Wed, 17 Apr 2019 09:45:57 +0000 (11:45 +0200)]
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.
From-SVN: r270407
Thomas Schwinge [Wed, 17 Apr 2019 08:34:20 +0000 (10:34 +0200)]
[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.
From-SVN: r270406
Thomas Schwinge [Wed, 17 Apr 2019 08:34:10 +0000 (10:34 +0200)]
[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.
From-SVN: r270405
Jakub Jelinek [Wed, 17 Apr 2019 08:30:44 +0000 (10:30 +0200)]
re PR target/89093 (C++ exception handling clobbers d8 VFP register)
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.
From-SVN: r270404
Iain Buclaw [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.
From-SVN: r270403
GCC Administrator [Wed, 17 Apr 2019 00:16:11 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r270401
Iain Buclaw [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).
From-SVN: r270397
Jakub Jelinek [Tue, 16 Apr 2019 19:06:41 +0000 (21:06 +0200)]
re PR c++/86953 (compiler crashes with constexpr operator== and specific struct (cxx_eval_bit_field_ref, at cp/constexpr.c:2704))
PR c++/86953
* g++.dg/cpp0x/constexpr-86953.C: New test.
From-SVN: r270396
Pat Haugen [Tue, 16 Apr 2019 15:58:02 +0000 (15:58 +0000)]
re PR target/84369 (test case gcc.dg/sms-10.c fails on power9)
PR target/84369
* config/rs6000/power9.md: Add store forwarding bypass.
From-SVN: r270394
Martin Liska [Tue, 16 Apr 2019 15:24:53 +0000 (17:24 +0200)]
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.
From-SVN: r270393
Dominique d'Humieres [Tue, 16 Apr 2019 13:24:58 +0000 (15:24 +0200)]
pr89358_0.C: Replace dg-* with dg-lto-*.
2019-04-16 Dominique d'Humieres <dominiq@gcc.gnu.org>
* g++.dg/lto/pr89358_0.C: Replace dg-* with dg-lto-*.
From-SVN: r270390
Alexandre Oliva [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.
From-SVN: r270389
Alexandre Oliva [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.
From-SVN: r270388
Claudiu Zissulescu [Tue, 16 Apr 2019 10:21:15 +0000 (12:21 +0200)]
[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
From-SVN: r270387
Claudiu Zissulescu [Tue, 16 Apr 2019 10:21:03 +0000 (12:21 +0200)]
[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.
From-SVN: r270386
Claudiu Zissulescu [Tue, 16 Apr 2019 10:20:52 +0000 (12:20 +0200)]
[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.
From-SVN: r270385
Claudiu Zissulescu [Tue, 16 Apr 2019 10:20:40 +0000 (12:20 +0200)]
[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.
From-SVN: r270384
Kito Cheng [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.
Co-Authored-By: Shiva Chen <shiva0217@gmail.com>
From-SVN: r270383
Chung-Ju Wu [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.
From-SVN: r270382
Jakub Jelinek [Tue, 16 Apr 2019 08:40:58 +0000 (10:40 +0200)]
re PR target/90096 (Misleading option hint for AVX intrinsics)
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.
From-SVN: r270381
Jakub Jelinek [Tue, 16 Apr 2019 08:26:26 +0000 (10:26 +0200)]
re PR rtl-optimization/90082 (ICE in delete_unmarked_insns, at dce.c:653)
PR rtl-optimization/90082
* dce.c (can_delete_call): New function.
(deletable_insn_p, mark_insn): Use it.
* gcc.dg/pr90082.c: New test.
From-SVN: r270380
Jakub Jelinek [Tue, 16 Apr 2019 08:24:47 +0000 (10:24 +0200)]
re PR tree-optimization/90090 (ICE in mark_reachable_handlers, at tree-eh.c:3938 since r219202)
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.
From-SVN: r270379
Richard Biener [Tue, 16 Apr 2019 07:55:41 +0000 (07:55 +0000)]
re PR tree-optimization/56049 (Simplification to constants not done)
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.
From-SVN: r270378
Iain Buclaw [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.
From-SVN: r270377
GCC Administrator [Tue, 16 Apr 2019 00:16:12 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r270376
Jeff Law [Mon, 15 Apr 2019 21:19:21 +0000 (15:19 -0600)]
microblaze.c (microblaze_expand_block_move): Treat size and alignment as unsigned.
* config/microblaze/microblaze.c (microblaze_expand_block_move): Treat
size and alignment as unsigned.
From-SVN: r270373
Iain Buclaw [Mon, 15 Apr 2019 20:32:50 +0000 (20:32 +0000)]
Backport PRs 90059, 90060, 90062
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
From-SVN: r270372
Richard Biener [Mon, 15 Apr 2019 12:26:11 +0000 (12:26 +0000)]
re PR debug/90074 (wrong debug info at -O3)
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.
From-SVN: r270370
Richard Biener [Mon, 15 Apr 2019 11:59:02 +0000 (11:59 +0000)]
re PR tree-optimization/90071 (internal compiler error: SSA corruption)
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.
From-SVN: r270369
Segher Boessenkool [Mon, 15 Apr 2019 11:33:29 +0000 (13:33 +0200)]
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.
From-SVN: r270368
Richard Biener [Mon, 15 Apr 2019 10:09:08 +0000 (10:09 +0000)]
re PR ipa/88936 (-fipa-pta breaks bash (incorrect optimisation of recursive static function))
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.
From-SVN: r270366
Martin Jambor [Mon, 15 Apr 2019 08:30:36 +0000 (10:30 +0200)]
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.
From-SVN: r270364
Monk Chiang [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.
From-SVN: r270363
Monk Chiang [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.
From-SVN: r270362
Monk Chiang [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.
Co-Authored-By: Kito Cheng <kito.cheng@gmail.com>
Co-Authored-By: Shiva Chen <shiva0217@gmail.com>
From-SVN: r270361
Dominique d'Humieres [Mon, 15 Apr 2019 07:56:43 +0000 (09:56 +0200)]
re PR tree-optimization/90020 (-O2 -Os x86-64 wrong code generated for GNU Emacs)
2019-04-15 Dominique d'Humieres <dominiq@gcc.gnu.org>
PR tree-optimization/90020
* gcc.dg/torture/pr90020.c: Add linker options for darwin.
From-SVN: r270360
Chung-Ju Wu [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.
From-SVN: r270359
GCC Administrator [Mon, 15 Apr 2019 00:16:17 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r270358
Jan Hubicka [Sun, 14 Apr 2019 20:56:45 +0000 (22:56 +0200)]
re PR lto/89358 (Combining -std=c++14 and -std=c++17 objects gives ODR warnings)
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.
From-SVN: r270355
Thomas Koenig [Sun, 14 Apr 2019 20:15:48 +0000 (20:15 +0000)]
re PR fortran/85448 (Report binding label clash with a global identifyer)
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.
From-SVN: r270354
Paul Thomas [Sun, 14 Apr 2019 18:14:58 +0000 (18:14 +0000)]
re PR fortran/89843 (CFI_section delivers incorrect result descriptor)
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.
From-SVN: r270353
Johannes Pfau [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.
From-SVN: r270349
Rainer Orth [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.
From-SVN: r270348
Rainer Orth [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.
Co-Authored-By: Iain Buclaw <ibuclaw@gdcproject.org>
From-SVN: r270347
Rainer Orth [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.
From-SVN: r270346
Rainer Orth [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.
From-SVN: r270345
GCC Administrator [Sun, 14 Apr 2019 00:16:15 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r270344
Iain Buclaw [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.
From-SVN: r270341
Jakub Jelinek [Sat, 13 Apr 2019 15:22:23 +0000 (17:22 +0200)]
* gcc.pot: Regenerate.
From-SVN: r270340