Commit Graph

160016 Commits

Author SHA1 Message Date
Steve Ellcey
eae52f300e re PR target/83335 ([aarch64,ilp32] gcc.target/aarch64/asm-2.c ICEs since 255481)
2018-02-22  Steve Ellcey  <sellcey@cavium.com>

	PR target/83335
	* gcc/testsuite/gcc.target/aarch64/asm-2.c: Add dg-error for
	ILP32 mode.
	* gcc/testsuite/gcc.target/aarch64/asm-4.c: New test.

From-SVN: r257908
2018-02-22 17:08:10 +00:00
Steve Ellcey
67c58c8f6b re PR target/83335 ([aarch64,ilp32] gcc.target/aarch64/asm-2.c ICEs since 255481)
2018-02-22  Steve Ellcey  <sellcey@cavium.com>

	PR target/83335
	* config/aarch64/aarch64.c (aarch64_print_address_internal):
	Change gcc_assert call to output_operand_lossage.

From-SVN: r257907
2018-02-22 17:06:31 +00:00
Steve Ellcey
c74a0faa91 extend.texi (__builtin_extend_pointer): Document builtin.
2018-02-22  Steve Ellcey  <sellcey@cavium.com>

	* doc/extend.texi (__builtin_extend_pointer): Document builtin.

From-SVN: r257906
2018-02-22 16:49:28 +00:00
DJ Delorie
ea49b4dd2e rx.c (rx_rtx_costs): New function.
gcc/
	* config/rx/rx.c (rx_rtx_costs): New function.
	(TARGET_RTX_COSTS): Override to use rx_rtx_costs.


Co-Authored-By: Oleg Endo <olegendo@gcc.gnu.org>
Co-Authored-By: Sebastian Perta <sebastian.perta@renesas.com>

From-SVN: r257905
2018-02-22 16:36:48 +00:00
Thomas Preud'homme
9029d3424f [ARM] Multilib mapping for Armv8-R
Due to there being no multilib mapping for Armv8-R, default multilib
builts for -march=armv4t with softfloat floating-point arithmetic is
being used. This patch maps it instead to the existing Armv7 multilibs.
Note that mapping for single-precision Armv8-R has been left out due to
there being no Arm implementation of that architecture variant.

2018-02-22  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    * config/arm/t-multilib: Map Armv8-R to Armv7 multilibs.

    gcc/testsuite/
    * gcc.target/arm/multilib.exp: Add tests for Armv8-R multilib mappings.

From-SVN: r257904
2018-02-22 16:31:56 +00:00
Janne Blomqvist
6cc22cf4df PR 78534, 84509 Fix libgfortran API for PAUSE statement
This patch changes the libgfortran API for the PAUSE statement. By
passing a GFC_INTEGER_8 it handles -fdefault-integer-8, and for the
character version passing the length as a size_t.

Regtested on x86_64-pc-linux-gnu, committed as obvious.

gcc/fortran/ChangeLog:

2018-02-22  Janne Blomqvist  <jb@gcc.gnu.org>

	PR 78534
	PR 84509
	* trans-decl.c (gfc_build_builtin_function_decls): Pass
	gfc_int8_type node to pause_numeric, size_type_node to
	pause_string.
	* trans-stmt.c (gfc_trans_pause): Likewise.

libgfortran/ChangeLog:

2018-02-22  Janne Blomqvist  <jb@gcc.gnu.org>

	PR 78534
	PR 84509
	* runtime/pause.c (pause_numeric): Modify to take GFC_INTEGER_8
	argument.
	(pause_string): Modify to take size_t character length argument.

From-SVN: r257903
2018-02-22 18:14:21 +02:00
David Edelsohn
58730d1899 inclhack.def (aix_stdlib_vec_malloc): New.
* inclhack.def (aix_stdlib_vec_malloc): New.
(aix_stdlib_vec_calloc): New.
* fixincl.x: Regenerate.
* tests/base/stdlib.h [AIX_STDLIB_VEC_MALLOC]: New test.
[AIX_STDLIB_VEC_CALLOC]: New test.

From-SVN: r257902
2018-02-22 11:12:26 -05:00
Martin Liska
a11f3649d7 Add "native" as a valid option value for -mcpu/-mtune= on arm (PR driver/83193).
2018-02-22  Martin Liska  <mliska@suse.cz>

	PR driver/83193
	* common/config/arm/arm-common.c (arm_print_hint_for_cpu_option):
	Add "native" as a possible value.

From-SVN: r257900
2018-02-22 12:16:58 +00:00
Marek Polacek
caa7952a43 re PR c++/84493 (ICE with invalid cast)
PR c++/84493
	* parser.c (cp_parser_braced_list): Use require_open instead of
	consume_open.

	* g++.dg/parse/error59.C: New test.

From-SVN: r257899
2018-02-22 11:18:37 +00:00
Tom de Vries
c8fe60e372 [testsuite] Require et alloca for pr82210.c
2018-02-22  Tom de Vries  <tom@codesourcery.com>

	* gcc.c-torture/execute/pr82210.c: Require effective target alloca.

From-SVN: r257898
2018-02-22 11:01:16 +00:00
Paolo Carlini
b9cf471ac1 re PR c++/77655 (ICE on invalid c++ code on x86_64-linux-gnu (internal compiler error: Segmentation fault (program cc1plus)))
2018-02-22  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/77655
	* g++.dg/cpp0x/pr77655.C: New.

From-SVN: r257896
2018-02-22 10:44:04 +00:00
Jakub Jelinek
25c1b6cb34 re PR c++/84496 (Internal compiler error with lambda, static and auto since r236615)
PR c++/84496
	* g++.dg/cpp1y/pr84496.C: New test.

From-SVN: r257895
2018-02-22 10:55:32 +01:00
Janne Blomqvist
3f5fabc0ea Character length cleanup for Coarray Fortran library
Following the change to use size_t for Fortran character lengths (PR
78534), this patch modifies the Coarray ABI in a similar way. The
single-image implementation that is included in libgfortran is
updated, but this needs corresponding work in the OpenCoarray library
as well for multi-image support. I also fixed the types for the STOP
and ERROR STOP implementation in libgfortran, as the calling of them
is somewhat intertwined with the calling of the corresponding CAF
functions. I'll send the OpenCoarray changes as a separate pull
request to the OpenCoarrays repository.

Regtested on x86_64-pc-linux-gnu.

gcc/fortran/ChangeLog:

2018-02-22  Janne Blomqvist  <jb@gcc.gnu.org>

	* gfortran.texi: Update Coarray API description.
	* trans-decl.c (gfc_build_builtin_function_decls): Use size_t for
	character lengths, int for exit codes.
	(generate_coarray_sym_init): Use size_t for character length.
	* trans-intrinsic.c (conv_co_collective): Likewise.
	* trans-stmt.c (gfc_trans_lock_unlock): Likewise.
	(gfc_trans_event_post_wait): Likewise.
	(gfc_trans_sync): Likewise.
	(gfc_trans_stop): Use size_t for character lengths, int for exit
	codes.

libgfortran/ChangeLog:

2018-02-22  Janne Blomqvist  <jb@gcc.gnu.org>

	* libgfortran.h (stop_string): Use size_t for character length.
	* runtime/stop.c (stop_string): Likewise.
	(error_stop_string): Likewise.
	(stop_numeric): Use int for exit code.
	(error_stop_numeric): Likewise.
	* caf/libcaf.h: Remove stdint.h include.
	(_gfortran_caf_register): Use size_t for character length.
	(_gfortran_caf_deregister): Likewise.
	(_gfortran_caf_sync_all): Likewise.
	(_gfortran_caf_sync_memory): Likewise.
	(_gfortran_caf_sync_images): Likewise.
	(_gfortran_caf_stop_numeric): Use int for exit code.
	(_gfortran_caf_stop_str): Use size_t for character length.
	(_gfortran_caf_error_stop_str): Likewise.
	(_gfortran_caf_error_stop): Use int for exit code.
	(_gfortran_caf_co_broadcast): Use size_t for character length.
	(_gfortran_caf_co_sum): Likewise.
	(_gfortran_caf_co_min): Likewise.
	(_gfortran_caf_co_max): Likewise.
	(_gfortran_caf_co_reduce): Likewise.
	(_gfortran_caf_lock): Likewise.
	(_gfortran_caf_unlock): Likewise.
	(_gfortran_caf_event_post): Likewise.
	(_gfortran_caf_event_wait): Likewise.
	* caf/mpi.c (_gfortran_caf_register): Update implementation to
	match prototype.
	(_gfortran_caf_deregister): Likewise.
	(_gfortran_caf_sync_all): Likewise.
	(_gfortran_caf_sync_images): Likewise.
	(_gfortran_caf_error_stop_str): Likewise.
	(_gfortran_caf_error_stop): Likewise.
	* caf/single.c (caf_internal_error): Likewise.
	(_gfortran_caf_register): Likewise.
	(_gfortran_caf_deregister): Likewise.
	(_gfortran_caf_sync_all): Likewise.
	(_gfortran_caf_sync_memory): Likewise.
	(_gfortran_caf_sync_images): Likewise.
	(_gfortran_caf_stop_numeric): Likewise.
	(_gfortran_caf_stop_str): Likewise.
	(_gfortran_caf_error_stop_str): Likewise.
	(_gfortran_caf_error_stop): Likewise.
	(_gfortran_caf_co_broadcast): Likewise.
	(_gfortran_caf_co_sum): Likewise.
	(_gfortran_caf_co_min): Likewise.
	(_gfortran_caf_co_max): Likewise.
	(_gfortran_caf_co_reduce): Likewise.
	(_gfortran_caf_event_post): Likewise.
	(_gfortran_caf_event_wait): Likewise.
	(_gfortran_caf_lock): Likewise.
	(_gfortran_caf_unlock): Likewise.

From-SVN: r257894
2018-02-22 11:44:31 +02:00
Martin Liska
4b3fc65469 Add "native" as a valid option value for -march= on i386 (PR driver/83193).
2018-02-22  Martin Liska  <mliska@suse.cz>

	PR driver/83193
	* config/i386/i386.c (ix86_option_override_internal):
	Add "native" as a possible value for -march and -mtune.

From-SVN: r257893
2018-02-22 08:50:41 +00:00
Jakub Jelinek
d3d4a52a70 re PR c++/84502 (Argument corruption when passing empty templated struct)
PR target/84502
	* stor-layout.c (finalize_type_size): Propagate TYPE_EMPTY_P flag
	to all type variants.

	* g++.dg/torture/pr84502.C: New test.

From-SVN: r257892
2018-02-22 09:29:56 +01:00
Jakub Jelinek
c5679c37aa re PR tree-optimization/84503 (store-merging miscompilation on powerpc64 with -O3 since r241789)
PR tree-optimization/84503
	* gimple-ssa-store-merging.c (merged_store_group::merge_into): Compute
	width as info->bitpos + info->bitsize - start.
	(merged_store_group::merge_overlapping): Simplify width computation.
	(check_no_overlap): New function.
	(imm_store_chain_info::try_coalesce_bswap): Compute expected
	start + width and last_order of the group, fail if check_no_overlap
	fails.
	(imm_store_chain_info::coalesce_immediate_stores): Don't merge info
	to group if check_no_overlap fails.

	* gcc.dg/pr84503-1.c: New test.
	* gcc.dg/pr84503-2.c: New test.

From-SVN: r257891
2018-02-22 09:28:42 +01:00
Segher Boessenkool
ad18eed284 rs6000: Delete meaningless arguments to define_{expand,split,peephole2}
This removes the (usually empty) constraint arguments to define_expand,
define_split, and define_peephole2: this argument is meaningless and
just noise.


	* config/rs6000/altivec.md: Delete contraint arguments to
	define_expand, define_split, and define_peephole2, and in
	define_insn_and_split if always unused.
	* config/rs6000/darwin.md: Ditto.
	* config/rs6000/dfp.md: Ditto.
	* config/rs6000/rs6000.md: Ditto.
	* config/rs6000/sync.md: Ditto.
	* config/rs6000/vector.md: Ditto.
	* config/rs6000/vsx.md: Ditto.

From-SVN: r257890
2018-02-22 02:09:18 +01:00
Segher Boessenkool
6c33231394 rs6000: Use brace blocks in define_insn
This patch changes the remaining cases in our machine description files
to use brace blocks instead of double-quoted strings as the output
control string.  This increases readability by making the blocks look
more like normal C code, mostly because backslash quoting is no longer
needed.  It also removes such quoting where it was still there (usually
harmless but always confusing). and it writes "\n\t" as "\;" in one
place where we didn't already.


	* config/rs6000/altivec.md: Write output control strings as braced
	blocks instead of double-quoted strings.
	* config/rs6000/darwin.md: Ditto.
	* config/rs6000/rs6000.md: Ditto.
	* config/rs6000/vector.md: Ditto.
	* config/rs6000/vsx.md: Ditto.

From-SVN: r257889
2018-02-22 02:08:02 +01:00
GCC Administrator
78a85122c0 Daily bump.
From-SVN: r257887
2018-02-22 00:16:25 +00:00
Jason Merrill
a5e2a41f97 PR c++/84314 - ICE with templates and fastcall attribute.
* attribs.c (build_type_attribute_qual_variant): Remove assert.

From-SVN: r257883
2018-02-21 17:12:08 -05:00
Jan Hubicka
5d4991da5c * ipa-cp.c (determine_versionability): Fix comment typos.
From-SVN: r257878
2018-02-21 20:11:15 +00:00
Jan Hubicka
ea49d40b3e re PR c/84229 (A valid code rejected with -flto)
PR c/84229
	* ipa-cp.c (determine_versionability): Do not version functions caling
	va_arg_pack.

From-SVN: r257877
2018-02-21 19:05:30 +00:00
Jason Merrill
e68757438d PR c++/84454 - ICE with pack expansion in signature.
* error.c (find_typenames_r): Also stop on EXPR_PACK_EXPANSION.

From-SVN: r257875
2018-02-21 09:25:54 -05:00
Martin Liska
a08b5429c1 Add "native" as a valid option value for -march= on aarch64 (PR driver/83193).
2018-02-21  Martin Liska  <mliska@suse.cz>

	PR driver/83193
	* config/aarch64/aarch64.c (aarch64_print_hint_for_core_or_arch):
	Add "native" as a possible value.
	* config/aarch64/aarch64.h (HAVE_LOCAL_CPU_DETECT):  Define
	the macro when native cpu detection is available.

From-SVN: r257874
2018-02-21 14:05:45 +00:00
Martin Liska
a646fe9c48 Add "native" as a valid option value for -march= on arm (PR driver/83193).
2018-02-21  Martin Liska  <mliska@suse.cz>

	PR driver/83193
	* common/config/arm/arm-common.c (arm_print_hint_for_arch_option):
	Add "native" as a possible value.
	* config/arm/arm.h (HAVE_LOCAL_CPU_DETECT): Define the macro
	when native cpu detection is available.

From-SVN: r257873
2018-02-21 14:05:17 +00:00
Jakub Jelinek
c8602fe612 re PR tree-optimization/84478 (pdftex miscompilation on i386)
PR tree-optimization/84478
	* gimple-fold.h (get_range_strlen): Add a bool argument defaulted to
	false.
	* gimple-fold.c (get_range_strlen): Make minlen const and assume it
	can't be NULL.  Change FUZZY from bool to int, for 1 add PHI/COND_EXPR
	support which is conservatively correct, for 2 only stay conservative
	for maxlen.  Formatting and comment capitalization fixes.  Add STRICT
	argument to the 2 argument get_range_strlen, adjust 6 arg
	get_range_strlen caller and clear minmaxlen[0] and [1] if it returned
	false.
	(get_maxval_strlen): Adjust 6 arg get_range_strlen caller.
	(gimple_fold_builtin_strlen): Pass true as last argument to
	get_range_strlen.

	* gcc.c-torture/execute/pr84478.c: New test.

Co-Authored-By: Martin Sebor <msebor@redhat.com>

From-SVN: r257870
2018-02-21 11:35:46 +01:00
Martin Liska
b22dbd03f0 Add IntegerRange for Wcatch-value= option.
2018-02-21  Martin Liska  <mliska@suse.cz>

	* c.opt (Wcatch-value=): Add IntegerRange.

From-SVN: r257869
2018-02-21 07:57:52 +00:00
GCC Administrator
27bde1a4cc Daily bump.
From-SVN: r257868
2018-02-21 00:16:25 +00:00
Max Filippov
faef260ee8 libgcc: xtensa: fix build with -mtext-section-literals
libgcc/
2018-02-20  Max Filippov  <jcmvbkbc@gmail.com>

	* config/xtensa/ieee754-df.S (__adddf3_aux): Add
	.literal_position directive.
	* config/xtensa/ieee754-sf.S (__addsf3_aux): Likewise.

From-SVN: r257862
2018-02-20 20:55:56 +00:00
François Dumont
549b1796f1 aligned_buffer.h [...] (template<> __aligned_buffer): Define as __aligned_membuf alias.
2018-02-20  François Dumont  <fdumont@gcc.gnu.org>

	* include/ext/aligned_buffer.h [_GLIBCXX_INLINE_VERSION]
	(template<> __aligned_buffer): Define as __aligned_membuf alias.

From-SVN: r257861
2018-02-20 20:51:44 +00:00
Martin Sebor
5e27f0d5d5 PR middle-end/84095 - false-positive -Wrestrict warnings for memcpy within array
gcc/ChangeLog:

	PR middle-end/84095
	* gimple-ssa-warn-restrict.c (builtin_memref::extend_offset_range): New.
	(builtin_memref::set_base_and_offset): Same.  Handle inner references.
	(builtin_memref::builtin_memref): Factor out parts into
	set_base_and_offset and call it.

gcc/testsuite/ChangeLog:

	PR middle-end/84095
	* c-c++-common/Warray-bounds-3.c: Adjust text of expected warnings.
	* c-c++-common/Wrestrict.c: Same.
	* gcc.dg/Wrestrict-6.c: Same.
	* gcc.dg/Warray-bounds-27.c: New test.
	* gcc.dg/Wrestrict-8.c: New test.
	* gcc.dg/Wrestrict-9.c: New test.
	* gcc.dg/pr84095.c: New test.

From-SVN: r257860
2018-02-20 13:22:01 -07:00
Thomas Koenig
75b81dcdad structure_constructor_14.f90: Adjust STOP number.
2018-02-20  Thomas Koenig  <tkoenig@gcc.gnu.org>

	* gfortran.dg/structure_constructor_14.f90: Adjust STOP number.

From-SVN: r257859
2018-02-20 19:53:42 +00:00
Richard Sandiford
2fad0cf503 re PR target/84406 ([MSP430] ICE on valid code in find_widening_optab_handler_and_mode, at optabs-query.c:476)
PR middle-end/84406
	* optabs-query.c (find_widening_optab_handler_and_mode): If from_mode
	is a scalar_int_mode, assert that to_mode is a scalar_int_mode with
	greater precision.  If to_mode is a MODE_PARTIAL_INT, stop the
	search at the associated MODE_INT.

From-SVN: r257858
2018-02-20 12:11:34 -07:00
Jeff Law
e506dc87a0 re PR middle-end/82123 (spurious -Wformat-overflow warning for converted vars)
PR middle-end/82123
	PR tree-optimization/81592
	PR middle-end/79257
	* gimple-ssa-sprintf.c (format_integer): Query EVRP range analyzer
	for range data rather than using global data.

	* gcc.dg/pr81592.c: New test.
	* gcc.dg/pr82123.c: New test.

From-SVN: r257857
2018-02-20 11:59:22 -07:00
Thomas Koenig
04946c6b90 re PR fortran/48890 ([F95] Wrong length of a character component of named constant derived-type)
2018-02-20  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/48890
	PR fortran/83823
	* primary.c (gfc_convert_to_structure_constructor):
	For a constant string constructor, make sure the length
	is correct.

2018-02-20  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/48890
	PR fortran/83823
	* gfortran.dg/structure_constructor_14.f90: New test.

From-SVN: r257856
2018-02-20 18:57:34 +00:00
Jeff Law
5a54a15e30 re PR middle-end/82123 (spurious -Wformat-overflow warning for converted vars)
PR middle-end/82123
	PR tree-optimization/81592
	PR middle-end/79257
	* gimple-ssa-sprintf.c (get_int_range): Query EVRP range analyzer for
	range data rather than using global data.

From-SVN: r257855
2018-02-20 11:56:56 -07:00
Jeff Law
bbe2e114ef re PR middle-end/82123 (spurious -Wformat-overflow warning for converted vars)
PR middle-end/82123
	PR tree-optimization/81592
	PR middle-end/79257
	* gimple-ssa-sprintf.c (get_int_range): Accept vr_values parameter
	pass it to children as needed.
	(struct directive::fmtresult): Similarly.
	(struct directive::set_width): Similarly.
	(struct directive::set_precision): Similarly.
	(format_integer, format_directive, parse_directive): Similarly.
	(format_none): Accept unnamed vr_values parameter.
	(format_percent, format_floating, format_character): Similarly.
	(format_string, format_plain): Similarly.

From-SVN: r257854
2018-02-20 11:56:01 -07:00
Jeff Law
c368450674 re PR middle-end/82123 (spurious -Wformat-overflow warning for converted vars)
PR middle-end/82123
	PR tree-optimization/81592
	PR middle-end/79257
	* gimple-ssa-sprintf.c (sprintf_dom_walker::handle_gimple_call): Query
	the EVRP range analyzer for range data rather than using global data.

From-SVN: r257853
2018-02-20 11:53:29 -07:00
Jeff Law
aa67d03c30 re PR middle-end/82123 (spurious -Wformat-overflow warning for converted vars)
PR middle-end/82123
	PR tree-optimization/81592
	PR middle-end/79257
	* gimple-ssa-sprintf.c: Include alloc-pool.h, vr-values.h and
	gimple-ssa-evrp-analyze.h
	(class sprintf_dom_walker): Add after_dom_children member function.
	Add evrp_range_analyzer member.
	(sprintf_dom_walker::before_dom_children): Call into the EVRP
	range analyzer as needed.
	(sprintf_dom_walker::after_dom_children): New member function.

	* gcc.dg/builtin-unreachable-6.c: Turn off VRP.

From-SVN: r257852
2018-02-20 11:52:07 -07:00
Jeff Law
2db63ab20c re PR middle-end/82123 (spurious -Wformat-overflow warning for converted vars)
PR middle-end/82123
	PR tree-optimization/81592
	PR middle-end/79257
	* gimple-ssa-evrp-analyze.c (evrp_range_analyzer::enter): Do nothing
	if not optimizing.
	(evrp_range_analyzer::record_ranges_from_stmt): Likewise.
	(evrp_range_analyzer::pop_to_marker): Likewise.

From-SVN: r257851
2018-02-20 11:49:46 -07:00
Jakub Jelinek
f210b3b372 re PR c++/84488 (Incorrect "set but not used" warning for static_cast<Enum>(double))
PR c++/84488
	* g++.dg/warn/Wunused-var-30.C: New test.

From-SVN: r257850
2018-02-20 18:00:23 +01:00
Carl Love
ecb0dd1890 The removal of file fold-vec-neg-int.p7.c in commit 257812 didn't get commited.
Removing the file.

From-SVN: r257849
2018-02-20 16:48:39 +00:00
Ian Lance Taylor
911cef2e3b runtime: allow preemption in fast syscall return
Let a fast syscall return be a preemption point.  This helps with
    tight loops that make system calls, as in BenchmarkSyscallExcessWork.
    
    Reviewed-on: https://go-review.googlesource.com/94895

From-SVN: r257848
2018-02-20 15:30:31 +00:00
Richard Sandiford
9bd958c5f3 Fix incorrect TARGET_MEM_REF alignment (PR 84419)
expand_call_mem_ref checks for TARGET_MEM_REFs that have compatible
type, but it didn't then go on to install the specific type we need,
which might have different alignment due to:

  if (TYPE_ALIGN (type) != align)
    type = build_aligned_type (type, align);

This was causing masked stores to be incorrectly marked as
aligned on AVX512.

2018-02-20  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
	PR tree-optimization/84419
	* internal-fn.c (expand_call_mem_ref): Create a TARGET_MEM_REF
	with the required type if its current type is compatible but
	different.

gcc/testsuite/
	PR tree-optimization/84419
	* gcc.dg/vect/pr84419.c: New test.

From-SVN: r257847
2018-02-20 14:44:24 +00:00
Jakub Jelinek
ef7866a3f1 re PR middle-end/82004 (SPEC CPU2017 628.pop2_s miscompare)
PR middle-end/82004
	* match.pd (pow(C,x) -> exp(log(C)*x)): Delay all folding until
	after vectorization.

	* gfortran.dg/pr82004.f90: New test.

From-SVN: r257846
2018-02-20 14:56:00 +01:00
Ian Lance Taylor
731c3fc22d compiler: look through aliases for type compatibility
Aliases are supposed to be identical to the type being aliased, so
    questions about type compatibility need to always ignore aliases,
    except for error messages involving the type name.
    
    The test case for this is https://golang.org/cl/94995.
    
    Fixes golang/go#23912
    
    Reviewed-on: https://go-review.googlesource.com/94996

From-SVN: r257845
2018-02-20 13:52:56 +00:00
Martin Liska
6285e915c4 Fix missing info for -march and -mtune wrong values on aarch64 (PR driver/83193).
2018-02-20  Martin Liska  <mliska@suse.cz>

	PR driver/83193
	* config/aarch64/aarch64.c (aarch64_print_hint_for_core_or_arch): Print
	possible values if we don't have a hint.

From-SVN: r257844
2018-02-20 12:18:07 +00:00
Siddhesh Poyarekar
d3eb902f7f c++: Fix spurious fallthrough warning on break
The C++ frontend generates a break that results in the fallthrough
warning misfiring in nested switch blocks where cases in the inner
switch block return, rendering the break pointless.  The fallthrough
detection in finish_break_stmt does not work either because the
condition is encoded as an IF_STMT and not a COND_EXPR.

Fix this by adding a condition for IF_STMT in the
langhooks.block_may_fallthru for C++.  Fix tested on x86_64.

gcc/cp
        * cp-objcp-common.c (cxx_block_may_fallthru): Add case for
	        IF_STMT.

gcc/testsuite
        * g++.dg/nested-switch.C: New test case.

From-SVN: r257843
2018-02-20 11:11:31 +00:00
Martin Liska
5bbccd9250 Add limit for maximal alignment options (PR c/84310).
2018-02-20  Martin Liska  <mliska@suse.cz>

	PR c/84310
	PR target/79747
	* final.c (shorten_branches): Build align_tab array with one
	more element.
	* opts.c (finish_options): Add alignment option limit check.
	(MAX_CODE_ALIGN): Likewise.
	(MAX_CODE_ALIGN_VALUE): Likewise.
	* doc/invoke.texi: Document maximum allowed option value for
	all -falign-* options.
2018-02-20  Martin Liska  <mliska@suse.cz>

	PR c/84310
	PR target/79747
	* gcc.target/i386/pr84310.c: New test.
	* gcc.target/i386/pr84310-2.c: Likewise.

From-SVN: r257842
2018-02-20 10:04:13 +00:00
Paolo Carlini
0b2513e292 re PR c++/84446 (ICE with broken lambda)
/cp
2018-02-20  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/84446
	* parser.c (cp_parser_init_declarator): Don't call start_lambda_scope
	on error_mark_node.

/testsuite
2018-02-20  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/84446
	* g++.dg/cpp0x/lambda/lambda-ice27.C: New.

From-SVN: r257841
2018-02-20 09:02:12 +00:00