1. 15 Dec, 2017 9 commits
    • exp_unst.adb (Unnest_Subprograms): Nothing to do if the main unit is a generic package body. · c581c520
      gcc/ada/
      
      2017-12-15  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_unst.adb (Unnest_Subprograms): Nothing to do if the main unit is
      	a generic package body. Unnesting is only an issue when generating
      	code, and if the main unit is generic then nested instance bodies have
      	not been created and analyzed, and unnesting will crash in the absence
      	of those bodies,
      
      2017-12-15  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* inline.adb (Add_Inlined_Body): Do not add a function which is
      	completed by an expression function defined in the same context as the
      	initial declaration because the completing body is not in a package
      	body.
      	(Is_Non_Loading_Expression_Function): New routine.
      
      2017-12-15  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* debug.adb: Move the functionality of -gnatdL to -gnatd_i. Restore
      	the behavior of -gnatdL from before revision 255412.
      	* sem_elab.adb: Update the section of compiler switches.
      	(Build_Call_Marker): Do not create a marker for a call which originates
      	from an expanded spec or body of an instantiated gener, does not invoke
      	a generic formal subprogram, the target is external to the instance,
      	and -gnatdL is in effect.
      	(In_External_Context): New routine.
      	(Process_Conditional_ABE_Activation_Impl): Update the uses of -gnatdL
      	and associated flag.
      	(Process_Conditional_ABE_Call): Update the uses of -gnatdL and
      	associated flag.
      	* switch-c.adb (Scan_Front_End_Switches): Switch -gnatJ now sets switch
      	-gnatd_i.
      	* exp_unst.adb: Minor typo fixes and edits.
      
      2017-12-15  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch6.adb (Possible_Freeze): Do not set Delayed_Freeze on an
      	subprogram instantiation, now that the enclosing wrapper package
      	carries an explicit freeze node. THis prevents freeze nodes for the
      	subprogram for appearing in the wrong scope. This is relevant when the
      	generic subprogram has a private or incomplete formal type and the
      	instance appears within a package that declares the actual type for the
      	instantiation, and that type has itself a delayed freeze.
      
      2017-12-15  Patrick Bernardi  <bernardi@adacore.com>
      
      	* doc/gnat_ugn/gnat_and_program_execution.rst: Removed references to
      	the environment variable GNAT_STACK_LIMIT from the Stack Overflow
      	Checking section as it is no longer used by any of our supported
      	targets.
      
      gcc/testsuite/
      
      2017-12-15  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* gnat.dg/expr_func_main.adb, gnat.dg/expr_func_pkg.ads,
      	gnat.dg/expr_func_pkg.adb: New testcase.
      
      2017-12-15  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* gnat.dg/abe_pkg.adb, gnat.dg/abe_pkg.ads: New testcase.
      
      2017-12-15  Ed Schonberg  <schonberg@adacore.com>
      
      	* gnat.dg/subp_inst.adb, gnat.dg/subp_inst_pkg.adb,
      	gnat.dg/subp_inst_pkg.ads: New testcase.
      
      From-SVN: r255683
      Pierre-Marie de Rodat committed
    • [multiple changes] · 56af8688
      2017-12-15  Bob Duff  <duff@adacore.com>
      
      	* exp_ch6.adb (Expand_N_Extended_Return_Statement): If the
      	Init_Assignment is rewritten, we need to set Assignment_OK on the new
      	node.  Otherwise, we will get spurious errors when initializing via
      	assignment statement.
      
      2017-12-15  Arnaud Charlet  <charlet@adacore.com>
      
      	* exp_unst.adb (Visit_Node): Refine handling of 'Access to ignore non
      	relevant nodes.
      	(Has_Non_Null_Statements): Moved to sem_util for later reuse.
      
      2017-12-15  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* exp_attr.adb (Is_Inline_Floating_Point_Attribute): Fix comment.
      	* libgnat/s-fatgen.adb (Model): Use Machine attribute.
      	(Truncation): Likewise.
      
      2017-12-15  Bob Duff  <duff@adacore.com>
      
      	* exp_ch7.adb (Expand_Cleanup_Actions): Make sure the block and handled
      	statement sequence generated for certain extended return statements
      	have a Sloc that is not No_Location. Otherwise, the back end doesn't
      	set any location and ends up reading uninitialized variables.
      
      From-SVN: r255680
      Pierre-Marie de Rodat committed
    • types.ads, [...]: Partly revert r255414, committed by mistake. · e83a74b0
      2017-12-15  Bob Duff  <duff@adacore.com>
      
      	* types.ads, exp_ch6.adb, libgnat/s-regexp.ads, opt.ads: Partly revert
      	r255414, committed by mistake.
      
      From-SVN: r255679
      Bob Duff committed
    • Enable VAES support [5/5] · 549fa584
      gcc/
      	* config/i386/i386-builtin.def (__builtin_ia32_vaesenclast_v16qi,
      	__builtin_ia32_vaesenclast_v32qi, __builtin_ia32_vaesenclast_v64qi): New.
      	* config/i386/sse.md (vaesenclast_<mode>): New pattern.
      	* config/i386/vaesintrin.h (_mm256_aesenclast_epi128,
      	_mm512_aesenclast_epi128, _mm_aesenclast_epi128): New intrinsics.
      
      gcc/testsuite/
      	* gcc.target/i386/avx512f-aesenclast-2.c: New test.
      	* gcc.target/i386/avx512vl-aesenclast-2.c: Ditto.
      	* gcc.target/i386/avx512fvl-vaes-1.c: Handle new intrinsics.
      
      From-SVN: r255676
      Julia Koval committed
    • Enable VAES support [4/5] · 5a5d1797
      gcc/
      	* config/i386/i386-builtin.def (__builtin_ia32_vaesenc_v16qi,
      	__builtin_ia32_vaesenc_v32qi, __builtin_ia32_vaesenc_v64qi): New.
      	* config/i386/sse.md (vaesenc_<mode>): New pattern.
      	* config/i386/vaesintrin.h (_mm256_aesenc_epi128, _mm512_aesenc_epi128,
      	_mm_aesenc_epi128): New intrinsics.
      
      gcc/testsuite/
      	* gcc.target/i386/avx512f-aesenc-2.c: New test.
      	* gcc.target/i386/avx512vl-aesenc-2.c: Ditto.
      	* gcc.target/i386/avx512fvl-vaes-1.c: Handle new intrinsics.
      
      From-SVN: r255675
      Julia Koval committed
    • Enable VAES support [3/5] · 0ccdce5f
      gcc/
      	* config/i386/i386-builtin.def (__builtin_ia32_vaesdeclast_v16qi,
      	__builtin_ia32_vaesdeclast_v32qi, __builtin_ia32_vaesdeclast_v64qi): New.
      	* config/i386/sse.md (vaesdeclast_<mode>): New pattern.
      	* config/i386/vaesintrin.h (_mm256_aesdeclast_epi128,
      	_mm512_aesdeclast_epi128, _mm_aesdeclast_epi128): New intrinsics.
      
      gcc/testsuite/
      	* gcc.target/i386/avx512f-aesdeclast-2.c: New test.
      	* gcc.target/i386/avx512vl-aesdeclast-2.c
      	* gcc.target/i386/avx512fvl-vaes-1.c: Handle new intrinsics.
      
      From-SVN: r255674
      Julia Koval committed
    • Fix ChangeLog entry date · 99197a84
      From-SVN: r255673
      Peter Bergner committed
    • Daily bump. · 949737fc
      From-SVN: r255670
      GCC Administrator committed
  2. 14 Dec, 2017 31 commits
    • PR libstdc++/83279 handle sendfile not copying entire file · c49bef17
      	PR libstdc++/83279
      	* src/filesystem/std-ops.cc (do_copy_file): Handle sendfile not
      	copying entire file.
      
      From-SVN: r255666
      Jonathan Wakely committed
    • PR libstdc++/68519 use native duration to avoid rounding errors · 83fd5e73
      	PR libstdc++/68519
      	* include/std/condition_variable (condition_variable::wait_for):
      	Convert duration to native clock's duration before addition.
      	* testsuite/30_threads/condition_variable/members/68519.cc: New test.
      
      From-SVN: r255665
      Jonathan Wakely committed
    • gimple-ssa-strength-reduction.c (analyze_increments): Distinguish replacement… · d5f6f04c
      gimple-ssa-strength-reduction.c (analyze_increments): Distinguish replacement costs for constant strides from those for unknown strides.
      
      2017-12-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
      
      	* gimple-ssa-strength-reduction.c (analyze_increments):
      	Distinguish replacement costs for constant strides from those for
      	unknown strides.
      
      From-SVN: r255664
      Bill Schmidt committed
    • * var-tracking.c (variable_tracking_main_1): Formatting fix. · ae1fa44f
      From-SVN: r255663
      Jakub Jelinek committed
    • invoke.texi: Document -Wcast-function-type. · c65e18d3
      gcc:
      2017-12-14  Bernd Edlinger  <bernd.edlinger@hotmail.de>
      
              * doc/invoke.texi: Document -Wcast-function-type.
              * recog.h (stored_funcptr): Change signature.
              * tree-dump.c (dump_node): Avoid warning.
              * typed-splay-tree.h (typed_splay_tree): Avoid warning.
      
      libcpp:
      2017-12-14  Bernd Edlinger  <bernd.edlinger@hotmail.de>
      
              * internal.h (maybe_print_line): Change signature.
      
      c-family:
      2017-12-14  Bernd Edlinger  <bernd.edlinger@hotmail.de>
      
              * c.opt (Wcast-function-type): New warning option.
              * c-lex.c (get_fileinfo): Avoid warning.
              * c-ppoutput.c (scan_translation_unit_directives_only): Remove cast.
      
      c:
      2017-12-14  Bernd Edlinger  <bernd.edlinger@hotmail.de>
      
              * c-typeck.c (c_safe_arg_type_equiv_p,
              c_safe_function_type_cast_p): New function.
              (build_c_cast): Implement -Wcast-function-type.
      
      cp:
      2017-12-14  Bernd Edlinger  <bernd.edlinger@hotmail.de>
      
              * decl2.c (start_static_storage_duration_function): Avoid warning.
              * typeck.c (cxx_safe_arg_type_equiv_p,
              cxx_safe_function_type_cast_p): New function.
              (build_reinterpret_cast_1): Implement -Wcast-function-type.
      
      testsuite:
      2017-12-14  Bernd Edlinger  <bernd.edlinger@hotmail.de>
      
              * c-c++-common/Wcast-function-type.c: New test.
              * g++.dg/Wcast-function-type.C: New test.
      
      From-SVN: r255661
      Bernd Edlinger committed
    • Makefile.am (IFUNC_OPTIONS): Change aarch64 option from -march=armv8.1-a to -march=armv8-a+lse. · 9d0e85af
      2017-12-14  Steve Ellcey  <sellcey@cavium.com>
      
      	* Makefile.am (IFUNC_OPTIONS): Change aarch64
      	option from -march=armv8.1-a to -march=armv8-a+lse.
      	* configure.ac (*aarch64*): Check to see if
      	compiler understands -march=armv8-a+lse option.
      	* configure.tgt (*aarch64*): Only set try_ifunc
      	if compiler understands -march=armv8-a+lse option.
      	* Makefile.in: Regenerate.
      	* testsuite/Makefile.in: Regenerate.
      	* configure: Regenerate.
      	* aclocal.m4: Regenerate.
      
      From-SVN: r255659
      Steve Ellcey committed
    • Patch for middle-end/PR79538 · 2004617a
      missing -Wformat-overflow with %s and non-member array arguments 
      
      -Wformat-overflow uses the routine "get_range_strlen" to decide the 
      maximum string length, however, currently "get_range_strlen" misses 
      the handling of non-member arrays.
      
      Adding the handling of non-member array resolves the issue.
      Adding test case pr79538.c into gcc.dg.
      
      During gcc bootstrap, 2 source files (c-family/c-cppbuiltin.c, 
      fortran/class.c) were detected new warnings by -Wformat-overflow
      due to the new handling of non-member array in "get_range_strlen".
      in order to avoid these new warnings and continue with bootstrap,
      updating these 2 files to avoid the warnings.
      
      in c-family/c-cppbuiltin.c, the warning is following:
      
      ../../latest_gcc_2/gcc/c-family/c-cppbuiltin.c:1627:15: note: 
      ‘sprintf’ output 2 or more bytes (assuming 257) into a destination 
      of size 256
             sprintf (buf1, "%s=%s", macro, buf2);
             ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
      in the above, buf1 and buf2 are declared as:
      char buf1[256], buf2[256];
      
      i.e, buf1 and buf2 have same size. adjusting the size of buf1 and 
      buf2 resolves the warning. 
      
      fortran/class.c has the similar issue as above. Instead of adjusting
      size of the buffers, replacing sprintf with xasprintf is a better 
      solution for these cases.
      
      From-SVN: r255654
      Qing Zhao committed
    • PR libstdc++/83427 detect weak result type from noexcept functions · 00677c48
      	PR libstdc++/83427
      	* include/bits/refwrap.h (_Maybe_unary_or_binary_function): Move here
      	from <bits/std_function.h>.
      	(_Mem_fn_traits_base, _Mem_fn_traits): Move here, from <functional>.
      	(_Weak_result_type_impl, _Reference_wrapper_base): Deduce noexcept
      	for function types. Remove partial specializations for member
      	functions.
      	(_Weak_result_type_impl): Remove unused partial specializations for
      	non-referenceable function types and for references to functions.
      	(_Weak_result_type_memfun, _Reference_wrapper_base_memfun): New
      	helpers to handle member functions via _Mem_fn_traits.
      	(_Weak_result_type, reference_wrapper): Derive from new helpers.
      	* include/bits/std_function.h (_Maybe_unary_or_binary_function): Move
      	to <bits/refwrap.h>.
      	* include/std/functional (_Pack, _AllConvertible, _NotSame): Remove.
      	(_Mem_fn_traits_base, _Mem_fn_traits): Move to <bits/refwrap.h>.
      	* testsuite/20_util/bind/83427.cc: New test.
      	* testsuite/20_util/bind/refqual.cc: Add noexcept to functions and
      	check for weak result types.
      	* testsuite/20_util/reference_wrapper/83427.cc: New test.
      
      From-SVN: r255651
      Jonathan Wakely committed
    • * gcc-interface/misc.c (default_pass_by_ref): Minor tweak. · db811328
      From-SVN: r255650
      Eric Botcazou committed
    • vrp_prop: Use dom_walker for -Warray-bounds (PR tree-optimization/83312) · 5505bb43
      gcc/ChangeLog:
      	PR tree-optimization/83312
      	* domwalk.h (dom_walker::dom_walker): Fix typo in comment.
      	* tree-cfg.c (find_taken_edge): Update to handle NULL_TREE for
      	"val" param, and to cope with arbitrary basic blocks.
      	(find_taken_edge_cond_expr): Add "cond_stmt" param and use it to
      	handle NULL_TREE for "val", dropping "bb" param.
      	(find_taken_edge_switch_expr): Make "switch_stmt" param const and
      	drop "bb" param.  Handle NULL_TREE for "val".
      	(find_case_label_for_value): Make "switch_stmt" param const.
      	* tree-vrp.c (class check_array_bounds_dom_walker): New subclass
      	of dom_walker.
      	(vrp_prop::check_all_array_refs): Reimplement as...
      	(check_array_bounds_dom_walker::before_dom_children): ...this new
      	vfunc.  Replace linear search through BB block list, excluding
      	those with non-executable in-edges via dominator walk.
      
      gcc/testsuite/ChangeLog:
      	PR tree-optimization/83312
      	* gcc.dg/pr83312.c: New test case.
      
      From-SVN: r255649
      David Malcolm committed
    • trans.c (Call_to_gnu): Set DECL_DISREGARD_INLINE_LIMITS to 0 on the callee if… · 9de21921
      trans.c (Call_to_gnu): Set DECL_DISREGARD_INLINE_LIMITS to 0 on the callee if the call is recursive.
      
      	* gcc-interface/trans.c (Call_to_gnu): Set DECL_DISREGARD_INLINE_LIMITS
      	to 0 on the callee if the call is recursive.
      
      From-SVN: r255648
      Eric Botcazou committed
    • decl.c (gnat_to_gnu_field): Do not set the alignment of the enclosing record… · 9df60a5d
      decl.c (gnat_to_gnu_field): Do not set the alignment of the enclosing record type if it is not already set.
      
      	* gcc-interface/decl.c (gnat_to_gnu_field): Do not set the alignment
      	of the enclosing record type if it is not already set.
      
      From-SVN: r255645
      Eric Botcazou committed
    • [arm] Add -mverbose-cost-dump and de-verbosify cost dumps · 636f605c
      This patch adds an -mverbose-cost-dump option, similar to the one in aarch64.
      It makes the RTX cost dump print the RTX we're costing in the backend, as well as its cost.
      This can be distracting in other cost-related RTL dumps like combine's.
      
      So now we don't dump the backend information by default, but provide the power-user option -mverbose-cost-dump
      to enable the old verbose dumping.
      
      This option is for GCC developers debugging the compiler only, so no documentation are added.
      It's also trivially simple in functionality so no test is added either.
      
      Bootstrapped and tested on arm-none-linux-gnueabihf.
      
      Committed to trunk.
      
      	* config/arm/arm.opt (mverbose-cost-dump): New option.
      	* config/arm/arm.c (arm_rtx_costs): Use it.
      
      From-SVN: r255644
      Kyrylo Tkachov committed
    • re PR lto/81406 (ICE in check_die, at dwarf2out.c:6185) · e2c6cfac
      	PR lto/81406
      	* gcc.dg/lto/pr81406_0.c: New test.
      
      From-SVN: r255643
      Jakub Jelinek committed
    • re PR tree-optimization/66974 (-Warray-bounds false positive with -O3) · c49dac0d
      2017-12-14  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/66974
      	* gcc.dg/Warray-bounds-24.c: New testcase.
      
      From-SVN: r255642
      Richard Biener committed
    • re PR tree-optimization/65258 (Wrong array bounds warning) · 5bc29045
      2017-12-14  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/65258
      	* gcc.dg/Warray-bounds-23.c: New testcase.
      
      From-SVN: r255641
      Richard Biener committed
    • re PR bootstrap/83396 (Bootstrap failures with Statement Frontiers) · bb00f5e7
      	PR bootstrap/83396
      	* reload1.c (emit_input_reload_insns): Skip debug markers.
      
      From-SVN: r255640
      Andreas Schwab committed
    • [compare-debug] use call loc for nop_endbr · 4a0cafdd
      We skip debug insns and notes after a call that needs a nop_endbr, but
      since a debug insn could be the last in a block, it may affect the loc
      in the emitted nop_endbr insn.  Although this has no effect on
      codegen, it does mess with debug info a bit, and it causes
      -fcompare-debug to fail for e.g. libsanitizer's
      tsan/tsan_platform_linux.cc on x86_64.
      
      So, pick the location of the call insn for the nop_endbr insn, to
      avoid the line number differences in dumps, including -fcompare-debug
      ones.
      
      Also, we don't need to determine what the insert point would be unless
      we're actually emitting the nop_endbr insn after the call, so
      rearrange the code to avoid wasting cycles.
      
      Finally, it seems like testing for barriers is a mistake.  We probably
      never actually pass that test, for the barriers would hit BB_END
      first.  If we did, we'd end up emitting the nop_endbr outside any BB,
      even after the end of the function!  That would be Very Bad (TM).
      Now, since the test as it is can't hurt, I figured I wouldn't change
      the logic right now, just add a comment so that someone involved in
      endbr stuff can have a second look and hopefully fix it.
      
      for  gcc/ChangeLog
      
      	* config/i386/i386.c (rest_of_insert_endbranch): Use call loc
      	for its nop_endbr.
      
      From-SVN: r255639
      Alexandre Oliva committed
    • [SFN] next/prev_nonnote_insn_bb are no more, even for ports · c483db37
      The patch that added _nondebug to next_ and prev_nonnote_insn_bb
      failed to find and adjust uses within config.  Fixed.
      
      for  gcc/ChangeLog
      
      	PR bootstrap/83396
      	* config/arc/arc.c (hwloop_optimize): Skip debug insns.
      	* config/sh/sh-protos.h (sh_find_set_of_reg): Adjust.
      	* config/sh/sh.c: Skip debug insns besides notes.
      	* config/sh/sh.md: Likewise.
      	* config/sh/sh_treg_combine.cc: Likewise.
      	* config/sh/sync.md: Likewise.
      
      From-SVN: r255638
      Alexandre Oliva committed
    • Require effective target weak_undefined for visibility-22.c · aadd37c8
      2017-12-14  Tom de Vries  <tom@codesourcery.com>
      
      	* lib/target-supports.exp (check_effective_target_weak_undefined): New
      	proc.
      	* gcc.dg/visibility-22.c: Require effective target weak_undefined.
      
      	* doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
      	Add item for weak_undefined.
      
      From-SVN: r255637
      Tom de Vries committed
    • re PR tree-optimization/67842 (Incorrect check in sese.h:bb_in_region) · e64905d8
      2017-12-14  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/67842
      	* sese.h (bb_in_region): Remove #if 0'ed code.
      
      From-SVN: r255636
      Richard Biener committed
    • re PR tree-optimization/83326 (SPEC CPU2017 648.exchange2_s ~6% performance… · 8fa06648
      re PR tree-optimization/83326 (SPEC CPU2017 648.exchange2_s ~6% performance regression with r255267 (reproducer attached))
      
      2017-12-14  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/83326
      	* tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Add
      	may_be_zero parameter and handle it by not marking the first
      	peeled copy as not exiting the loop.
      	(try_peel_loop): Likewise.
      	(canonicalize_loop_induction_variables): Use number_of_iterations_exit
      	to handle the case of constant or zero iterations and perform
      	loop header copying on-the-fly.
      
      	* gcc.dg/tree-ssa/pr81388-2.c: Adjust.
      
      From-SVN: r255635
      Richard Biener committed
    • Test whitespace handling in std::complex extraction · f297ebaf
      	* testsuite/26_numerics/complex/inserters_extractors/char/dr2714.cc:
      	Add tests using noskipws.
      
      From-SVN: r255632
      Jonathan Wakely committed
    • gigi.h (pad_type_has_rm_size): Declare. · 4d39941e
      	* gcc-interface/gigi.h (pad_type_has_rm_size): Declare.
      	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Do not build
      	a padding type for the alignment before validating the size.
      	Flip conditional construct and add a comment.
      	* gcc-interface/trans.c (Attribute_to_gnu) <Attr_Size>: Make sure to
      	apply the exception for padded objects to the type of the object.
      	* gcc-interface/utils.c (hash_pad_type): New static function.
      	(lookup_and_insert_pad_type): Rename into...
      	(canonicalize_pad_type): ...this.  Call hash_pad_type, do only one
      	lookup with insertion and always return the canonical type.
      	(maybe_pad_type): Adjust to above changes.  Set debug type later.
      	(pad_type_has_rm_size): New predicate.
      	(set_reverse_storage_order_on_pad_type): Adjust to above changes.
      
      From-SVN: r255631
      Eric Botcazou committed
    • Improve std::complex test and move to sub-directory · 02aee327
      	* testsuite/26_numerics/complex/dr2714.cc: Move to ...
      	* testsuite/26_numerics/complex/inserters_extractors/char/dr2714.cc:
      	... Here. Remove duplicate header and dg-options. Check first invalid
      	character gets putback. Remove wchar_t test.
      
      From-SVN: r255630
      Jonathan Wakely committed
    • re PR middle-end/83415 (ICE during gimplification of assignment to read-only vector) · b7280579
      2017-12-14  Richard Biener  <rguenther@suse.de>
      
      	PR c/83415
      	c/
      	* c-fold.c (c_fully_fold_internal): Treat VIEW_CONVERT_EXPR
      	like REALPART_EXPR for the behavior of whether its operand
      	is an lvalue.
      
      	* gcc.dg/pr83415.c: New testcase.
      
      From-SVN: r255629
      Richard Biener committed
    • re PR tree-optimization/83418 (ICE in… · e729c8e0
      re PR tree-optimization/83418 (ICE in extract_range_for_var_from_comparison_expr, at vr-values.c:448)
      
      2017-12-14  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/83418
      	* vr-values.c (vr_values::extract_range_for_var_from_comparison_expr):
      	Instead of asserting we don't get unfolded comparisons deal with
      	them.
      
      	* gcc.dg/torture/pr83418.c: New testcase.
      
      From-SVN: r255628
      Richard Biener committed
    • re PR bootstrap/83396 (Bootstrap failures with Statement Frontiers) · 6dfb83e8
      	PR bootstrap/83396
      	* var-tracking.c (vt_initialize): Ignore non-DEBUG_INSNs outside of
      	basic blocks.  Assert debug bind insns don't appear outside of bbs,
      	don't reset them.  Assert insns without BLOCK_FOR_INSN are outside of
      	bb.  Simplify.
      
      	* gcc.dg/pr83396.c: New test.
      
      From-SVN: r255627
      Jakub Jelinek committed
    • re PR tree-optimization/83198 (ICE in format_floating, at gimple-ssa-sprintf.c:1900) · aa215959
      	PR tree-optimization/83198
      	* gimple-ssa-sprintf.c (format_floating): Set type solely based on
      	dir.modifier, regardless of TREE_TYPE (arg).  Assume non-REAL_CST
      	value if arg is a REAL_CST with incompatible type.
      
      	* gcc.dg/pr83198.c: New test.
      	* gcc.dg/tree-ssa/pr83198.c: New test.
      
      From-SVN: r255626
      Jakub Jelinek committed
    • [PATCH PR81228][AARCH64]Fix ICE by adding LTGT in vec_cmp<mode><v_int_equiv> · 8332c5ee
      This patch is a follow up to the existing discussions on
      https://gcc.gnu.org/ml/gcc-patches/2017-07/msg01904.html
      Bin had earlier submitted this patch to fix the ICE that
      occurs because of the missing LTGT in aarch64-simd.md.
      That discussion opened up a new bug report PR81647 for
      an inconsistent behavior.
      
      As discussed earlier on the gcc-patches discussion and on
      the bug report, PR81647 was occurring because of how UNEQ
      was handled in aarch64-simd.md rather than LTGT.
      Since __builtin_islessgreater is guaranteed to not give an
      FP exception but LTGT might, __builtin_islessgreater gets
      converted to ~UNEQ very early on in fold_builtin_unordered_cmp.
      Thus I will post a separate patch for correcting how UNEQ and
      other unordered comparisons are handled in aarch64-simd.md.
      
      This patch is only adding the missing LTGT to plug the ICE.
      
      Testing done: Checked for regressions on bootstrapped
      aarch64-none-linux-gnu and added a new compile time test case
      that gives out LTGT to make sure it doesn't ICE
      
      *** gcc/ChangeLog ***
      
      2017-12-14  Sudakshina Das  <sudi.das@arm.com>
      	    Bin Cheng  <bin.cheng@arm.com>
      
      	PR target/81228
      	* config/aarch64/aarch64.c (aarch64_select_cc_mode): Move LTGT
      	to CCFPEmode.
      	* config/aarch64/aarch64-simd.md (vec_cmp<mode><v_int_equiv>): Add
      	LTGT.
      
      *** gcc/testsuite/ChangeLog ***
      
      2017-12-14  Sudakshina Das  <sudi.das@arm.com>
      
      	PR target/81228
      	* gcc.dg/pr81228.c: New.
      
      Co-Authored-By: Bin Cheng <bin.cheng@arm.com>
      
      From-SVN: r255625
      Sudakshina Das committed