Commit Graph

158037 Commits

Author SHA1 Message Date
GCC Administrator ad8503503f Daily bump.
From-SVN: r255398
2017-12-05 00:16:14 +00:00
Jan Hubicka e7bf9583fa re PR target/81616 (Update -mtune=generic for the current Intel and AMD processors)
PR target/81616
	* athlon.md: Disable for generic.
	* haswell.md: Enable for generic.
	* i386.c (ix86_sched_init_global): Add core hooks for generic.
	* x86-tune-sched.c (ix86_issue_rate): Increase issue rate for generic
	to 4.
	(ix86_adjust_cost): Move generic to haswell path.

From-SVN: r255395
2017-12-04 23:59:11 +00:00
Eric Botcazou 8cc9a08704 sparc.c (sparc_do_work_around_errata): Use mem_ref instead of MEM_P in a couple more places.
* config/sparc/sparc.c (sparc_do_work_around_errata): Use mem_ref
	instead of MEM_P in a couple more places.  Fix formatting issues.

From-SVN: r255393
2017-12-04 23:13:56 +00:00
Jonathan Wakely 472a7639ea Fix warnings in <bits/regex_compiler.tcc>
* include/bits/regex_compiler.tcc: Use C-style comment to work around
	PR preprocessor/61638.
	(__INSERT_REGEX_MATCHER): Replace GNU extension with __VA_ARGS__.

From-SVN: r255392
2017-12-04 23:08:22 +00:00
Jonathan Wakely 9ed83a33c0 Fix -Wunused warnings in libstdc++ headers
* config/io/basic_file_stdio.h (__basic_file): Remove name of unused
	parameter.
	* include/bits/boost_concept_check.h: Add pragmas to disable
	-Wunused-local-typedef warnings.
	* include/bits/codecvt.h (codecvt_byname<char16_t, char, mbstate_t>)
	(codecvt_byname<char32_t, char, mbstate_t>): Remove name of unused
	parameter.
	* include/bits/locale_facets_nonio.tcc (time_get::do_get_weekday)
	(time_get::do_get_monthname, time_get::do_get_year): Remove unused
	variables.
	* include/std/bitset (_Base_bitset<0>::_M_getword): Remove name of
	unused parameter.
	* include/std/streambuf (_IsUnused): Define.
	(basic_streambuf::imbue, basic_streambuf::pbackfail)
	(basic_streambuf::overflow): Add macro to unused parameters.
	* testsuite/24_iterators/operations/prev_neg.cc: Adjust dg-error.

From-SVN: r255391
2017-12-04 23:07:39 +00:00
Jason Merrill 899ac3b800 PR c++/83273 - constexpr if allows non-constant condition
* semantics.c (finish_if_stmt_cond): Use require_constant_expression
	rather than is_constant_expression.
	* constexpr.c (potential_constant_expression_1) [LAMBDA_EXPR]: Allow
	in C++17.

From-SVN: r255390
2017-12-04 17:52:07 -05:00
Jim Wilson f3abed16a0 Fix typos in riscv register save/restore.
gcc/
	* config/riscv/riscv.c (riscv_for_each_saved_reg): Use GP_REG_LAST
	instead of GP_REG_LAST-1.
	(riscv_adjust_libcall_cfi_prologue): Likewise.
	(riscv_adjust_libcall_cri_epilogue): Likewise.
	* config/riscv/riscv.h (CALL_USED_REGISTERS): Change a6 to t6 in
	comment.

From-SVN: r255389
2017-12-04 14:08:47 -08:00
Luis Machado 75622c9e2f Fix missing newlines from local-pure-const pass dump
I noticed the debugging output from local-pure-const pass is missing a
newline in a couple places, leading to this:

 local analysis of main
   scanning: i ={v} 0;
    Volatile stmt is not const/pure
    Volatile operand is not const/pure  scanning: j ={v} 20;
    Volatile stmt is not const/pure
    Volatile operand is not const/pure  scanning: vol.0_10 ={v} i;
    Volatile stmt is not const/pure

It should've been:

 local analysis of main
   scanning: i ={v} 0;
    Volatile stmt is not const/pure
    Volatile operand is not const/pure
   scanning: j ={v} 20;
    Volatile stmt is not const/pure
    Volatile operand is not const/pure
   scanning: vol.0_10 ={v} i;
    Volatile stmt is not const/pure

gcc/ChangeLog:

2017-12-04  Luis Machado  <luis.machado@linaro.org>

	* ipa-pure-const.c (check_decl): Add missing newline.
	(state_from_flags): Likewise.

From-SVN: r255388
2017-12-04 17:04:18 +00:00
Jeff Law d49e06ce40 re PR tree-optimization/78496 (Missed opportunities for jump threading)
PR tree-optimizatin/78496
	* gimple-ssa-evrp-analyze.h
	(evrp_range_analyzer::get_vr_values): Simplify.
	* gimple-ssa-evrp-analyze.c: Corresponding changes.
	* tree-ssa-dom.c: Include alloc-pool.h, tree-vrp.h, vr-values.h
	and gimple-ssa-evrp-analyze.h.
	(dom_opt_dom_walker class): Add evrp_range_analyzer member.
	(simplify_stmt_for_jump_threading): Copy a blob of code from
	tree-vrp.c to use ranges to simplify statements.
	(dom_opt_dom_walker::before_dom_children): Call
	evrp_range_analyzer::{enter,record_ranges_from_stmt} methods.
	(dom_opt_dom_walker::after_dom_children): Similarly for
	evrp_range_analyzer::leave.
	(dom_opt_dom_walker::optimize_stmt): Use EVRP ranges to optimize
	conditionals.

	PR tree-optimization/78496
	* gcc.dg/builtin-unreachable-6.c: Disable DOM.
	* gcc.dg/builtin-unreachable-6a.c: New test.
	* gcc.dg/tree-ssa/20030922-1.c: No longer XFAIL.
	* gcc.dg/ssa-dom-branch-1.c: Tweak expected output.

From-SVN: r255387
2017-12-04 09:14:24 -07:00
Jeff Law d48f6f3f2d * gimple-ssa-evrp-analyze.c
(evrp_range_analyzer::extract_range_from_stmt):  Always use
	vr_values::update_value_range so preexisting range info is
	medged with new range info, even if the new range is VR_VARYING.

From-SVN: r255386
2017-12-04 09:10:49 -07:00
Segher Boessenkool 178667d2fd combine: Remove use_crosses_set_p
This removes use_crosses_set_p, and uses modified_between_p instead
everywhere it was used.  This improves optimisation.


	* combine.c: Adjust comment.
	(use_crosses_set_p): Delete.
	(can_combine_p): Use modified_between_p instead of use_crosses_set_p.
	(try_combine): Ditto.

From-SVN: r255384
2017-12-04 16:38:20 +01:00
Richard Biener 86502ecfe4 re PR tree-optimization/83255 ([graphite] Wrong code w/ -O1 -floop-nest-optimize)
2017-12-04  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/83255
	* graphite-isl-ast-to-gimple.c (translate_isl_ast_node_for):
	Re-add zero-iteration check.

	* gcc.dg/graphite/pr83255.c: New testcase.

From-SVN: r255382
2017-12-04 14:04:36 +00:00
Sebastian Huber ca4564f9a4 RTEMS/Ada: Account for 64-bit time_t
The Newlib time_t has now 64 bits for RTEMS.

gcc/ada

	* gcc-interface/Makefile.in (RTEMS): Use s-osprim__rtems.adb.
	* libgnat/s-osprim__rtems.adb: New file.
	* libgnarl/s-osinte__rtems.adb (pthread_cond_t): Fix alignment.
	(pthread_mutexattr_t): Likewise.
	(pthread_rwlockattr_t): Likewise.
	(pthread_rwlock_t): Likewise.
	(time_t): Use 64-bit integer.

From-SVN: r255380
2017-12-04 13:36:19 +00:00
Segher Boessenkool 80850da1e9 lra: Clobbers in a parallel are earlyclobbers (PR83245)
The documentation (rtl.texi) says:

  When a @code{clobber} expression for a register appears inside a
  @code{parallel} with other side effects, the register allocator
  guarantees that the register is unoccupied both before and after that
  insn if it is a hard register clobber.

and at least the rs6000 backend relies on that (see PR83245).  This
patch restores that behaviour.

Registers that are also used as operands in the instruction are not
treated as earlyclobber, so such insns also still work (PR80818, an
s390 testcase).


	PR rtl-optimization/83245
	* lra.c (collect_non_operand_hard_regs): Treat clobbers of non-operand
	hard registers as earlyclobber, also if not in an asm.

From-SVN: r255377
2017-12-04 10:30:37 +01:00
Segher Boessenkool 155f67eb98 re PR bootstrap/83265 (Bootstrap failure on powerpc64)
PR bootstrap/83265
	Revert
	2017-12-01  Segher Boessenkool  <segher@kernel.crashing.org>

	PR target/43871
	* config/rs6000/rs6000.c (rs6000_option_override_internal): Set
	rs6000_cpu based on cpu_index, not tune_index.

From-SVN: r255376
2017-12-04 10:19:27 +01:00
Richard Biener 5d66d3f151 re PR tree-optimization/83238 ([graphite] ICE in graphite_can_represent_scev, at graphite-scop-detection.c:971)
2017-12-04  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/83238
	* graphite-scop-detection.c (scop_detection::merge_sese): Make
	code match comment, rejecting invalid SESE regions.

	* gcc.dg/graphite/pr83238.c: New testcase.

From-SVN: r255375
2017-12-04 08:26:18 +00:00
Tom de Vries b6ecbf313b Require effective target alloca for pr82875.c
2017-12-04  Tom de Vries  <tom@codesourcery.com>

	* gcc.dg/pr82875.c: Require effective target alloca.

From-SVN: r255374
2017-12-04 06:58:22 +00:00
GCC Administrator b2ab3c1702 Daily bump.
From-SVN: r255372
2017-12-04 00:16:14 +00:00
John David Anglin b1947510af pa.c (pa_legitimate_address_p): For scaled indexing...
* config/pa/pa.c (pa_legitimate_address_p): For scaled indexing,
	require base operand is a REG_POINTER prior to reload on targets
	with non-equivalent space registers.

From-SVN: r255369
2017-12-03 23:18:10 +00:00
Thomas Koenig 0ac7425470 re PR fortran/36313 ([F03] {MIN,MAX}{LOC,VAL} should accept character arguments)
2017-12-03  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/36313
	* check.c (gfc_check_minval_maxval): Use
	int_orLreal_or_char_check_f2003 for array argument.
	* iresolve.c (gfc_resolve_maxval): Insert number in
	function name for character arguments.
	(gfc_resolve_minval): Likewise.
	* trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc):
	Fix comment.
	(gfc_conv_intrinsic_minmaxval): Resort arguments and call library
	function if dealing with a character function.

2017-12-03  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/36313
	* Makefile.am: Add new files for character-valued
	maxval and minval.
	* Makefile.in: Regenerated.
	* gfortran.map: Add new functions.
	* m4/iforeach-s2.m4: New file.
	* m4/ifunction-s2.m4: New file.
	* m4/iparm.m4: Add intitval for minval and maxval.
	* m4/maxval0s.m4: New file.
	* m4/maxval1s.m4: New file.
	* m4/minval0s.m4: New file.
	* m4/minval1s.m4: New file.
        * generated/maxval0_s1.c: New file.
        * generated/maxval0_s4.c: New file.
        * generated/maxval1_s1.c: New file.
        * generated/maxval1_s4.c: New file.
        * generated/minval0_s1.c: New file.
        * generated/minval0_s4.c: New file.
        * generated/minval1_s1.c: New file.
        * generated/minval1_s4.c: New file.

2017-12-03  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/36313
	* gfortran.dg/maxval_char_1.f90: New test.
	* gfortran.dg/maxval_char_2.f90: New test.
	* gfortran.dg/maxval_char_3.f90: New test.
	* gfortran.dg/maxval_char_4.f90: New test.
	* gfortran.dg/minval_char_1.f90: New test.
	* gfortran.dg/minval_char_2.f90: New test.
	* gfortran.dg/minval_char_3.f90: New test.
	* gfortran.dg/minval_char_4.f90: New test.

From-SVN: r255367
2017-12-03 20:14:05 +00:00
Jerry DeLisle af5ad1e2e5 Fix typo in ChangeLog.
From-SVN: r255366
2017-12-03 16:49:37 +00:00
Jerry DeLisle c4508d0ad7 re PR fortran/83191 (Writing a namelist with repeated complex numbers)
2017-12-03  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
            Dominique d'Humieres  <dominiq@lps.ens.fr>

        PR libgfortran/83191
        * io/transfer.c (list_formatted_read_scalar): Do not set
        namelist_mode bit here. (namelist_read): Likewise.
        (data_transfer_init): Clear the mode bit here.
        (finalize_transfer): Do set the mode bit just before any calls
        to namelist_read or namelist_write. It can now be referred to
        in complex_write.
        ^ io/write.c (write_complex): Suppress the leading blanks when
        namelist_mode bit is not set to 1.

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

Co-Authored-By: Dominique d'Humieres <dominiq@lps.ens.fr>

From-SVN: r255365
2017-12-03 16:47:12 +00:00
Jerry DeLisle 7c73128157 Fix spelling error in log.
From-SVN: r255363
2017-12-03 04:42:09 +00:00
Jerry DeLisle 7b39e3c24f re PR fortran/83225 (runtime error in transfer.c)
2017-12-02  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/83225
	* io/io.h (is_internal_unit): Use the unit_is_internal bit.
	* io/transfer.c (data_transfer_init): Set the bit to true for
	internal umits. Use that bit for checks for internal unit
	initializations.
	* io/unit.c (insert_unit): As a precaution, set the
	internal_unit_kind to zero when a unit structure is first created.

From-SVN: r255362
2017-12-03 03:26:09 +00:00
GCC Administrator acffd4fd64 Daily bump.
From-SVN: r255361
2017-12-03 00:16:12 +00:00
Jan Hubicka e3951b0337 ipa-cp.c (ipcp_lattice<valtype>::print): Update dumping.
* ipa-cp.c (ipcp_lattice<valtype>::print): Update dumping.
	(update_specialized_profile): Fix updating of counts.
	(perhaps_add_new_callers): Likewise.

From-SVN: r255358
2017-12-02 09:48:24 +00:00
Jan Hubicka 4ca47ced33 re PR target/81616 (Update -mtune=generic for the current Intel and AMD processors)
PR target/81616
	* x86-tune.def: Remove obsolette FIXMEs.
	(X86_TUNE_PARTIAL_FLAG_REG_STALL): Disable for generic
	(X86_TUNE_FUSE_CMP_AND_BRANCH_32, X86_TUNE_FUSE_CMP_AND_BRANCH_64,
	X86_TUNE_FUSE_CMP_AND_BRANCH_SOFLAGS, X86_TUNE_FUSE_ALU_AND_BRANCH):
	Enable for generic.
	(X86_TUNE_PAD_RETURNS): Disable for generic.
	* gcc.target/i386/pad-1.c: Compile for amdfam10.
	* gcc.target/i386/align-limit.c: Likewise.

From-SVN: r255357
2017-12-02 09:22:41 +00:00
Jakub Jelinek 30fa8e9c06 re PR tree-optimization/83170 (ICE: Segmentation fault - during GIMPLE pass: store-merging)
PR tree-optimization/83170
	PR tree-optimization/83241
	* gimple-ssa-store-merging.c
	(imm_store_chain_info::try_coalesce_bswap): Update vuse field from
	gimple_vuse (ins_stmt) in case it has changed.
	(imm_store_chain_info::output_merged_store): Likewise.

	* gcc.dg/store_merging_17.c: New test.

From-SVN: r255356
2017-12-02 08:58:57 +01:00
Jakub Jelinek edb48cdb9f tree-chkp.c (chkp_compute_bounds_for_assignment): Handle POINTER_DIFF_EXPR.
* tree-chkp.c (chkp_compute_bounds_for_assignment): Handle
	POINTER_DIFF_EXPR.

	* gcc.target/i386/mpx/pointer-diff-1.c: New test.

From-SVN: r255355
2017-12-02 08:58:05 +01:00
Jakub Jelinek 38651b523d re PR sanitizer/81212 (-Wreturn-type is disabled when used together with -fsanitize=return)
PR c++/81212
	* tree-cfg.c (pass_warn_function_return::execute): Handle
	__builtin_ubsan_handle_missing_return like __builtin_unreachable
	with BUILTINS_LOCATION.

	* g++.dg/ubsan/pr81212.C: New test.
	* g++.dg/ubsan/return-1.C: Add -Wno-return-type to dg-options.
	* g++.dg/ubsan/return-2.C: Likewise.
	* g++.dg/ubsan/return-7.C: Likewise.

From-SVN: r255354
2017-12-02 08:57:04 +01:00
Jakub Jelinek e034c5c895 re PR target/78643 (ICE in convert_move, at expr.c:230)
PR target/78643
	PR target/80583
	* expr.c (get_inner_reference): If DECL_MODE of a non-bitfield
	is BLKmode for vector field with vector raw mode, use TYPE_MODE
	instead of DECL_MODE.

	* gcc.target/i386/pr80583.c: New test.

From-SVN: r255353
2017-12-02 08:54:47 +01:00
Jakub Jelinek 3b5e1089fe i386-protos.h (standard_sse_constant_opcode): Change last argument to rtx pointer.
* config/i386/i386-protos.h (standard_sse_constant_opcode): Change
	last argument to rtx pointer.
	* config/i386/i386.c (standard_sse_constant_opcode): Replace X argument
	with OPERANDS.  For AVX+ 128-bit VEX encoded instructions over 256-bit
	or 512-bit.  If setting EXT_REX_SSE_REG_P, use EVEX encoded insn
	depending on the chosen ISAs.
	* config/i386/i386.md (*movxi_internal_avx512f, *movoi_internal_avx,
	*movti_internal, *movdi_internal, *movsi_internal, *movtf_internal,
	*movdf_internal, *movsf_internal): Adjust standard_sse_constant_opcode
	callers.
	* config/i386/sse.md (mov<mode>_internal): Likewise.
	* config/i386/mmx.md (*mov<mode>_internal): Likewise.

From-SVN: r255352
2017-12-02 08:37:50 +01:00
Segher Boessenkool 3adbbd5b97 doc update for -dp
* doc/invoke.texi (-dp): Say that instruction cost is printed as well.

From-SVN: r255351
2017-12-02 03:03:19 +01:00
Segher Boessenkool 0bcd172e9d rs6000: Improve fusion assembler output
This improves the output for load and store fusion a little.  In most
cases it removes the comment output, because that makes the generated
assembler code hard to read, and equivalent info is available with -dp
anyway.  For the vector loads it puts the comment on the second insn,
where it doesn't interfere with other debug comments.


	* config/rs6000/rs6000-protos.h (emit_fusion_addis): Remove last two
	parameters from prototype.
	* config/rs6000/rs6000.c (emit_fusion_addis): Remove last two
	parameters.  Don't print a comment.
	(emit_fusion_gpr_load): Adjust.
	(emit_fusion_load_store): Adjust.
	* config/rs6000/rs6000.md (*fusion_p9_<mode>_constant): Adjust.
	* config/rs6000/vsx.md (two peepholes): Print the "vector load fusion"
	comment on the second line.

gcc/testsuite/
	* gcc.target/powerpc/fusion.c: Add -dp to options.  Adjust the expected
	output.
	* gcc.target/powerpc/fusion3.c: Ditto.
	* gcc.target/powerpc/fusion4.c: Ditto.

From-SVN: r255350
2017-12-02 02:33:39 +01:00
Segher Boessenkool 81094bcb45 rs6000: Set rs6000_cpu correctly (PR43871)
We set rs6000_cpu based on tune_index, but it should be cpu_index.
This patch fixes it.


	PR target/43871
	* config/rs6000/rs6000.c (rs6000_option_override_internal): Set
	rs6000_cpu based on cpu_index, not tune_index.

From-SVN: r255349
2017-12-02 02:23:41 +01:00
Segher Boessenkool dff125ebb5 final: Improve output for -dp and -fverbose-asm
This improves the assembler output (for -dp and -fverbose-asm) in
several ways.  It always prints the insn_cost.  It does not print
"[length = NN]" but "[c=NN l=NN]", to save space.  It does not add one
to the instruction alternative number (everything else starts counting
those at 0, too).  And finally, it tries to keep things lined up in
columns a bit better.


	* final.c (output_asm_name): Print insn_cost.  Shorten output.  Print
	which_alternative instead of which_alternative + 1.
	(output_asm_insn): Print an extra tab if the template is short.

From-SVN: r255348
2017-12-02 02:20:08 +01:00
Ian Lance Taylor 79c9f76563 runtime: export cgoCheck functions
The functions cgoCheckPointer and cgoCheckResult are called by code
    generated by cgo. That means that we need to export them using
    go:linkname, as otherwise they are local symbols. The cgo code
    currently uses weak references to only call the symbols if they are
    defined, which is why it has been working--the cgo code has not been
    doing any checks.
    
    Reviewed-on: https://go-review.googlesource.com/80295

From-SVN: r255347
2017-12-02 00:46:00 +00:00
Ian Lance Taylor 9638589faf compiler: avoid GCC middle-end control warnings
GCC has started emitting "control reaches end of non-void function"
    warnings. Avoid them for Go by 1) marking the builtin function panic
    and the compiler-generated function __go_runtime_error as not
    returning and 2) adding a default case to the switch used for select
    statements that simply calls __builtin_unreachable.
    
    Fixes golang/go#22767
    
    Reviewed-on: https://go-review.googlesource.com/80416

	* go-gcc.cc (Gcc_backend::Gcc_backend): Define
	__builtin_unreachable.
	(Gcc_backend::function): Add does_not_return parameter.

From-SVN: r255346
2017-12-02 00:38:54 +00:00
Jim Wilson d7d5f241f0 Delete obsolete DWARF1 references.
gcc/
	* common.opt (use_gnu_debug_info_extensions): Delete DWARF_DEBUG from
	comment.
	* config/vx-common.h (DWARF_DEBUGGING_INFO): Delete undef.
	* doc/tm.texi.in (PREFERRED_DEBUGGING_TYPE): Delete DWARF_DEBUG
	reference.
	* doc/tm.texi: Regenerate.

From-SVN: r255345
2017-12-01 16:24:36 -08:00
GCC Administrator 8d7de03993 Daily bump.
From-SVN: r255344
2017-12-02 00:16:15 +00:00
Michael Meissner b2db7624af re PR target/81959 (PowerPC __float128 optimization fails with integer PRE_INC addresses)
[gcc]
2017-12-01  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/81959
	* config/rs6000/rs6000.c (rs6000_address_for_fpconvert): Check for
	whether we can allocate pseudos before trying to fix an address.
	* config/rs6000/rs6000.md (float_<mode>si2_hw): Make sure the
	memory address is indexed or indirect.
	(floatuns_<mode>si2_hw2): Likewise.

[gcct/testsuite]
2017-12-01  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/81959
	* gcc.target/powerpc/pr81959.c: New test.

From-SVN: r255341
2017-12-01 23:52:20 +00:00
Than McIntosh 92f0112cab compiler: introduce size threshold for nil checks
Add a new control variable to the Gogo class that stores the size
    threshold for nil checks. This value can be used to control the
    policy for deciding when a given deference operation needs a check and
    when it does not. A size threshold of -1 means that every potentially
    faulting dereference needs an explicit check (and branch to error
    call). A size threshold of K (where K > 0) means that if the size of
    the object being dereferenced is >= K, then we need a check.
    
    Reviewed-on: https://go-review.googlesource.com/80996

	* go-c.h (go_create_gogo_args): Add nil_check_size_threshold
	field.
	* go-lang.c (go_langhook_init): Set nil_check_size_threshold.

From-SVN: r255340
2017-12-01 23:12:13 +00:00
Jason Merrill 19041dad9b * doc/extend.texi: Mention C++14 library complex suffix.
From-SVN: r255339
2017-12-01 16:17:32 -05:00
Jason Merrill b3e862e09c Give #include hints for <complex>.
* name-lookup.c (get_std_name_hint): Add <complex>.
	* parser.c (cp_parser_diagnose_invalid_type_name): Call
	suggest_alternative_in_explicit_scope.
	(cp_parser_namespace_name): Likewise.

From-SVN: r255336
2017-12-01 15:19:13 -05:00
Jason Merrill f2b8b8adba PR c++/79228 - extensions hide C++14 complex literal operators
libcpp/
	* expr.c (interpret_float_suffix): Ignore 'i' in C++14 and up.
	(interpret_int_suffix): Likewise.
gcc/cp/
	* parser.c (cp_parser_userdef_numeric_literal): Be helpful about
	'i' in C++14 and up.

From-SVN: r255335
2017-12-01 15:19:07 -05:00
Jason Merrill 0951904f49 * Makefile.in (TAGS): Add c-family/*.cc.
From-SVN: r255334
2017-12-01 15:19:01 -05:00
Wilco Dijkstra d65912578b [AArch64] Fix address printing on ILP32
Fix address printing for ILP32.  The md file uses 'a' in assembler
templates for symbolic addresses in adrp/add, which end up calling
aarch64_print_operand_address.  However in ILP32 these are not valid
memory addresses (being ptr_mode rather than Pmode), so the assert
triggers.  Since it is incorrect to use symbols in memory addresses
(besides literal pool accesses), change the 'a' to 'c' in the md file.

Skip one failing test in ILP32 which combines the 'p' modifier with the 'a'
assembler template to fake a memory reference.

    gcc/
	* config/aarch64/aarch64.md (call_insn): Use %c rather than %a.
	(call_value_insn): Likewise.
	(sibcall_insn): Likewise.
	(sibcall_value_insn): Likewise.
	(movsi_aarch64): Likewise.
	(movdi_aarch64): Likewise.
	(add_losym_): Likewise.
	(ldr_got_small_): Likewise.
	(ldr_got_small_sidi): Likewise.
	(ldr_got_small_28k_): Likewise.
	(ldr_got_small_28k_sidi): Likewise.
	* config/aarch64/aarch64.c (aarch64_print_address_internal):
	Move output_addr_const to symbolic case. Add error check.
    testsuite/
	* gcc.dg/asm-4.c: Skip on AArch64 with ILP32 as test is incorrect.

From-SVN: r255333
2017-12-01 19:54:29 +00:00
Qing Zhao 8a302cb2b3 Fix an undefined behavior in fortran/decl.c
From-SVN: r255332
2017-12-01 18:20:45 +00:00
Thomas Koenig 1cde289f1c re PR fortran/83224 (creating character array from elements shorter than declared does not pad with whitespace properly and aborts)
2017-12-01  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/83224
	* frontend-passes.c (create_var): Also handle
	character arrays, handling deferred lenghts.

2017-12-01  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/83224
	* gfortran.dg/dependency_51.f90: New test.

From-SVN: r255331
2017-12-01 18:06:31 +00:00
Jonathan Wakely ad8fda29e6 Fix narrowing conversions in string_view types
* include/experimental/string_view (basic_string_view::_S_compare):
	Use value-init so narrowing conversions are not ill-formed.
	* include/std/string_view (basic_string_view::_S_compare): Likewise.

From-SVN: r255321
2017-12-01 16:10:31 +00:00