Commit Graph

163146 Commits

Author SHA1 Message Date
Aldy Hernandez
3bb1161faf wide-int.h (widest2_int): New.
* 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
2018-07-19 09:12:32 +00:00
Eli Zaretskii
30ae666240 simple-object-elf.c (ENOTSUP): If not defined by errno.h, redirect to ENOSYS.
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
2018-07-19 08:47:34 +00:00
Andrew Senkevich
6e559c70b7 x86-tune-costs.h (skylake_memcpy, [...]): Replace rep_prefix with unrolling for size 512.
* 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
2018-07-19 08:49:10 +02:00
GCC Administrator
4a4dab51a3 Daily bump.
From-SVN: r262870
2018-07-19 00:16:18 +00:00
Kugan Vivekanandarajah
7f15cc4dd9 re PR tree-optimization/86544 (Popcount detection generates different code on C and C++)
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
2018-07-18 22:11:24 +00:00
Kelvin Nilsen
d46d010b77 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
2018-07-18 21:31:04 +00:00
Jakub Jelinek
a171a8bb39 re PR c++/86550 (Lambda parsing allows arbitrary types in decl-specifier-seq)
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
2018-07-18 23:01:54 +02:00
Bernd Edlinger
6f41f92beb re PR c/69558 (glib2 warning pragmas stopped working)
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
2018-07-18 19:36:01 +00:00
Janus Weil
6457b1f096 re PR fortran/85599 (warn about short-circuiting of logical expressions for non-pure functions)
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
2018-07-18 20:31:59 +02:00
Marek Polacek
c56e97274f PR c++/86190 - bogus -Wsign-conversion warning
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
2018-07-18 13:13:11 +00:00
Richard Biener
eb5926451a re PR target/86557 (missed vectorization with std::vector compared to icc 18)
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
2018-07-18 12:57:15 +00:00
Paolo Carlini
0292076596 2018-07-18 Paolo Carlini <paolo.carlini@oracle.com>
* Fix typos in ChangeLog entries.

From-SVN: r262852
2018-07-18 10:30:42 +00:00
Paolo Carlini
6498dea6b2 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
2018-07-18 10:27:12 +00:00
Ilya Leoshkevich
0559979c64 S/390: Add CFI for mcount call sequences
2018-07-18  Ilya Leoshkevich  <iii@linux.ibm.com>

	* config/s390/s390.c (s390_function_profiler): Generate CFI.

From-SVN: r262850
2018-07-18 06:58:39 +00:00
Richard Biener
97f1323504 re PR debug/86523 (ICE in gen_member_die, at dwarf2out.c:24933 starting from r262560)
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
2018-07-18 06:54:23 +00:00
Jeff Law
df6a7b9d37 arm.c (get_label_padding): Update for recent changes to label_to_alignment.
* config/arm/arm.c (get_label_padding): Update for recent
	changes to label_to_alignment.

From-SVN: r262848
2018-07-17 22:55:03 -06:00
GCC Administrator
9b12ae805d Daily bump.
From-SVN: r262846
2018-07-18 00:16:31 +00:00
Jeff Law
efae2f507e re PR tree-optimization/86010 (redundant memset with smaller size not eliminated)
PR tree-optimization/86010
	* tree-ssa-dse.c (compute_trims): Fix typo/thinko.

From-SVN: r262841
2018-07-17 17:54:10 -06:00
Jeff Law
9c179c2dd0 mips.c (vr4130_align_insns): Update for recent changes to label_to_alignment.
* config/mips/mips.c (vr4130_align_insns): Update for recent
	changes to label_to_alignment.

From-SVN: r262838
2018-07-17 14:52:20 -06:00
Jeff Law
22ab45296c frv.c (frv_label_align): Update for recent changes to label_to_alignment.
* config/frv/frv.c (frv_label_align): Update for recent changes
        to label_to_alignment.

From-SVN: r262837
2018-07-17 14:30:49 -06:00
Jeff Law
d84916bd0d nios2.c (nios2_label_align): Update for recent changes which dropped ALIGN_LABELS_LOG.
* config/nios2/nios2.c (nios2_label_align): Update for recent
	changes which dropped ALIGN_LABELS_LOG.

From-SVN: r262836
2018-07-17 14:23:25 -06:00
Andreas Schwab
0d7afd5d27 Fix invalid cc_status after [const_][us]mulsi3_highpart
* 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
2018-07-17 18:42:42 +00:00
Ian Lance Taylor
a7385f1c0e compiler: don't set btype_ too early for alias type
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
2018-07-17 18:27:22 +00:00
Jakub Jelinek
0c86a39db2 lex.c (_cpp_lex_direct): Use CPP_DL_NOTE instead of CPP_DL_PEDWARN...
* 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
2018-07-17 20:10:57 +02:00
David Edelsohn
0ef03fe3d0 * gcc.target/powerpc/pr85456.c: Require longdouble128.
From-SVN: r262831
2018-07-17 13:35:24 -04:00
Ian Lance Taylor
4161493a30 compiler: connect the concrete type and the placeholder for circular types
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
2018-07-17 17:21:10 +00:00
Fritz Reese
5485812caf re PR fortran/83184 (Out of memory or ICE with option -fdec)
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
2018-07-17 16:02:03 +00:00
Will Schmidt
7ca83c3662 fold-vec-unpack-char.c: New.
[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
2018-07-17 15:51:12 +00:00
David Edelsohn
c2eab53d15 pr57150.c: Require longdouble128.
* gcc.target/powerpc/pr57150.c: Require longdouble128.
* gcc.target/powerpc/pr79916.c: Require dfp.

From-SVN: r262826
2018-07-17 11:41:47 -04:00
Jason Merrill
dd00049ae9 PR c++/86480 - nested variadic lambda and constexpr if.
* 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
2018-07-17 11:39:46 -04:00
Jonathan Wakely
c3be340eb6 PR libstdc++/86450 use -Wabi=2 and simplify -Werror use
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
2018-07-17 14:18:47 +01:00
Jonathan Wakely
79a88477ad Remove unused explicit instantiation of __bind_simple
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
2018-07-17 14:16:51 +01:00
Claudiu Zissulescu
3f4453745e [ARC] Don't use deprecated align_labels_log variable.
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
2018-07-17 14:27:10 +02:00
Richard Biener
3447025f2f re PR debug/86456 (Segfault in switch_to_section at gcc/varasm.c:7353 since r259317)
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
2018-07-17 12:26:21 +00:00
Robin Dapp
5211d26a26 S/390: Do not use LA with index register on z196 or newer.
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
2018-07-17 12:08:06 +00:00
Robin Dapp
22800d6629 S/390: Set default function alignment to 16.
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
2018-07-17 12:05:07 +00:00
Jakub Jelinek
a3bccfa17c re PR middle-end/86542 (wrong-code for collapsed taskloop which needs omp_cpyfn)
PR middle-end/86542
	* omp-low.c (create_task_copyfn): Copy over also fields corresponding
	to _looptemp_ clauses, other than the first two.

	* testsuite/libgomp.c++/pr86542.C: New test.

From-SVN: r262815
2018-07-17 12:54:52 +02:00
Eric Botcazou
8e93ce66b2 decl.c (choices_to_gnu): Rename parameters.
* gcc-interface/decl.c (choices_to_gnu): Rename parameters.  Deal with
	an operand of Character type.  Factor out range generation to the end.
	Check that the bounds are literals and convert them to the type of the
	operand before building the ranges.
	* gcc-interface/utils.c (make_dummy_type): Minor tweak.
	(make_packable_type): Propagate TYPE_DEBUG_TYPE.
	(maybe_pad_type): Likewise.

From-SVN: r262812
2018-07-17 10:02:36 +00:00
Rainer Orth
10c6ce7884 Add -fomit-frame-pointer to gcc.target/i386/vartrack-1.c
* gcc.target/i386/vartrack-1.c (dg-options): Add
	-fomit-frame-pointer.

From-SVN: r262811
2018-07-17 09:43:57 +00:00
Rainer Orth
74285cd3a9 Build gcc/testsuite/g++.dg/lto/pr86523-[12]_0.C as PIC
* g++.dg/lto/pr86523-1_0.C: Require fpic, shared support.
	(dg-lto-options): Add -fPIC.
	* g++.dg/lto/pr86523-2_0.C: Likewise.

From-SVN: r262810
2018-07-17 09:41:11 +00:00
Martin Liska
487982030e Do not enable OPT_falign_* for -Os.
2018-07-17  Martin Liska  <mliska@suse.cz>

	* opts.c: Do not enable OPT_falign_* for -Os.

From-SVN: r262807
2018-07-17 09:22:14 +00:00
Martin Liska
d800a1e76a Define MAX_CODE_ALIGN globally.
2018-07-17  Martin Liska  <mliska@suse.cz>

	* align.h (MAX_CODE_ALIGN): New.
	(MAX_CODE_ALIGN_VALUE): New.
	* common/config/i386/i386-common.c (ix86_handle_option):
	(MAX_CODE_ALIGN): Moved to align.h.
	* final.c (MAX_CODE_ALIGN): Likewise.
	* opts.c (parse_and_check_align_values):
	(MAX_CODE_ALIGN): Likewise.
	(MAX_CODE_ALIGN_VALUE): Likewise.

From-SVN: r262806
2018-07-17 09:21:41 +00:00
Martin Liska
3f1a2e5765 Fix coding style of ASM_OUTPUT_ALIGN.
2018-07-17  Martin Liska  <mliska@suse.cz>

	* config/i386/att.h (ASM_OUTPUT_ALIGN): Fix spacing
        in order to fulfil coding style.
	* config/i386/cygming.h (ASM_OUTPUT_ALIGN): Likewise.
	* config/i386/gas.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
	* config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
	* config/iq2000/iq2000.h (ASM_OUTPUT_ALIGN): Likewise.
	* config/pa/pa.h (ASM_OUTPUT_ALIGN): Likewise.
	* config/sparc/sol2.h (ASM_OUTPUT_ALIGN_WITH_NOP): Likewise.
	* config/sparc/sparc.h (ASM_OUTPUT_ALIGN): Likewise.
	* config/visium/visium.h (ASM_OUTPUT_ALIGN): Likewise.
	(ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.

From-SVN: r262805
2018-07-17 09:19:57 +00:00
Martin Liska
e6de533567 Clean up of new format of -falign-FOO.
2018-07-17  Martin Liska  <mliska@suse.cz>

	* align.h: New file.
	* config/alpha/alpha.c (alpha_align_insns_1): Use align_functions directly.
	* config/i386/i386.c (ix86_avoid_jump_mispredicts): Use new return type
	align_flags of label_to_alignment.
	* config/m32r/m32r.h (LOOP_ALIGN): Wrap returned values into align_flags
	class.
	* config/m68k/m68k.c: Do not use removed align_labels_value and
	align_loops_value.
	* config/nds32/nds32.h (JUMP_ALIGN): Wrap result into align_flags class.
	(LOOP_ALIGN): Likewise.
	(LABEL_ALIGN): Likewise.
	* config/powerpcspe/powerpcspe.c (TARGET_ASM_LOOP_ALIGN_MAX_SKIP):
	Remove not used macro.
	(rs6000_loop_align): Change return type to align_flags.
	(rs6000_loop_align_max_skip): Remove.
	* config/rs6000/rs6000-protos.h (rs6000_loop_align):
	Change return type to align_flags.
	* config/rs6000/rs6000.c (TARGET_ASM_LOOP_ALIGN_MAX_SKIP):
	Remove not used macro.
	(rs6000_loop_align):  Change return type to align_flags.
	(rs6000_loop_align_max_skip): Remove.
	* config/rx/rx.h (JUMP_ALIGN): Wrap integer values
	* config/rx/rx-protos.h (rx_align_for_label): Make it
        static function.
	* config/rx/rx.c (rx_align_for_label): Change return type
        to align_flags.
	(rx_max_skip_for_label): Remove TARGET_ASM_*_ALIGN_MAX_SKIP
        macro definitions.
	into align_flags class.
	(LABEL_ALIGN): Likewise.
	(LOOP_ALIGN): Likewise.
	* config/s390/s390.c (s390_label_align): Use align_flags
	class member.
	(s390_asm_output_function_label): Likewise.
	* config/sh/sh.c (sh_override_options_after_change):
	Use align_flags class directly without macros.
	(find_barrier): Likewise.
	(barrier_align): Likewise.
	(sh_loop_align): Likewise.
	* config/spu/spu.c (spu_option_override):
	Use align_flags_tuple::get_value instead of removed macros.
	(spu_sched_init): Likewise.
	* config/spu/spu.h (GTY): Likewise.
	* config/visium/visium.c (visium_option_override):
	Set "8" as default secondary alignment.
	* config/visium/visium.h (SUBALIGN_LOG): Define to 3
	in order to guarantee secondary alignment of 8.
	* coretypes.h: Include align.h header file.
	* doc/tm.texi: Remove TARGET_ASM_JUMP_ALIGN_MAX_SKIP,
	TARGET_ASM_LOOP_ALIGN_MAX_SKIP, TARGET_ASM_LABEL_ALIGN_MAX_SKIP
        and TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP macros.
	* doc/tm.texi.in: Likewise.
	* final.c (struct label_alignment): Remove not used structure.
	(LABEL_ALIGN): Change type to align_flags.
	(LOOP_ALIGN): Likewise.
	(JUMP_ALIGN): Likewise.
	(default_loop_align_max_skip): Remove.
	(default_label_align_max_skip): Likewise.
	(default_jump_align_max_skip): Likewise.
	(default_label_align_after_barrier_max_skip):
	(LABEL_TO_ALIGNMENT): Change to access label_align vector.
	(LABEL_TO_MAX_SKIP): Remove.
	(label_to_alignment): Return align_flags type instead of integer.
	(label_to_max_skip): Remove.
	(align_fuzz): Use align_flags type.
	(compute_alignments): Use align_flags type and use align_flags::max
	to combine multiple alignments.
	(grow_label_align): Grow vec instead of C array.
	(update_alignments): Assign just LABEL_TO_ALIGNMENT.
	(shorten_branches):  Use align_flags type and use align_flags::max
	to combine multiple alignments.
	(final_scan_insn_1): Remove usage of secondary alignment that comes
	from label alignment, but instead use proper secondary alignment
	which is computed in grow_label_align.
	* flags.h (struct align_flags_tuple): Move to align.h.
	(struct align_flags): Likewise.
	(state_align_loops): Rename to align_loops.
	(state_align_jumps): Rename to align_jumps.
	(state_align_labels): Rename to align_labels.
	(state_align_functions): Rename to align_functions.
	(align_loops_log): Remove.
	(align_jumps_log): Remove.
	(align_labels_log): Remove.
	(align_functions_log): Remove.
	(align_loops_max_skip): Remove.
	(align_jumps_max_skip): Remove.
	(align_labels_max_skip): Remove.
	(align_functions_max_skip): Remove.
	(align_loops_value): Remove.
	(align_jumps_value): Remove.
	(align_labels_value): Remove.
	(align_functions_value): Remove.
	* output.h (label_to_alignment): Change return type to align_flags.
	(label_to_max_skip): Remove.
	* target.def: Remove loop_align_max_skip, label_align_max_skip,
	jump_align_max_skip macros.
	* targhooks.h (default_loop_align_max_skip): Remove.
	(default_label_align_max_skip): Likewise.
	(default_jump_align_max_skip): Likewise.
	(default_label_align_after_barrier_max_skip): Remove.
	* toplev.c (read_log_maxskip): Use ::normalize function.
	(parse_N_M): Remove not used argument and also call ::normalize.
	(parse_alignment_opts): Do not pass unused arguments.
	* varasm.c (assemble_start_function): Use directly align_functions
	instead of removed macros.
	* system.h: Do not poison removed macros.
2018-07-17  Martin Liska  <mliska@suse.cz>

	* gcc.target/powerpc/loop_align.c: Update scanned pattern.

From-SVN: r262804
2018-07-17 09:19:27 +00:00
Ed Schonberg
118f2d8bc3 [Ada] Spurious error on prefixed call in an instantiation
This patch fixes a spurious error on a prefixed call in an instance, when the
generic parameters include an interface type and an abstract operation of that
type, and the actuals in the instance include an interface type and a
corresponding abstract operation of it, with a different name than the
corresponding generic subprogram parameter. The patch also fixes a similar
error involving class-wide operations and generic private types.

2018-07-17  Ed Schonberg  <schonberg@adacore.com>

gcc/ada/

	* sem_ch4.adb (Try_Object_Operation): Handle properly a prefixed call
	in an instance, when the generic parameters include an interface type
	and a abstract operation of that type, and the actuals in the instance
	include an interface type and a corresponding abstract operation of it,
	with a different name than the corresponding generic subprogram
	parameter.

gcc/testsuite/

	* gnat.dg/generic_call_cw.adb, gnat.dg/generic_call_iface.adb: New
	testcase.

From-SVN: r262803
2018-07-17 08:13:28 +00:00
Arnaud Charlet
5b4f211d2a [Ada] Preserve original CE reason in more cases
2018-07-17  Arnaud Charlet  <charlet@adacore.com>

gcc/ada/

	* sem_eval.adb (Rewrite_In_Raise_CE): Keep the original reason in more
	cases.

From-SVN: r262802
2018-07-17 08:12:51 +00:00
Arnaud Charlet
ed17074220 [Ada] Add provision for floating-point in Apply_Division_Check
2018-07-17  Arnaud Charlet  <charlet@adacore.com>

gcc/ada/

	* checks.adb (Apply_Division_Check): Add provision for floating-point
	checks.

From-SVN: r262801
2018-07-17 08:12:46 +00:00
Ed Schonberg
f4c2607769 [Ada] Fix expansion of aggregates components rewritten to raise statements
2018-07-17  Ed Schonberg  <schonberg@adacore.com>

gcc/ada/

	* exp_aggr.adb (Component_OK_For_Backend): If an array component of the
	enclosing record has a bound that is out of range (and that has been
	rewritten as a raise statement) the aggregate is not OK for any back
	end, and should be expanded into individual assignments.

From-SVN: r262800
2018-07-17 08:12:14 +00:00
Piotr Trojanek
e164710e27 [Ada] Reuse Is_Rewrite_Substitution in Relocate_Node
Semantics not affected; the reused routine is exactly the same as the replaced
condition.

2018-07-17  Piotr Trojanek  <trojanek@adacore.com>

gcc/ada/

	* atree.adb (Relocate_Node): Simplify with Is_Rewrite_Substitution.

From-SVN: r262799
2018-07-17 08:12:08 +00:00
Piotr Trojanek
b3d18092b6 [Ada] Fix RM rule references
2018-07-17  Piotr Trojanek  <trojanek@adacore.com>

gcc/ada/

	* sem_util.ads (Denotes_Same_Object): Likewise.
	* sem_warn.adb (Warn_On_Overlapping_Actuals): Fix RM rule references.

From-SVN: r262798
2018-07-17 08:11:49 +00:00