aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2017-12-05Daily bump.GCC Administrator1-1/+1
From-SVN: r255398
2017-12-04re PR target/81616 (Update -mtune=generic for the current Intel and AMD ↵Jan Hubicka5-183/+189
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-04sparc.c (sparc_do_work_around_errata): Use mem_ref instead of MEM_P in a ↵Eric Botcazou2-28/+34
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-04PR c++/83273 - constexpr if allows non-constant conditionJason Merrill5-2/+28
* 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-04Fix typos in riscv register save/restore.Jim Wilson3-4/+13
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-04Fix missing newlines from local-pure-const pass dumpLuis Machado2-2/+7
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-04re PR tree-optimization/78496 (Missed opportunities for jump threading)Jeff Law9-17/+172
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* gimple-ssa-evrp-analyze.cJeff Law2-2/+8
(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-04combine: Remove use_crosses_set_pSegher Boessenkool2-62/+14
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-04re PR tree-optimization/83255 ([graphite] Wrong code w/ -O1 ↵Richard Biener4-0/+65
-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-04RTEMS/Ada: Account for 64-bit time_tSebastian Huber4-6/+188
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-04lra: Clobbers in a parallel are earlyclobbers (PR83245)Segher Boessenkool2-8/+10
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-04re PR bootstrap/83265 (Bootstrap failure on powerpc64)Segher Boessenkool2-2/+12
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-04re PR tree-optimization/83238 ([graphite] ICE in ↵Richard Biener4-2/+51
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-04Require effective target alloca for pr82875.cTom de Vries2-0/+5
2017-12-04 Tom de Vries <tom@codesourcery.com> * gcc.dg/pr82875.c: Require effective target alloca. From-SVN: r255374
2017-12-04Daily bump.GCC Administrator1-1/+1
From-SVN: r255372
2017-12-03pa.c (pa_legitimate_address_p): For scaled indexing...John David Anglin2-1/+14
* 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-03re PR fortran/36313 ([F03] {MIN,MAX}{LOC,VAL} should accept character arguments)Thomas Koenig13-10/+514
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-03re PR fortran/83191 (Writing a namelist with repeated complex numbers)Jerry DeLisle2-0/+28
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-03Daily bump.GCC Administrator1-1/+1
From-SVN: r255361
2017-12-02ipa-cp.c (ipcp_lattice<valtype>::print): Update dumping.Jan Hubicka2-7/+10
* 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-02re PR target/81616 (Update -mtune=generic for the current Intel and AMD ↵Jan Hubicka5-22/+29
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-02re PR tree-optimization/83170 (ICE: Segmentation fault - during GIMPLE pass: ↵Jakub Jelinek4-3/+40
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-02tree-chkp.c (chkp_compute_bounds_for_assignment): Handle POINTER_DIFF_EXPR.Jakub Jelinek4-0/+14
* 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-02re PR sanitizer/81212 (-Wreturn-type is disabled when used together with ↵Jakub Jelinek7-6/+36
-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-02re PR target/78643 (ICE in convert_move, at expr.c:230)Jakub Jelinek4-1/+35
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-02i386-protos.h (standard_sse_constant_opcode): Change last argument to rtx ↵Jakub Jelinek6-36/+72
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-02doc update for -dpSegher Boessenkool2-1/+5
* doc/invoke.texi (-dp): Say that instruction cost is printed as well. From-SVN: r255351
2017-12-02rs6000: Improve fusion assembler outputSegher Boessenkool9-32/+37
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-02rs6000: Set rs6000_cpu correctly (PR43871)Segher Boessenkool2-2/+8
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-02final: Improve output for -dp and -fverbose-asmSegher Boessenkool2-7/+21
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-02runtime: export cgoCheck functionsIan Lance Taylor1-1/+1
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-02compiler: avoid GCC middle-end control warningsIan Lance Taylor7-13/+45
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-01Delete obsolete DWARF1 references.Jim Wilson5-6/+14
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-02Daily bump.GCC Administrator1-1/+1
From-SVN: r255344
2017-12-01re PR target/81959 (PowerPC __float128 optimization fails with integer ↵Michael Meissner5-1/+47
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-01compiler: introduce size threshold for nil checksThan McIntosh13-81/+220
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* doc/extend.texi: Mention C++14 library complex suffix.Jason Merrill1-0/+4
From-SVN: r255339
2017-12-01Give #include hints for <complex>.Jason Merrill5-1/+23
* 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-01PR c++/79228 - extensions hide C++14 complex literal operatorsJason Merrill8-8/+138
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* Makefile.in (TAGS): Add c-family/*.cc.Jason Merrill2-1/+6
From-SVN: r255334
2017-12-01[AArch64] Fix address printing on ILP32Wilco Dijkstra5-13/+37
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-01Fix an undefined behavior in fortran/decl.cQing Zhao2-1/+6
From-SVN: r255332
2017-12-01re PR fortran/83224 (creating character array from elements shorter than ↵Thomas Koenig4-2/+29
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-01S/390: Split MVC instruction for better forwardingAndreas Krebbel3-1/+48
Certain lengths used in an MVC instruction might disable operand forwarding. Split MVCs into up to 2 forwardable ones if possible. gcc/ChangeLog: 2017-12-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com> * config/s390/predicates.md (plus16_Q_operand): New predicate. * config/s390/s390.md: Disable MVC merging peephole if it would disable operand forwarding. (new peephole2): Split MVCs if it would turn them into up to 2 forwardable MVCs. From-SVN: r255319
2017-12-01re PR fortran/82605 ([PDT] ICE in insert_parameter_exprs, at ↵Paul Thomas17-38/+374
fortran/decl.c:3154) 2017-12-01 Paul Thomas <pault@gcc.gnu.org> PR fortran/82605 * resolve.c (get_pdt_constructor): Initialize 'cons' to NULL. (resolve_pdt): Correct typo in prior comment. Emit an error if any parameters are deferred and the object is neither pointer nor allocatable. PR fortran/82606 * decl.c (gfc_get_pdt_instance): Continue if the parameter sym is not present or has no name. Select the parameter by name of component, rather than component order. Remove all the other manipulations of 'tail' when building the pdt instance. (gfc_match_formal_arglist): Emit and error if a star is picked up in a PDT decl parameter list. PR fortran/82622 * trans-array.c (set_loop_bounds): If a GFC_SS_COMPONENT has an info->end, use it rather than falling through to gcc_unreachable. (structure_alloc_comps): Check that param->name is non-null before comparing with the component name. * trans-decl.c (gfc_get_symbol_decl): Do not use the static initializer for PDT symbols. (gfc_init_default_dt): Do nothing for PDT symbols. * trans-io.c (transfer_array_component): Parameterized array components use the descriptor ubound since the shape is not available. PR fortran/82719 PR fortran/82720 * trans-expr.c (gfc_conv_component_ref): Do not use the charlen backend_decl of pdt strings. Use the hidden component instead. * trans-io.c (transfer_expr): Do not do IO on "hidden" string lengths. Use the hidden string length for pdt string transfers by adding it to the se structure. When finished nullify the se string length. PR fortran/82866 * decl.c (gfc_match_formal_arglist): If a name is not found or star is found, while reading a type parameter list, emit an immediate error. (gfc_match_derived_decl): On reading a PDT parameter list, on failure to match call gfc_error_recovery. PR fortran/82978 * decl.c (build_struct): Character kind defaults to 1, so use kind_expr whatever is the set value. (gfc_get_pdt_instance): Ditto. * trans-array.c (structure_alloc_comps): Copy the expression for the PDT string length before parameter substitution. Use this expression for evaluation and free it after use. 2017-12-01 Paul Thomas <pault@gcc.gnu.org> PR fortran/82605 * gfortran.dg/pdt_4.f03 : Incorporate the new error. PR fortran/82606 * gfortran.dg/pdt_19.f03 : New test. * gfortran.dg/pdt_21.f03 : New test. PR fortran/82622 * gfortran.dg/pdt_20.f03 : New test. * gfortran.dg/pdt_22.f03 : New test. PR fortran/82719 PR fortran/82720 * gfortran.dg/pdt_23.f03 : New test. PR fortran/82866 * gfortran.dg/pdt_24.f03 : New test. PR fortran/82978 * gfortran.dg/pdt_10.f03 : Correct for error in coding the for kind 4 component and change the kind check appropriately. * gfortran.dg/pdt_25.f03 : New test. From-SVN: r255311
2017-12-01re PR tree-optimization/83232 (fma3d spec2000 regression on zen with -Ofast ↵Richard Biener4-9/+65
(generic tuning) after r255268 by missed SLP oppurtunity) 2017-12-01 Richard Biener <rguenther@suse.de> PR tree-optimization/83232 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Fix detection of same access. Instead of breaking the group here do not consider the duplicate. Add comment explaining real fix. * gfortran.dg/vect/pr83232.f90: New testcase. From-SVN: r255307
2017-12-01Fix "central flowgraph" typo in machine desc docsJonathan Wakely2-1/+5
* doc/md.texi (Insn Splitting): Fix "central flowgraph" typo. From-SVN: r255305
2017-12-01RTEMS/Ada: Fix some POSIX typesSebastian Huber2-3/+22
gcc/ada * libgnarl/s-osinte__rtems.ads (pthread_cond_t): Use correct size and alignment. (pthread_mutex_t): Likewise. (pthread_rwlock_t): Likewise. From-SVN: r255302
2017-12-01Fix wrong code by arm_final_prescan with fp16 move instructionsSudakshina Das4-1/+23
ChangeLog entry are as follow: *** gcc/ChangeLog *** 2017-12-01 Sudakshina Das <sudi.das@arm.com> * config/arm/vfp.md (*movhf_vfp_fp16): Add conds attribute. *** gcc/testsuite/ChangeLog *** 2017-12-01 Sudakshina Das <sudi.das@arm.com> * gcc.target/arm/armv8_2-fp16-move-2.c: New test. From-SVN: r255301