On Darwin10 it's possible to make a 32b PPC build using the
'Rosetta' emulator. However, these builds need to make use of
Darwin9 crts (for exes, dylibs and bundles). This adds the
change to cater for bundles.
gcc/ChangeLog:
Backport from mainline.
2019-12-14 Iain Sandoe <iain@sandoe.co.uk>
* config/darwin.h (DARWIN_EXTRA_SPECS): Add new
bundle spec. (DARWIN_BUNDLE1_SPEC): New.
(STARTFILE_SPEC): Use darwin bundle spec.
* config/rs6000/darwin.h (DARWIN_BUNDLE1_SPEC): New.
(DARWIN_DYLIB1_SPEC): Delete duplicate.
From-SVN: r279732
2019-12-21 Paul Thomas <pault@gcc.gnu.org>
PR fortran/92753
* expr.c (find_inquiry_ref): Catch INQUIRY_LEN case, where the
temporary expression has been converted to a constant and make
the new expression accordingly. Correct the error in INQUIRY_RE
and INQUIRY_IM cases. The original rather than the resolved
expression was being used as the source in mpfr_set.
2019-12-21 Paul Thomas <pault@gcc.gnu.org>
PR fortran/92753
* gfortran.dg/inquiry_type_ref_5.f90 : New test.
From-SVN: r279697
Backported from mainline
2019-12-19 Jakub Jelinek <jakub@redhat.com>
PR fortran/92977
* frontend-passes.c (call_external_blas): Use || instead of |.
PR fortran/92977
* frontend-passes.c (in_omp_atomic): New variable.
(cfe_expr_0, matmul_to_var_expr, matmul_temp_args,
inline_matmul_assign, call_external_blas): Don't optimize in
EXEC_OMP_ATOMIC.
(optimize_namespace): Clear in_omp_atomic.
(gfc_code_walker): Set in_omp_atomic for EXEC_OMP_ATOMIC, save/restore
it around.
* gfortran.dg/gomp/pr92977.f90: New test.
From-SVN: r279676
Backported from mainline
2019-12-14 Jakub Jelinek <jakub@redhat.com>
PR ipa/92357
* ipa-fnsummary.c (ipa_fn_summary_write): Use
lto_symtab_encoder_iterator with lsei_start_function_in_partition and
lsei_next_function_in_partition instead of walking all cgraph nodes
in encoder.
From-SVN: r279675
Backported from mainline
2019-12-12 Jakub Jelinek <jakub@redhat.com>
PR target/92904
* config/i386/i386.c (ix86_gimplify_va_arg): If need_intregs and
not need_temp, decrease alignment of the read because the GPR save
area only guarantees 8-byte alignment.
* gcc.c-torture/execute/pr92904.c: New test.
From-SVN: r279673
Backported from mainline
2019-12-11 Jakub Jelinek <jakub@redhat.com>
PR fortran/92899
* trans-openmp.c (gfc_trans_omp_atomic): For GFC_OMP_ATOMIC_SWAP,
do look through conversion on expr2 if any.
* testsuite/libgomp.fortran/atomic1.f90: New test.
From-SVN: r279672
Backported from mainline
2019-12-11 Jakub Jelinek <jakub@redhat.com>
PR target/92723
* tree-vect-patterns.c (vect_recog_rotate_pattern): If dt is not
vect_internal_def, use oprnd1 as is, without trying to cast it.
Formatting fix.
* gcc.dg/vect/pr92723.c: New test.
From-SVN: r279671
Backported from mainline
2019-12-06 Jakub Jelinek <jakub@redhat.com>
PR c++/92831 - CWG 1299, not extending temporary lifetime for ?:
* cp-tree.h (extend_ref_init_temps): Add a new argument with NULL
default arg.
* call.c (set_up_extended_ref_temp): Add COND_GUARD argument, pass it
down to extend_ref_init_temps. Before pushing cleanup, if COND_GUARD
is non-NULL, create a bool temporary if needed, initialize to false
and guard the cleanup with the temporary being true.
(extend_ref_init_temps_1): Add COND_GUARD argument, pass it down
to recursive calls and set_up_extended_ref_temp. Handle COND_EXPR.
(extend_ref_init_temps): Add COND_GUARD argument, pass it down to
recursive calls and to extend_ref_init_temps_1.
* g++.dg/cpp0x/temp-extend2.C: New test.
From-SVN: r279669
Backported from mainline
2019-12-05 Jakub Jelinek <jakub@redhat.com>
PR fortran/92781
* trans-decl.c (gfc_get_symbol_decl): If sym->backend_decl is
current_function_decl, add length to current rather than parent
function and expect DECL_CONTEXT (length) to be current_function_decl.
* gfortran.dg/pr92781.f90: New test.
From-SVN: r279667
PR fortran/92756
* omp-low.c (check_omp_nesting_restrictions): If lang_GNU_Fortran,
diagnose teams not closely nested inside of target.
Backported from mainline
2019-12-04 Jakub Jelinek <jakub@redhat.com>
PR fortran/92756
* gfortran.dg/gomp/teams1.f90: New test.
From-SVN: r279666
Backported from mainline
2019-12-03 Jakub Jelinek <jakub@redhat.com>
PR c++/92695
* constexpr.c (cxx_bind_parameters_in_call): For virtual calls,
adjust the first argument to point to the derived object rather
than its base.
* g++.dg/cpp2a/constexpr-virtual14.C: New test.
From-SVN: r279664
Backported from mainline
2019-12-02 Jakub Jelinek <jakub@redhat.com>
PR c++/92695
* constexpr.c (cxx_eval_constant_expression) <case OBJ_TYPE_REF>: Use
STRIP_NOPS before checking for ADDR_EXPR.
* g++.dg/cpp2a/constexpr-virtual15.C: New test.
From-SVN: r279663
Backported from mainline
2019-11-29 Jakub Jelinek <jakub@redhat.com>
PR c++/60228
* parser.c (cp_parser_omp_declare_reduction_exprs): If
processing_template_decl, wrap the combiner or initializer
into EXPR_STMT.
* decl.c (start_preparsed_function): Don't start a lambda scope
for DECL_OMP_DECLARE_REDUCTION_P functions.
(finish_function): Don't finish a lambda scope for
DECL_OMP_DECLARE_REDUCTION_P functions, nor cp_fold_function
them nor cp_genericize them.
* mangle.c (decl_mangling_context): Look through
DECL_OMP_DECLARE_REDUCTION_P functions.
* semantics.c (expand_or_defer_fn_1): For DECL_OMP_DECLARE_REDUCTION_P
functions, use tentative linkage, don't keep their bodies with
-fkeep-inline-functions and return false at the end.
* g++.dg/gomp/openmp-simd-2.C: Don't expect bodies for
DECL_OMP_DECLARE_REDUCTION_P functions.
* testsuite/libgomp.c++/udr-20.C: New test.
* testsuite/libgomp.c++/udr-21.C: New test.
From-SVN: r279662
Backported from mainline
2019-11-28 Jakub Jelinek <jakub@redhat.com>
PR c++/92695
* decl2.c (mark_used): Don't call note_vague_linkage_fn for pure
virtual functions, even if they are declared inline.
* g++.dg/warn/inline3.C: New test.
From-SVN: r279661
Backported from mainline
2019-11-27 Jakub Jelinek <jakub@redhat.com>
PR c++/92524
* tree.c (replace_placeholders_r): Don't walk constructor elts with
RANGE_EXPR indexes.
* g++.dg/cpp0x/pr92524.C: New test.
From-SVN: r279659
Backported from mainline
2019-11-27 Jakub Jelinek <jakub@redhat.com>
PR debug/92664
* dwarf2out.c (lookup_filename): Use "<stdin>" instead of "".
From-SVN: r279658
Backported from mainline
2019-11-26 Jakub Jelinek <jakub@redhat.com>
PR c++/92648
* parser.c (cp_parser_std_attribute): For unknown attributes,
skip balanced token seq instead of trying to parse
attribute-argument-clause as expression list.
* g++.dg/cpp0x/gen-attrs-71.C: New test.
From-SVN: r279655
Backported from mainline
2019-11-26 Jakub Jelinek <jakub@redhat.com>
PR c++/61414
* c-attribs.c (handle_mode_attribute): Add mode attribute to
ENUMERAL_TYPEs.
* class.c (enum_to_min_precision): New hash_map.
(enum_min_precision): New function.
(check_bitfield_decl): Use it.
* g++.dg/cpp0x/enum23.C: Remove xfail.
* g++.dg/cpp0x/enum28.C: New test.
From-SVN: r279654
Backported from mainline
2019-11-26 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/92644
* tree-ssa-phiopt.c (minmax_replacement): Add INTEGRAL_TYPE_P check
next to INTEGER_CST checks.
* g++.dg/opt/pr92644.C: New test.
From-SVN: r279652
Backported from mainline
2019-11-23 Jakub Jelinek <jakub@redhat.com>
PR target/92615
* config/i386/i386.c (ix86_md_asm_adjust): If dest_mode is
GET_MODE (dest), is not QImode, using ZERO_EXTEND and dest is not
register_operand, force x into register before storing it into dest.
Formatting fix.
* gcc.target/i386/pr92615.c: New test.
From-SVN: r279651
Backported from mainline
2019-11-21 Jakub Jelinek <jakub@redhat.com>
Jason Merrill <jason@redhat.com>
PR c++/90842
* parser.c (cp_parser_decl_specifier_seq): For concept or typedef
break early if CP_PARSER_FLAGS_ONLY_MUTABLE_OR_CONSTEXPR.
For type specifiers, set CP_PARSER_FLAGS_NO_TYPE_DEFINITIONS
if CP_PARSER_FLAGS_ONLY_MUTABLE_OR_CONSTEXPR is set.
* g++.dg/cpp1y/lambda-generic-90842.C: New test.
From-SVN: r279649
The backend emits 16 bit memory loads for single element character
vector. As a result the character will not be right justified in the
GPR.
gcc/ChangeLog:
2019-12-17 Andreas Krebbel <krebbel@linux.ibm.com>
Backport from mainline
2019-12-16 Andreas Krebbel <krebbel@linux.ibm.com>
PR target/92950
* config/s390/vector.md ("mov<mode>" for V_8): Replace lh, lhy,
and lhrl with llc.
gcc/testsuite/ChangeLog:
2019-12-17 Andreas Krebbel <krebbel@linux.ibm.com>
Backport from mainline
2019-12-16 Andreas Krebbel <krebbel@linux.ibm.com>
PR target/92950
* gcc.target/s390/vector/pr92950.c: New test.
From-SVN: r279453
build_new_1 already passes tf_no_cleanup to build_value_init, but in this
testcase we end up calling build_value_init by way of
build_special_member_call, so we need to pass it to that function as well.
* init.c (build_new_1): Also pass tf_no_cleanup to
build_special_member_call.
From-SVN: r279335
Another place we need to look through the VIEW_CONVERT_EXPR we add to make a
use of a class NTTP have const type.
* pt.c (deducible_expression): Look through VIEW_CONVERT_EXPR.
From-SVN: r279333
Here unify was getting confused by the VIEW_CONVERT_EXPR we add in
finish_id_expression_1 to make class NTTP const when they're used in an
expression.
Tested x86_64-pc-linux-gnu, applying to trunk.
* pt.c (unify): Handle VIEW_CONVERT_EXPR.
From-SVN: r279332