- 21 Dec, 2018 22 commits
-
-
2018-12-21 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/69121 * ieee/ieee_arithmetic.F90: Provide missing interfaces for IEEE_SCALB. 2018-12-21 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/69121 * gfortran.dg/ieee/ieee_9.f90: New test. From-SVN: r267343
Steven G. Kargl committed -
re PR c++/86524 (std::less with pointer arguments not usable in static_assert in constexpr function) PR c++/86524 PR c++/88446 * cp-tree.h (cp_fold_maybe_rvalue, cp_fold_rvalue): Declare. (fold_non_dependent_expr): Add manifestly_const_eval argument. * constexpr.c (cxx_eval_builtin_function_call): Evaluate __builtin_constant_p if ctx->manifestly_const_eval even in constexpr functions. Don't reuse dummy{1,2} vars between different arguments. Use cp_fold_rvalue instead of cp_fully_fold. Fix comment typo. (fold_non_dependent_expr): Add manifestly_const_eval argument, pass it through to cxx_eval_outermost_constant_expr and maybe_constant_value. * cp-gimplify.c (cp_fold_maybe_rvalue, cp_fold_rvalue): No longer static. * semantics.c (finish_static_assert): Call fold_non_dependent_expr with true as manifestly_const_eval. * g++.dg/cpp1y/constexpr-86524.C: New test. * g++.dg/cpp2a/is-constant-evaluated4.C: New test. * g++.dg/cpp2a/is-constant-evaluated5.C: New test. * g++.dg/cpp2a/is-constant-evaluated6.C: New test. From-SVN: r267341
Jakub Jelinek committed -
From-SVN: r267340
Paul Thomas committed -
PR middle-end/85594 PR middle-end/88553 * omp-expand.c (extract_omp_for_update_vars): Regimplify the condition if needed. (expand_omp_for_generic): Don't clobber t temporary for ordered loops. * gcc.dg/gomp/pr85594.c: New test. * gcc.dg/gomp/pr88553.c: New test. From-SVN: r267339
Jakub Jelinek committed -
PR ipa/88561 * ipa-polymorphic-call.c (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Handle arguments of thunks correctly. (ipa_polymorphic_call_context::get_dynamic_context): Be ready for NULL instance pinter. * lto-cgraph.c (lto_output_node): Always stream thunk info. From-SVN: r267338
Jan Hubicka committed -
2018-12-21 Paul Thomas <pault@gcc.gnu.org> PR fortran/87881 * expr.c (find_inquiry_ref): Loop through the inquiry refs in case there are two of them. (simplify_ref_chain): Return true after a successful call to find_inquiry_ref. 2018-12-21 Paul Thomas <pault@gcc.gnu.org> PR fortran/87881 * gfortran.dg/inquiry_part_ref_4.f90: New test. From-SVN: r267337
Paul Thomas committed -
gcc/ChangeLog: 2018-12-21 Andreas Krebbel <krebbel@linux.ibm.com> * config/s390/vector.md ("floatv2div2df2", "floatunsv2div2df2") ("fix_truncv2dfv2di2", "fixuns_truncv2dfv2di2"): New pattern definitions. gcc/testsuite/ChangeLog: 2018-12-21 Andreas Krebbel <krebbel@linux.ibm.com> * gcc.target/s390/vector/fp-signedint-convert-1.c: New test. * gcc.target/s390/vector/fp-unsignedint-convert-1.c: New test. From-SVN: r267336
Andreas Krebbel committed -
* gcc.target/i386/pr88418.c (dg-options): Add -mno-avx. From-SVN: r267334
Uros Bizjak committed -
2018-12-21 Thomas Preud'homme <thomas.preudhomme@linaro.org> * MAINTAINERS (Write After Approval): Update my maintainer address. From-SVN: r267330
Thomas Preud'homme committed -
From-SVN: r267329
Gergö Barany committed -
PR rtl-optimization/87727 * combine.c (cant_combine_insn_p): On a LEAF_REGISTERS target, combine again moves from leaf hard registers. * final.c (final_scan_insn_1) <NOTE_INSN_INLINE_ENTRY>: Minor tweak. From-SVN: r267328
Eric Botcazou committed -
PR target/88522 * config/i386/sse.md (*avx512pf_gatherpf<mode>sf_mask, *avx512pf_gatherpf<mode>df_mask, *avx512pf_scatterpf<mode>sf_mask, *avx512pf_scatterpf<mode>df_mask): Use %X5 instead of %5 for -masm=intel. (gatherq_mode): Remove mode iterator. (*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2): Use X instead of <xtg_mode>. (*avx512f_gatherdi<mode>): Use X instead of <gatherq_mode>. (*avx512f_gatherdi<mode>_2, *avx512f_scattersi<mode>, *avx512f_scatterdi<mode>): Use %X5 for -masm=intel. From-SVN: r267327
Jakub Jelinek committed -
re PR rtl-optimization/88563 (wrong code with -O2 -fno-code-hoisting -fno-tree-ccp -fno-tree-dominator-opts -fno-tree-forwprop -fno-tree-fre -fno-tree-pre -fno-tree-vrp) PR rtl-optimization/88563 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Swap innermode and mode arguments to convert_modes. Likewise swap mode and word_mode arguments. Handle both arguments with VOIDmode before convert_modes of one of them. Formatting fixes. * gcc.dg/pr88563.c: New test. From-SVN: r267326
Jakub Jelinek committed -
PR target/88556 * internal-fn.def (COSH): New. (SINH): Ditto. (TANH): Ditto. * optabs.def (cosh_optab): New. (sinh_optab): Ditto. (tanh_optab): Ditto. * config/i386/i386-protos.h (ix86_emit_i387_sinh): New prototype. (ix86_emit_i387_cosh): Ditto. (ix86_emit_i387_tanh): Ditto. * config/i386/i386.c (ix86_emit_i387_sinh): New function. (ix86_emit_i387_cosh): Ditto. (ix86_emit_i387_tanh): Ditto. * config/i386/i386.md (sinhxf2): New expander. (sinh<mode>2): Ditto. (coshxf2): Ditto. (cosh<mode>2): Ditto. (tanhxf2): Ditto. (tanh<mode>2): Ditto. From-SVN: r267325
Uros Bizjak committed -
PR c++/87125 * g++.dg/cpp0x/pr87125.C: New test. From-SVN: r267324
Jakub Jelinek committed -
On some version of dejagnu, options in RUNTESTFLAGS are appended to the command-line and thus any -mfloat-abi=softfp or -mfloat-abi=hard in there overwrite the -mfloat-abi=soft in the dg-options for size-optimization-ieee-* tests. Test is still run though because arm_soft_ok returns true if -mfloat-abi=soft is accepted, even if the file is not compiled for softfloat due to a later -mfloat-abi on the command line. This patch adds a dg-skip-if to those tests to ensure they are not run in softfp or hard mode. 2018-12-21 Thomas Preud'homme <thomas.preudhomme@linaro.org> gcc/testsuite/ * gcc.target/arm/size-optimization-ieee-1.c: Skip if passing -mfloat-abi=softfp or -mfloat-abi=hard. * gcc.target/arm/size-optimization-ieee-2.c: Likewise. * gcc.target/arm/size-optimization-ieee-3.c: Likewise. From-SVN: r267323
Thomas Preud'homme committed -
PR target/88547 * config/i386/i386.c (ix86_expand_int_sse_cmp): Optimize x > y ? 0 : -1 into min (x, y) == x ? -1 : 0. * gcc.target/i386/pr88547-1.c: Expect only 2 knotb and 2 knotw insns instead of 4, check for vpminud, vpminuq and no vpsubd or vpsubq. * gcc.target/i386/sse2-pr88547-1.c: New test. * gcc.target/i386/sse2-pr88547-2.c: New test. * gcc.target/i386/sse4_1-pr88547-1.c: New test. * gcc.target/i386/sse4_1-pr88547-2.c: New test. * gcc.target/i386/avx2-pr88547-1.c: New test. * gcc.target/i386/avx2-pr88547-2.c: New test. * gcc.target/i386/avx512f-pr88547-2.c: New test. * gcc.target/i386/avx512vl-pr88547-1.c: New test. * gcc.target/i386/avx512vl-pr88547-2.c: New test. * gcc.target/i386/avx512vl-pr88547-3.c: New test. * gcc.target/i386/avx512f_cond_move.c (y): Change from unsigned int array to int array. From-SVN: r267322
Jakub Jelinek committed -
They are no different from their VAESENC{,LAST} counterparts in this regard. From-SVN: r267321
Jan Beulich committed -
Introduce @name as a means to specify alternate multilib profiles as arguments to --with-multilib-list. So far this is only implemented for ARM. for gcc/ChangeLog * config.gcc (tmake_file): Add name to tmake_file for each @name in --with-multilib-list on arm-*-* targets. * doc/install.texi (with-multilib-list): Document it. From-SVN: r267320
Alexandre Oliva committed -
* pt.c (convert_nontype_argument): If the expr is a PTRMEM_CST, also check if the type we're converting it to is TYPE_PTRMEM_P. * g++.dg/cpp0x/ptrmem-cst-arg1.C: Tweak dg-error. * g++.dg/cpp2a/nontype-class10.C: New test. * g++.dg/template/pr54858.C: Tweak dg-error. From-SVN: r267319
Marek Polacek committed -
tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Use DR_TARGET_ALIGNMENT on dr_info rather than dr. * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Use DR_TARGET_ALIGNMENT on dr_info rather than dr. Spelling fixes. From-SVN: r267318
Jakub Jelinek committed -
From-SVN: r267317
GCC Administrator committed
-
- 20 Dec, 2018 18 commits
-
-
tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Don't do versioning for data accesses with misaligned step. 2018-12-20 Joern Rennecke <joern.rennecke@riscy-ip.com> * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Don't do versioning for data accesses with misaligned step. From-SVN: r267314
Joern Rennecke committed -
When address of packed member of struct or union is taken, it may result in an unaligned pointer value. This patch adds -Waddress-of-packed-member to check alignment at pointer assignment and warn unaligned address as well as unaligned pointer: $ cat x.i struct pair_t { char c; int i; } __attribute__ ((packed)); extern struct pair_t p; int *addr = &p.i; $ gcc -O2 -S x.i x.i:8:13: warning: taking address of packed member of ‘struct pair_t’ may result in an unaligned pointer value [-Waddress-of-packed-member] 8 | int *addr = &p.i; | ^ $ cat c.i struct B { int i; }; struct C { struct B b; } __attribute__ ((packed)); long* g8 (struct C *p) { return p; } $ gcc -O2 -S c.i -Wno-incompatible-pointer-types c.i: In function ‘g8’: c.i:4:18: warning: converting a packed ‘struct C *’ pointer (alignment 1) to ‘long int *’ (alignment 8) may may result in an unaligned pointer value [-Waddress-of-packed-member] 4 | long* g8 (struct C *p) { return p; } | ^ c.i:2:8: note: defined here 2 | struct C { struct B b; } __attribute__ ((packed)); | ^ $ This warning is enabled by default. Since read_encoded_value_with_base in unwind-pe.h has union unaligned { void *ptr; unsigned u2 __attribute__ ((mode (HI))); unsigned u4 __attribute__ ((mode (SI))); unsigned u8 __attribute__ ((mode (DI))); signed s2 __attribute__ ((mode (HI))); signed s4 __attribute__ ((mode (SI))); signed s8 __attribute__ ((mode (DI))); } __attribute__((__packed__)); _Unwind_Internal_Ptr result; and GCC warns: gcc/libgcc/unwind-pe.h:210:37: warning: taking address of packed member of 'union unaligned' may result in an unaligned pointer value [-Waddress-of-packed-member] result = (_Unwind_Internal_Ptr) u->ptr; ^ we need to add GCC pragma to ignore -Waddress-of-packed-member. gcc/ PR c/51628 * doc/invoke.texi: Document -Wno-address-of-packed-member. gcc/c-family/ PR c/51628 * c-common.h (warn_for_address_or_pointer_of_packed_member): New. * c-warn.c (check_alignment_of_packed_member): New function. (check_address_of_packed_member): Likewise. (check_and_warn_address_of_packed_member): Likewise. (warn_for_address_or_pointer_of_packed_member): Likewise. * c.opt: Add -Wno-address-of-packed-member. gcc/c/ PR c/51628 * c-typeck.c (convert_for_assignment): Call warn_for_address_or_pointer_of_packed_member. gcc/cp/ PR c/51628 * call.c (convert_for_arg_passing): Call warn_for_address_or_pointer_of_packed_member. * typeck.c (convert_for_assignment): Likewise. gcc/testsuite/ PR c/51628 * c-c++-common/pr51628-1.c: New test. * c-c++-common/pr51628-2.c: Likewise. * c-c++-common/pr51628-3.c: Likewise. * c-c++-common/pr51628-4.c: Likewise. * c-c++-common/pr51628-5.c: Likewise. * c-c++-common/pr51628-6.c: Likewise. * c-c++-common/pr51628-7.c: Likewise. * c-c++-common/pr51628-8.c: Likewise. * c-c++-common/pr51628-9.c: Likewise. * c-c++-common/pr51628-10.c: Likewise. * c-c++-common/pr51628-11.c: Likewise. * c-c++-common/pr51628-12.c: Likewise. * c-c++-common/pr51628-13.c: Likewise. * c-c++-common/pr51628-14.c: Likewise. * c-c++-common/pr51628-15.c: Likewise. * c-c++-common/pr51628-26.c: Likewise. * c-c++-common/pr51628-27.c: Likewise. * c-c++-common/pr51628-28.c: Likewise. * c-c++-common/pr51628-29.c: Likewise. * c-c++-common/pr51628-30.c: Likewise. * c-c++-common/pr51628-31.c: Likewise. * c-c++-common/pr51628-32.c: Likewise. * gcc.dg/pr51628-17.c: Likewise. * gcc.dg/pr51628-18.c: Likewise. * gcc.dg/pr51628-19.c: Likewise. * gcc.dg/pr51628-20.c: Likewise. * gcc.dg/pr51628-21.c: Likewise. * gcc.dg/pr51628-22.c: Likewise. * gcc.dg/pr51628-23.c: Likewise. * gcc.dg/pr51628-24.c: Likewise. * gcc.dg/pr51628-25.c: Likewise. * c-c++-common/asan/misalign-1.c: Add -Wno-address-of-packed-member. * c-c++-common/asan/misalign-2.c: Likewise. * c-c++-common/ubsan/align-2.c: Likewise. * c-c++-common/ubsan/align-4.c: Likewise. * c-c++-common/ubsan/align-6.c: Likewise. * c-c++-common/ubsan/align-7.c: Likewise. * c-c++-common/ubsan/align-8.c: Likewise. * c-c++-common/ubsan/align-10.c: Likewise. * g++.dg/ubsan/align-2.C: Likewise. * gcc.target/i386/avx512bw-vmovdqu16-2.c: Likewise. * gcc.target/i386/avx512f-vmovdqu32-2.c: Likewise. * gcc.target/i386/avx512f-vmovdqu64-2.c: Likewise. * gcc.target/i386/avx512vl-vmovdqu16-2.c: Likewise. * gcc.target/i386/avx512vl-vmovdqu32-2.c: Likewise. * gcc.target/i386/avx512vl-vmovdqu64-2.c: Likewise. libgcc/ * unwind-pe.h (read_encoded_value_with_base): Add GCC pragma to ignore -Waddress-of-packed-member. From-SVN: r267313
H.J. Lu committed -
2018-12-20 Steven G. Kargl <kargl@gcc.gnu.org> * libgfortran/ieee/ieee_arithmetic.F90: Re-organize file to eliminate #ifdef ... #endif. No functional change. From-SVN: r267312
Steven G. Kargl committed -
* testsuite/27_io/filesystem/operations/proximate.cc: Fix test for MinGW. * testsuite/27_io/filesystem/path/append/source.cc: Likewise. * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise. From-SVN: r267308
Jonathan Wakely committed -
2018-12-20 Vladimir Makarov <vmakarov@redhat.com> PR target/88457 * ira-color.c (fast_allocation): Choose the best cost hard reg. 2018-12-20 Vladimir Makarov <vmakarov@redhat.com> PR target/88457 * ira-color.c (fast_allocation): Choose the best cost hard reg. From-SVN: r267307
Vladimir Makarov committed -
PR c++/88180 * parser.c (cp_parser_class_specifier_1): If cp_parser_check_type_definition fails, skip default arguments, NSDMIs, etc. like for erroneous template args. * g++.dg/parse/pr88180.C: New test. * g++.dg/pr85039-1.C: Don't expect diagnostics inside of the type definition's NSDMIs. From-SVN: r267306
Jakub Jelinek committed -
* cp-tree.h (cp_fully_fold_init): Declare. * cp-gimplify.c (cp_fully_fold_init): New function. * typeck2.c (split_nonconstant_init, store_init_value): Use it instead of cp_fully_fold. From-SVN: r267305
Jakub Jelinek committed -
For some reason we missed ABS out of the list of supported integer operations when adding the SVE port initially. 2018-12-20 Richard Sandiford <richard.sandiford@arm.com> gcc/ * config/aarch64/iterators.md (SVE_INT_UNARY, fp_int_op): Add abs. (SVE_FP_UNARY): Sort. gcc/testsuite/ * gcc.target/aarch64/pr64946.c: Force nosve. * gcc.target/aarch64/ssadv16qi.c: Likewise. * gcc.target/aarch64/usadv16qi.c: Likewise. * gcc.target/aarch64/vect-abs-compile.c: Likewise. * gcc.target/aarch64/sve/abs_1.c: New test. From-SVN: r267304
Richard Sandiford committed -
This patch fixes a cut-&-pasto in the (match_dup 4) version of "cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>". (It's a shame that there's so much cut-&-paste in these patterns, but it's hard to avoid without more infrastructure.) 2018-12-20 Richard Sandiford <richard.sandiford@arm.com> gcc/ * config/aarch64/aarch64-sve.md (*cond_<optab><mode>_4): Use sve_fmla_op rather than sve_fmad_op for the movprfx alternative. gcc/testsuite/ * gcc.target/aarch64/sve/fmla_2.c: New test. * gcc.target/aarch64/sve/fmla_2_run.c: Likewise From-SVN: r267303
Richard Sandiford committed -
PR tree-optimization/84053 - missing -Warray-bounds accessing a local array across inlined function boundaries gcc/testsuite/ChangeLog: * gcc.dg/Warray-bounds-36.c: New test. From-SVN: r267302
Martin Sebor committed -
gcc/c-family/ChangeLog: PR c++/87504 * c-warn.c (get_outermost_macro_expansion): New function. (spelled_the_same_p): Use it to unwind the macro expansions, and compare the outermost macro in each nested expansion, rather than the innermost. gcc/testsuite/ChangeLog: PR c++/87504 * c-c++-common/Wtautological-compare-8.c: New test. From-SVN: r267299
David Malcolm committed -
2018-12-20 Martin Jambor <mjambor@suse.cz> PR ipa/88214 * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Assert that ptr is a pointer. From-SVN: r267298
Martin Jambor committed -
* testsuite/27_io/filesystem/directory_entry/lwg3171.cc: New test (missed from previous commit). From-SVN: r267297
Jonathan Wakely committed -
re PR tree-optimization/84362 (Auto-vectorization regression when accessing member variable through getter/accessor) 2018-12-20 Richard Biener <rguenther@suse.de> PR tree-optimization/84362 * tree-ssa-loop-im.c: Include alias.h, builtins.h and tree-dfa.h. (struct im_mem_ref): add ref_canonical flag. (struct mem_ref_hasher): Use ao_ref as compare_type. (mem_ref_hasher::equal): Adjust and add variant comparing ao_ref parts. (mem_ref_alloc): Take ao_ref parameter, initialize ref_canonical member. (gather_mem_refs_stmt): Set up ao_ref early and do the lookup using it. If we have non-equal refs canonicalize the one in the hashtable used for insertion. (tree_ssa_lim_initialize): Adjust. * g++.dg/vect/pr84362.cc: New testcase. From-SVN: r267296
Richard Biener committed -
From-SVN: r267294
Xiong Hu Luo committed -
PR target/88547 * config/i386/i386.c (ix86_expand_sse_movcc): For maskcmp, try to emit vpmovm2? instruction perhaps after knot?. Reorganize code so that it doesn't have to test !maskcmp in almost every conditional. * gcc.target/i386/pr88547-1.c: New test. From-SVN: r267293
Jakub Jelinek committed -
svn r266496, git commit ab6b1bb456f broke non-linux powerpc builds due to GNU_USER_DYNAMIC_LINKER being undefined. * config/rs6000/sysv4.h (GNU_USER_DYNAMIC_LINKER): Define. From-SVN: r267292
Alan Modra committed -
From-SVN: r267291
GCC Administrator committed
-