- 19 Jul, 2018 8 commits
-
-
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 -
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 -
* 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 -
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. * 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 -
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 -
* 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 -
From-SVN: r262870
GCC Administrator committed
-
- 18 Jul, 2018 13 commits
-
-
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 "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 -
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 -
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 -
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 * 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 -
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 -
* Fix typos in ChangeLog entries. From-SVN: r262852
Paolo Carlini committed -
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 -
2018-07-18 Ilya Leoshkevich <iii@linux.ibm.com> * config/s390/s390.c (s390_function_profiler): Generate CFI. From-SVN: r262850
Ilya Leoshkevich committed -
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 -
* config/arm/arm.c (get_label_padding): Update for recent changes to label_to_alignment. From-SVN: r262848
Jeff Law committed -
From-SVN: r262846
GCC Administrator committed
-
- 17 Jul, 2018 19 commits
-
-
PR tree-optimization/86010 * tree-ssa-dse.c (compute_trims): Fix typo/thinko. From-SVN: r262841
Jeff Law committed -
* config/mips/mips.c (vr4130_align_insns): Update for recent changes to label_to_alignment. From-SVN: r262838
Jeff Law committed -
* config/frv/frv.c (frv_label_align): Update for recent changes to label_to_alignment. From-SVN: r262837
Jeff Law committed -
* config/nios2/nios2.c (nios2_label_align): Update for recent changes which dropped ALIGN_LABELS_LOG. From-SVN: r262836
Jeff Law committed -
* config/m68k/m68k.md (umulsi3_highpart+1, const_umulsi3_highpart) (smulsi3_highpart+1, const_smulsi3_highpart): Add CC_STATUS_INIT. testsuite/: * gcc.target/m68k/mulsi_highpart.c: New test. From-SVN: r262835
Andreas Schwab committed -
CL 123362 introduced a bug in creating alias type's backend representation. A type's btype_ should not be set before named types are converted if it is a placeholder. For alias type, it is set too early. This may result in unresolved placeholders. This CL fixes it. Reviewed-on: https://go-review.googlesource.com/123975 From-SVN: r262833
Ian Lance Taylor committed -
* lex.c (_cpp_lex_direct): Use CPP_DL_NOTE instead of CPP_DL_PEDWARN, CPP_DL_WARNING or CPP_DL_ERROR for note that diagnostics for C++ style comments is reported only once per file and guard those calls on the preceding cpp_error returning true. * gcc.dg/cpp/pr61854-c90.c (foo): Expect a note, rather than error. * gcc.dg/cpp/pr61854-c94.c (foo): Likewise. * gcc.dg/cpp/pr61854-4.c (foo): Likewise. * gcc.dg/cpp/pr61854-8.c: New test. From-SVN: r262832
Jakub Jelinek committed -
From-SVN: r262831
David Edelsohn committed -
Previously, when creating the backend representation of a circular type, we resolve the placeholder to a circular_pointer_type. The backend doesn't know what the concrete type is. This CL changes it to resolve the placeholder to the concrete type instead, so the backend may have better knowledge of the concrete type. Reviewed-on: https://go-review.googlesource.com/123738 From-SVN: r262830
Ian Lance Taylor committed -
2018-07-17 Fritz Reese <fritzoreese@gmail.com> gcc/testsuite/ChangeLog: PR fortran/83184 * gfortran.dg/dec_structure_23.f90: Oops, "un-fix" error messages. From-SVN: r262828
Fritz Reese committed -
[testsuite] 2018-07-06 Will Schmidt <will_schmidt@vnet.ibm.com> * gcc.target/powerpc/fold-vec-unpack-char.c: New. * gcc.target/powerpc/fold-vec-unpack-float.c: New. * gcc.target/powerpc/fold-vec-unpack-int.c: New. * gcc.target/powerpc/fold-vec-unpack-pixel.c: New. * gcc.target/powerpc/fold-vec-unpack-short.c: New. From-SVN: r262827
Will Schmidt committed -
* gcc.target/powerpc/pr57150.c: Require longdouble128. * gcc.target/powerpc/pr79916.c: Require dfp. From-SVN: r262826
David Edelsohn committed -
* pt.c (find_parameter_packs_r) [IF_STMT]: Don't walk into IF_STMT_EXTRA_ARGS. * tree.c (cp_walk_subtrees) [DECLTYPE_TYPE]: Set cp_unevaluated_operand. [ALIGNOF_EXPR] [SIZEOF_EXPR] [NOEXCEPT_EXPR]: Likewise. From-SVN: r262825
Jason Merrill committed -
Use -Wabi=2 to fix warnings about -Wabi having no effect on its own. This requires suppressing two warnings in src/c++11/debug.cc which do not affect the library ABI. Previously libstdc++ defaulted to --enable-werror but the -Werror flag was not actually added unless --enable-maintainer-mode was used. This is not documented and not the expected behaviour. This removes any special treatment for maintainer-mode, makes -Werror depend directly on --enable-werror, and changes the default to --enable-werror=no. PR libstdc++/86450 * acinclude.m4 (GLIBCXX_CHECK_COMPILER_FEATURES): Don't define WERROR. (GLIBCXX_EXPORT_FLAGS): Use -Wabi=2 instead of -Wabi. * configure: Regenerate. * configure.ac: Change GLIBCXX_ENABLE_WERROR default to "no". * doc/Makefile.in: Regenerate. * fragment.am: Set WERROR_FLAG to -Werror instead of $(WERROR). * include/Makefile.in: Regenerate. * libsupc++/Makefile.in: Regenerate. * po/Makefile.in: Regenerate. * python/Makefile.in: Regenerate. * src/Makefile.in: Regenerate. * src/c++11/Makefile.in: Regenerate. * src/c++11/debug.cc: Use diagnostic pragmas to suppress warnings from -Wabi=2 that don't affect exported symbols. * src/c++98/Makefile.in: Regenerate. * src/filesystem/Makefile.in: Regenerate. * testsuite/Makefile.in: Regenerate. From-SVN: r262824
Jonathan Wakely committed -
The explicit instantiation of std::call_once used to require an instantiation of __bind_simple, but call_once was changed by r241031 to not use __bind_simple. The instantiation of __bind_simple (and the definitions it uses) are not needed. They should have been removed instead of doing the changes in r241111 that kept them compiling. The use of std::call_once by _Async_state_common::_M_join can be simplified to use a pointer instead of reference wrapper. The call_once symbol isn't exported so the change isn't visible outside the library. * src/c++11/compatibility-thread-c++0x.cc [_GLIBCXX_SHARED] (_Async_state_common::_M_join): Simplify use of std::call_once and corresponding explicit instantiation. (_Maybe_wrap_member_pointer, _Bind_simple, _Bind_simple_helper) (__bind_simple): Remove definitions and explicit instantiation that are not required by exported symbols. From-SVN: r262823
Jonathan Wakely committed -
2018-07-17 Claudiu Zissulescu <claziss@synopsys.com> * config/arc/arc.c (arc_label_align): Use alogn_labels instead of deprecated align_labels_log. From-SVN: r262820
Claudiu Zissulescu committed -
2018-07-17 Richard Biener <rguenther@suse.de> PR lto/86456 * dwarf2out.c (init_sections_and_labels): Always generate a debug_line_str_section for early LTO debug. (dwarf2out_finish): Reset debug_line_str_hash output early. Bump counter for extra dwarf5 .debug_loc labels to not conflict with fat LTO part. (dwarf2out_early_finish): Output debug_line_str. * g++.dg/debug/dwarf2/pr86456.C: New testcase. From-SVN: r262819
Richard Biener committed -
gcc/ChangeLog: 2018-07-17 Robin Dapp <rdapp@linux.ibm.com> * config/s390/s390.c (preferred_la_operand_p): Do not use LA with index register on z196 or later. From-SVN: r262818
Robin Dapp committed -
gcc/ChangeLog: 2018-07-17 Robin Dapp <rdapp@linux.ibm.com> * config/s390/s390.c (s390_default_align): Set default function alignment to 16. (s390_override_options_after_change): Call s390_default align. (s390_option_override_internal): Call s390_default_align. (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define. gcc/testsuite/ChangeLog: 2018-07-17 Robin Dapp <rdapp@linux.ibm.com> * gcc.target/s390/function-align1.c: New test. * gcc.target/s390/function-align2.c: New test. * gcc.target/s390/function-align3.c: New test. From-SVN: r262817
Robin Dapp committed
-