1. 19 Jul, 2018 8 commits
    • i386: Test __has_attribute (__indirect_return__) · ea298fe5
      The new indirect_return attribute is intended to mark swapcontext in
      <ucontext.h>.  Test __has_attribute (__indirect_return__) so that it
      can be backported to GCC 8.
      
      	PR target/86560
      	* gcc.target/i386/pr86560-4.c: New test.
      	* gcc.target/i386/pr86560-5.c: Likewise.
      ---
       gcc/testsuite/gcc.target/i386/pr86560-4.c | 21 +++++++++++++++++++++
       gcc/testsuite/gcc.target/i386/pr86560-5.c | 21 +++++++++++++++++++++
       2 files changed, 42 insertions(+)
       create mode 100644 gcc/testsuite/gcc.target/i386/pr86560-4.c
       create mode 100644 gcc/testsuite/gcc.target/i386/pr86560-5.c
      
      diff --git a/gcc/testsuite/gcc.target/i386/pr86560-4.c b/gcc/testsuite/gcc.target/i386/pr86560-4.c
      new file mode 100644
      index 00000000000..a623e3dcbeb
      --- /dev/null
      +++ b/gcc/testsuite/gcc.target/i386/pr86560-4.c
      @@ -0,0 +1,21 @@
      +/* { dg-do compile } */
      +/* { dg-options "-O2 -fcf-protection" } */
      +/* { dg-final { scan-assembler-times {\mendbr} 2 } } */
      +
      +struct ucontext;
      +
      +extern int (*bar) (struct ucontext *)
      +#ifdef __has_attribute
      +# if __has_attribute (indirect_return)
      +  __attribute__((__indirect_return__))
      +# endif
      +#endif
      +;
      +
      +extern int res;
      +
      +void
      +foo (struct ucontext *oucp)
      +{
      +  res = bar (oucp);
      +}
      diff --git a/gcc/testsuite/gcc.target/i386/pr86560-5.c b/gcc/testsuite/gcc.target/i386/pr86560-5.c
      new file mode 100644
      index 00000000000..33b0f6424c2
      --- /dev/null
      +++ b/gcc/testsuite/gcc.target/i386/pr86560-5.c
      @@ -0,0 +1,21 @@
      +/* { dg-do compile } */
      +/* { dg-options "-O2 -fcf-protection" } */
      +/* { dg-final { scan-assembler-times {\mendbr} 2 } } */
      +
      +struct ucontext;
      +
      +extern int (*bar) (struct ucontext *)
      +#ifdef __has_attribute
      +# if __has_attribute (__indirect_return__)
      +  __attribute__((__indirect_return__))
      +# endif
      +#endif
      +;
      +
      +extern int res;
      +
      +void
      +foo (struct ucontext *oucp)
      +{
      +  res = bar (oucp);
      +}
      -- 
      2.17.1
      
      From-SVN: r262878
      H.J. Lu committed
    • i386: Change indirect_return to function type attribute · 39a6a243
      In
      
      struct ucontext;
      typedef struct ucontext ucontext_t;
      
      extern int (*bar) (ucontext_t *__restrict __oucp,
                         const ucontext_t *__restrict __ucp)
        __attribute__((__indirect_return__));
      
      extern int res;
      
      void
      foo (ucontext_t *oucp, ucontext_t *ucp)
      {
        res = bar (oucp, ucp);
      }
      
      bar() may return via indirect branch.  This patch changes indirect_return
      to type attribute to allow indirect_return attribute on variable or type
      of function pointer so that ENDBR can be inserted after call to bar().
      
      gcc/
      
      	PR target/86560
      	* config/i386/i386.c (rest_of_insert_endbranch): Lookup
      	indirect_return as function type attribute.
      	(ix86_attribute_table): Change indirect_return to function
      	type attribute.
      	* doc/extend.texi: Update indirect_return attribute.
      
      gcc/testsuite/
      
      	PR target/86560
      	* gcc.target/i386/pr86560-1.c: New test.
      	* gcc.target/i386/pr86560-2.c: Likewise.
      	* gcc.target/i386/pr86560-3.c: Likewise.
      
      From-SVN: r262877
      H.J. Lu committed
    • [Fortran] Use MIN/MAX_EXPR or IFN_FMIN/MAX for min/max intrinsics when possible · e0c27d52
      	* trans-intrinsic.c: (gfc_conv_intrinsic_minmax): Emit MIN_MAX_EXPR
      	or IFN_FMIN/FMAX sequence to calculate the min/max when possible.
      
      	* gfortran.dg/max_fmax_aarch64.f90: New test.
      	* gfortran.dg/min_fmin_aarch64.f90: Likewise.
      	* gfortran.dg/minmax_integer.f90: Likewise.
      
      From-SVN: r262876
      Kyrylo Tkachov committed
    • p784.C: Add -fpermissive. · b4a3f1e9
      2018-07-19  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* g++.old-deja/g++.mike/p784.C: Add -fpermissive.
      
      From-SVN: r262875
      Paolo Carlini committed
    • wide-int.h (widest2_int): New. · 3bb1161f
      	* wide-int.h (widest2_int): New.
      	* gimple-fold.c (arith_overflowed_p): Use it.
      	* tree.h (widest2_int_cst): New.
      	* tree-vrp.c (wide_int_binop_overflow): Rename from
      	vrp_int_const_binop.
      	Rewrite to work on trees.
      	(extract_range_from_multiplicative_op_1): Abstract code to...
      	(wide_int_range_min_max): ...here.
      	(wide_int_range_cross_product): ...and here.
      	(extract_range_from_binary_expr_1): Abstract overflow code to...
      	(wide_int_range_cross_product_wrapping): ...here.
      	* tree-vrp.h (wide_int_range_cross_product): New.
      	(wide_int_range_cross_product_wrapping): New.
      
      From-SVN: r262874
      Aldy Hernandez committed
    • simple-object-elf.c (ENOTSUP): If not defined by errno.h, redirect to ENOSYS. · 30ae6662
      2018-07-19  Eli Zaretskii  <eliz@gnu.org>
      
      	* simple-object-elf.c (ENOTSUP): If not defined by errno.h, redirect
      	to ENOSYS.
      
      From-SVN: r262872
      Eli Zaretskii committed
    • x86-tune-costs.h (skylake_memcpy, [...]): Replace rep_prefix with unrolling for size 512. · 6e559c70
      	* config/i386/x86-tune-costs.h (skylake_memcpy,
      	skylake_memset): Replace rep_prefix with unrolling for size 512.
      
      Co-Authored-By: Julia Koval <julia.koval@intel.com>
      
      From-SVN: r262871
      Andrew Senkevich committed
    • Daily bump. · 4a4dab51
      From-SVN: r262870
      GCC Administrator committed
  2. 18 Jul, 2018 13 commits
    • re PR tree-optimization/86544 (Popcount detection generates different code on C and C++) · 7f15cc4d
      gcc/ChangeLog:
      
      2018-07-18  Kugan Vivekanandarajah  <kuganv@linaro.org>
      
      	PR middle-end/86544
      	* tree-ssa-phiopt.c (cond_removal_in_popcount_pattern): Handle comparision with EQ_EXPR
      	in last stmt.
      
      gcc/testsuite/ChangeLog:
      
      2018-07-18  Kugan Vivekanandarajah  <kuganv@linaro.org>
      
      	PR middle-end/86544
      	* g++.dg/tree-ssa/pr86544.C: New test.
      
      From-SVN: r262864
      Kugan Vivekanandarajah committed
    • extend.texi (PowerPC AltiVec Built-in Functions): Rename this subsection to… · d46d010b
      extend.texi (PowerPC AltiVec Built-in Functions): Rename this subsection to "PowerPC AltiVec/VSX Built-in Functions".
      
      gcc/ChangeLog:
      
      2018-07-18  Kelvin Nilsen  <kelvin@gcc.gnu.org>
      
      	* doc/extend.texi (PowerPC AltiVec Built-in Functions): Rename
      	this subsection to "PowerPC AltiVec/VSX Built-in Functions".
      	(PowerPC AltiVec/VSX Built-in Functions): New name for subsection
      	previously known as "PowerPC AltiVec Built-in Functions".  Move
      	some material to new subsubsections "PowerPC AltiVec Built-in
      	Functions on ISA 2.06" and "PowerPC AltiVec Built-in Functions on
      	ISA 2.07".
      	(PowerPC Altivec Built-in Functions on ISA 2.05): New subsubsection.
      	(PowerPC Altivec Built-in Functions on ISA 2.06): Likewise.
      	(PowerPC Altivec Built-in Functions on ISA 2.07): Likewise.
      	(PowerPC Altivec Built-in Functions on ISA 3.0): Likewise.
      
      From-SVN: r262863
      Kelvin Nilsen committed
    • re PR c++/86550 (Lambda parsing allows arbitrary types in decl-specifier-seq) · a171a8bb
      	PR c++/86550
      	* parser.c (cp_parser_decl_specifier_seq): Diagnose invalid type
      	specifier if CP_PARSER_FLAGS_ONLY_MUTABLE_OR_CONSTEXPR.
      
      	* g++.dg/cpp0x/lambda/lambda-86550.C: New test.
      
      From-SVN: r262862
      Jakub Jelinek committed
    • re PR c/69558 (glib2 warning pragmas stopped working) · 6f41f92b
      libcpp:
      2018-07-18  Bernd Edlinger  <bernd.edlinger@hotmail.de>
      
              PR 69558
              * macro.c (enter_macro_context): Change the location info for builtin
              macros and _Pragma from location of the closing parenthesis to location
              of the macro expansion point.
      
      testsuite:
      2018-07-18  Bernd Edlinger  <bernd.edlinger@hotmail.de>
      
              PR 69558
              * c-c++-common/cpp/diagnostic-pragma-2.c: New test.
              * c-c++-common/pr69558.c: Remove xfail.
              * gcc.dg/cpp/builtin-macro-1.c: Adjust test expectations.
              * gcc.dg/pr61817-1.c: Likewise.
              * gcc.dg/pr61817-2.c: Likewise.
              * g++.dg/plugin/pragma_plugin.c: Warn at expansion_point_location.
      
      From-SVN: r262861
      Bernd Edlinger committed
    • re PR fortran/85599 (warn about short-circuiting of logical expressions for non-pure functions) · 6457b1f0
      2018-07-18  Janus Weil  <janus@gcc.gnu.org>
      	    Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/85599
      	* dump-parse-tree.c (show_attr): Add handling of implicit_pure.
      	* frontend-passes.c (do_warn_function_elimination): Do not warn for
      	pure functions.
      	* gfortran.h: Add prototypes for gfc_pure_function and
      	gfc_implicit_pure_function.
      	* gfortran.texi: Add chapter on evaluation of logical expressions.
      	* invoke.texi: Mention that -Wfunction-elimination is implied
      	by -Wextra.
      	* lang.opt: Make -Wextra imply -Wfunction-elimination.
      	* resolve.c (pure_function): Rename to gfc_pure_function.
      	(gfc_implicit_pure_function): New function.
      	(check_pure_function): Use it here.
      	(impure_function_callback): New function.
      	(resolve_operator): Call it via gfc_expr_walker.
      
      
      2018-07-18  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/85599
      	* gfortran.dg/function_optimize_5.f90: Add option
      	'-faggressive-function-elimination' and update dg-warning clauses.
      	* gfortran.dg/short_circuiting.f90: New test.
      
      Co-Authored-By: Thomas Koenig <tkoenig@gcc.gnu.org>
      
      From-SVN: r262860
      Janus Weil committed
    • PR c++/86190 - bogus -Wsign-conversion warning · c56e9727
      	PR c++/86190 - bogus -Wsign-conversion warning
      	* typeck.c (cp_build_binary_op): Fix formatting.  Add a warning
      	sentinel.
      
      	* g++.dg/warn/Wsign-conversion-3.C: New test.
      	* g++.dg/warn/Wsign-conversion-4.C: New test.
      
      From-SVN: r262855
      Marek Polacek committed
    • re PR target/86557 (missed vectorization with std::vector compared to icc 18) · eb592645
      2018-07-18  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/86557
      	* tree-vect-patterns.c (vect_recog_divmod_pattern): Also handle
      	EXACT_DIV_EXPR.
      
      From-SVN: r262854
      Richard Biener committed
    • 2018-07-18 Paolo Carlini <paolo.carlini@oracle.com> · 02920765
      	* Fix typos in ChangeLog entries.
      
      From-SVN: r262852
      Paolo Carlini committed
    • re PR c++/59480 (Missing error diagnostic: friend declaration specifying a… · 6498dea6
      re PR c++/59480 (Missing error diagnostic: friend declaration specifying a default argument must be a definition)
      
      /cp
      2018-07-18  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* class.c (note_name_declared_in_class): Prefer permerror + inform
      	to a pair of permerrors; use DECL_SOURCE_LOCATION.
      
      /testsuite
      2018-07-18  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* g++.dg/ext/uow-3.C: Adjust.
      	* g++.dg/ext/uow-4.C: Likewise.
      	* g++.dg/lookup/name-clash11.C: Likewise.
      	* g++.dg/lookup/name-clash7.C: Likewise.
      	* g++.dg/lookup/redecl1.C: Likewise.
      	* g++.dg/warn/changes-meaning.C: Likewise.
      	* g++.old-deja/g++.jason/scoping8.C: Likewise.
      	* g++.old-deja/g++.law/nest1.C: Likewise.
      
      /cp
      2019-07-18  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/59480, DR 136
      	* decl.c (check_no_redeclaration_friend_default_args): New.
      	(duplicate_decls): Use the latter; also check that a friend
      	declaration specifying default arguments is a definition.
      
      /testsuite
      2019-07-18  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/59480, DR 136
      	* g++.dg/other/friend8.C: New.
      	* g++.dg/other/friend9.C: Likewise.
      	* g++.dg/other/friend10.C: Likewise.
      	* g++.dg/other/friend11.C: Likewise.
      	* g++.dg/other/friend12.C: Likewise.
      	* g++.dg/parse/defarg4.C: Compile with -fpermissive -w.
      	* g++.dg/parse/defarg8.C: Likewise.
      
      From-SVN: r262851
      Paolo Carlini committed
    • S/390: Add CFI for mcount call sequences · 0559979c
      2018-07-18  Ilya Leoshkevich  <iii@linux.ibm.com>
      
      	* config/s390/s390.c (s390_function_profiler): Generate CFI.
      
      From-SVN: r262850
      Ilya Leoshkevich committed
    • re PR debug/86523 (ICE in gen_member_die, at dwarf2out.c:24933 starting from r262560) · 97f13235
      2018-07-18  Richard Biener  <rguenther@suse.de>
      
      	PR debug/86523
      	cp/
      	* decl2.c (c_parse_final_cleanups): Call write_out_vars before
      	start_static_storage_duration_function sets current_function_decl.
      
      	* g++.dg/lto/pr86523-3_0.C: New testcase.
      
      From-SVN: r262849
      Richard Biener committed
    • arm.c (get_label_padding): Update for recent changes to label_to_alignment. · df6a7b9d
      	* config/arm/arm.c (get_label_padding): Update for recent
      	changes to label_to_alignment.
      
      From-SVN: r262848
      Jeff Law committed
    • Daily bump. · 9b12ae80
      From-SVN: r262846
      GCC Administrator committed
  3. 17 Jul, 2018 19 commits