1. 27 Sep, 2018 10 commits
    • i386.md (FPSR_REG): Remove. · eaa17c21
      	* config/i386/i386.md (FPSR_REG): Remove.
      	(x86_fnstcw_1): Use (const_int 0) instead of FPCR_REG.
      	(x86_fldcw_1): Remove insn pattern.
      	(fnstenv): Do not clobber FPCR_REG.
      	(fldenv): Ditto.
      	* config/i386/i386.h (FIXED_REGISTERS) Remove fpsr register.
      	(CALL_USED_REGISTERS): Ditto.
      	(REG_ALLOC_ORDER): Ditto.
      	(REG_CLASS_CONTENTS): Ditto.
      	(HI_REGISTER_NAMES): Ditto.
      	(ADDITIONAL_REGISTER_NAMES): Use defines instead
      	of numerical constants.
      	* config/i386/i386.c (regclass_map): Remove fpsr register.
      	(dbx_register_map): Ditto.
      	(dbx64_register_map): Ditto.
      	(svr4_dbx_register_map): Ditto.
      	(print_reg): Do not handle FPCR_REG.
      
      testsuite/ChangeLog:
      
      	* gcc.dg/rtl/x86_64/dfinit.c: Update scan-rtl-dump string.
      	* gcc.dg/rtl/x86_64/times-two.c.before-df.c: Ditto.
      	* gcc.target/i386/pr79804.c (foo): Use register "19", not "20".
      
      From-SVN: r264676
      Uros Bizjak committed
    • rs6000: Delete many HAVE_AS_* (PR87149) · 24676f12
      This deletes most HAVE_AS_* that determine if the assembler supports
      some ISA level (and also HAVE_AS_MFPGPR and HAVE_AS_DFP).
      
      These are not useful: we will only generate an instruction that requires
      some newer ISA if the user specifically asked for it (with -mcpu=, say).
      If the assembler cannot handle that, it is fine if it gives an error.
      
      They also hurt: it increases the number of possible situations that all
      need handling and all need testing.  We do not handle all cases, and
      obviously do not test all either.
      
      This patch removes:
      
      HAVE_AS_POPCNTB (power5,  2.02)
      HAVE_AS_FPRND   (power5+, 2.04)
      HAVE_AS_CMPB    (power6,  2.05)
      HAVE_AS_POPCNTD (power7,  2.06)
      HAVE_AS_POWER8  (power8,  2.07)
      HAVE_AS_POWER9  (power9,  3.0)
      
      HAVE_AS_DFP     (power6,  2.05, server)
      HAVE_AS_MFPGPR  (power6x but not later, not arch)
      
      
      	PR target/87149
      	* config.in (HAVE_AS_CMPB, HAVE_AS_DFP, HAVE_AS_FPRND, HAVE_AS_MFPGPR,
      	HAVE_AS_POPCNTB, HAVE_AS_POPCNTD, HAVE_AS_POWER8, HAVE_AS_POWER9):
      	Delete, always treat as true.
      	* config/powerpcspe/powerpcspe.c (rs6000_option_override_internal):
      	Ditto.  Simplify remaining code.
      	* config/powerpcspe/powerpcspe.h: Ditto.
      	* config/rs6000/rs6000.c (rs6000_option_override_internal): Ditto.
      	Simplify remaining code.
      	(rs6000_expand_builtin): Ditto.
      	* config/rs6000/rs6000.h: Ditto.
      	* configure.ac: Ditto.
      	* configure: Regenerate.
      
      From-SVN: r264675
      Segher Boessenkool committed
    • coverage.c (get_coverage_counts): Revert the formatting of missing profile opt info. · 88307040
      2018-09-27  Martin Liska  <mliska@suse.cz>
      
      	* coverage.c (get_coverage_counts): Revert the formatting
      	of missing profile opt info.
      
      	* g++.dg/pr60518.C: Add -Wno-missing-profile.
      	* g++.dg/torture/pr59265.C: Likewise.
      	* g++.dg/tree-prof/morefunc.C: Likewise.
      	* g++.dg/tree-ssa/dom-invalid.C: Likewise.
      	* gcc.dg/pr26570.c: Likewise.
      	* gcc.dg/pr32773.c: Likewise.
      	* gcc.dg/pr40209.c: Likewise.
      	* gcc.dg/pr51957-1.c: Likewise.
      	* gcc.dg/pr80747.c: Likewise.
      	* gcc.target/aarch64/pr62262.c: Likewise.
      
      From-SVN: r264669
      Martin Liska committed
    • re PR debug/87451 (FAIL: gcc.dg/debug/dwarf2/inline5.c) · b88da9bb
      2018-09-27  Richard Biener  <rguenther@suse.de>
      
      	PR testsuite/87451
      	* gcc.dg/debug/dwarf2/inline5.c: Deal with different comment characters.
      
      From-SVN: r264668
      Richard Biener committed
    • re PR debug/37801 (DWARF output for inlined functions doesn't always use DW_TAG_inlined_subroutine) · ac02e5b7
      2018-09-27  Richard Biener  <rguenther@suse.de>
      
      	PR debug/37801
      	PR debug/87440
      	* dwarf2out.c (set_block_origin_self): Do not mark outermost
      	block as we do not output that.
      	(gen_inlined_subroutine_die): Elide the originally outermost
      	block, matching what we do for concrete instances.
      	(decls_for_scope): Add parameter specifying whether to recurse
      	to subblocks.
      
      	* gcc.dg/debug/dwarf2/inline2.c: Adjust.
      	* gcc.dg/debug/dwarf2/inline4.c: New testcase.
      
      From-SVN: r264667
      Richard Biener committed
    • [pr82089] Don't sign-extend SFV 1 in BImode · 19ef5a8f
      This is an update of the patch posted to PR82089 long ago.  We ran into the
      same bug on GCN, so we need this fixed as part of this series.
      
      2018-09-27  Andrew Stubbs  <ams@codesourcery.com>
                  Tom de Vries  <tom@codesourcery.com>
      
      	PR 82089
      
      	gcc/
      	* expmed.c (emit_cstore): Fix handling of result_mode == BImode and
      	STORE_FLAG_VALUE == 1.
      
      Co-Authored-By: Tom de Vries <tom@codesourcery.com>
      
      From-SVN: r264666
      Andrew Stubbs committed
    • re PR c++/67544 (ICE: SIGSEGV in tree_check3 (tree.h:2896) with -fconcepts) · 90e79377
      2018-09-27  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/67544
      	* g++.dg/concepts/pr67544.C: New.
      
      From-SVN: r264665
      Paolo Carlini committed
    • re PR c++/84940 (internal compiler error: in build_value_init_noctor, at cp/init.c:465) · 0798984a
      /cp
      2018-09-27  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/84940
      	* semantics.c (finish_unary_op_expr): Check return value of
      	build_x_unary_op for error_mark_node.
      
      /testsuite
      2018-09-27  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/84940
      	* g++.dg/expr/unary4.C: New.
      
      From-SVN: r264664
      Paolo Carlini committed
    • S/390: Implement speculation barrier · 291a9e98
      gcc/ChangeLog:
      
      2018-09-27  Andreas Krebbel  <krebbel@linux.ibm.com>
      
      	* config/s390/s390.md (PPA_TX_ABORT, PPA_OOO_BARRIER): New
      	constant definitions.
      	("tx_assist"): Replace magic number with PPA_TX_ABORT.
      	("*ppa"): Enable pattern also for -march=zEC12 -mno-htm.
      	("speculation_barrier"): New expander definition.
      
      From-SVN: r264663
      Andreas Krebbel committed
    • Daily bump. · 461553e6
      From-SVN: r264661
      GCC Administrator committed
  2. 26 Sep, 2018 30 commits
    • re PR gcov-profile/86957 (gcc should warn about missing profiles for a… · bc162b0e
      re PR gcov-profile/86957 (gcc should warn about missing profiles for a compilation unit or a new function with -fprofile-use)
      
      2018-09-26  Indu Bhagat  <indu.bhagat@oracle.com>
      
      	PR gcov-profile/86957
      	* common.opt: New warning option -Wmissing-profile.
      	* coverage.c (get_coverage_counts): Add warning for missing .gcda file.
      	* doc/invoke.texi: Document -Wmissing-profile.
      
      From-SVN: r264657
      Indu Bhagat committed
    • Support excess precision for integer / floating-point comparisons (PR c/87390). · 8313a764
      In C11, implicit conversions from integer to floating-point types
      produce results with the range and precision of the corresponding
      evaluation format rather than only those of the type implicitly
      converted to.  This patch implements that case of C11 excess precision
      semantics in the case of a comparison between integer and
      floating-point types, previously missed when implementing other cases
      of excess precision for such implicit conversions.  As with other such
      fixes, this patch conservatively follows the reading of C99 where
      conversions from integer to floating-point do not produce results with
      excess precision and so the change is made for C11 mode only.
      
      Bootstrapped with no regressions on x86_64-pc-linux-gnu.
      
      gcc/c:
      	PR c/87390
      	* c-typeck.c (build_binary_op): Use excess precision for
      	comparisons of integers and floating-point for C11 and later.
      
      gcc/testsuite:
      	PR c/87390
      	* gcc.target/i386/excess-precision-9.c,
      	gcc.target/i386/excess-precision-10.c: New tests.
      
      From-SVN: r264656
      Joseph Myers committed
    • RISC-V: Add missing negate patterns. · 01414d53
      	gcc/
      	* config/riscv/riscv.md (subsi3_extended2): Add J constraint.
      	(negdi2, negsi2, negsi2_extended, negsi2_extended2): New.
      
      From-SVN: r264655
      Jim Wilson committed
    • tree.c (zerop): Change return type to bool. · d89fde46
      
      gcc/ChangeLog:
      
      	* tree.c (zerop): Change return type to bool.
      	(integer_zerop, integer_onep, integer_each_onep): Same.
      	(integer_all_onesp, integer_minus_onep, integer_pow2p): Same.
      	(integer_nonzerop, integer_truep, tree_ctz, real_zerop): Same.
      	(real_onep, real_minus_onep, chain_index): Same.
      	(print_type_hash_statistics, type_list_equal): Same.
      	* tree.h (zerop): Same.
      	(zerop, integer_zerop, integer_onep, integer_each_onep): Same.
      	(integer_all_onesp, integer_minus_onep, integer_pow2p): Same.
      	(integer_nonzerop, integer_truep, tree_ctz, real_zerop): Same.
      	(real_onep, real_minus_onep, chain_index): Same.
      	(print_type_hash_statistics, type_list_equal): Same.
      
      From-SVN: r264653
      Martin Sebor committed
    • RISC-V: Delete obsolete MIPS comment. · 1fb157cc
      	gcc/
      	* config/riscv/riscv.h (FUNCTION_ARG_REGNO_P): Fix comment.
      
      From-SVN: r264652
      Jim Wilson committed
    • re PR target/87414 (-mindirect-branch=thunk produces thunk with incorrect CFI on x86_64) · 0974b794
      	PR target/87414
      	* config/i386/i386.c: Include debug.h and dwarf2out.h.
      	(output_indirect_thunk): Emit DW_CFA_def_cfa_offset after the
      	call.
      
      From-SVN: r264651
      Jakub Jelinek committed
    • Fix AArch64 ILP32 ICE. · 1413a419
      Ensure that the address really is the correct mode for an address.
      
      2018-09-25  Andrew Stubbs  <ams@codesourcery.com>
      
      	gcc/
      	* builtins.c (get_builtin_sync_mem): Force address mode conversion.
      
      From-SVN: r264650
      Andrew Stubbs committed
    • crtprec.c (set_precision): Use fnstcw instead of fstcw. · 0a76bba4
      	* config/i386/crtprec.c (set_precision): Use fnstcw instead of fstcw.
      
      From-SVN: r264649
      Uros Bizjak committed
    • i386.h (enum reg_class): Remove FP_TOP_SSE_REGS and FP_SECOND_SSE_REGS. · 2202b162
      	* config/i386/i386.h (enum reg_class): Remove FP_TOP_SSE_REGS
      	and FP_SECOND_SSE_REGS.
      	(REG_CLASS_NAMES): Ditto.
      	(REG_CLASS_CONTENTS): Ditto.
      	* config/i386/i386.c (ix86_preferred_reload_class) Do not handle
      	FP_TOP_SSE_REGS and FP_SECOND_SSE_REGS classes.
      	(ix86_preferred_output_reload_class): Ditto.
      	* config/i386/i386.md (fix_trunc<mode>_i387_fisttp): Change "=&1f"
      	clobber constraint to "=&f".
      	(fix_truncdi_i387): Ditto.
      	(lrintxfdi2): Ditto.
      	(fistdi2_<rounding>): Ditto.
      	(fpremxf4_i387): Change "=u" constraint to "=f".
      	(fprem1xf4_i387): Ditto.
      	(sincosxf3): Ditto.
      	(fptanxf4_i387): Ditto.
      	(fxtractxf3_i387): Ditto.
      	(fscalexf4_i387): Ditto.
      	(atan2xf3): Change "u" constraint to "f".
      	(fyl2xxf3_i387): Ditto.
      	(fyl2xp1xf3_i387): Ditto.
      
      From-SVN: r264648
      Uros Bizjak committed
    • syscall: don't assume we have a GETEUID system call · dd554b78
          
          On Alpha GNU/Linux there is no geteuid system call, there is only
          getresuid.  The raw geteuid system call is only used for testing, so
          just skip the test if it's not available.
          
          Reviewed-on: https://go-review.googlesource.com/137655
      
      From-SVN: r264647
      Ian Lance Taylor committed
    • * ChangeLog: Add missing PR number. · 66938984
      From-SVN: r264646
      Uros Bizjak committed
    • re PR target/87439 (ICE in ix86_mode_needed, at config/i386/i386.c:18907) · 8c097065
      	PR target/87439
      	* config/i386/i386.h (NUM_MODES_FOR_MODE_SWITCHING): Update
      	for removed I387_MASK_PM entity.
      
      From-SVN: r264645
      Uros Bizjak committed
    • Revert · 8caf8f77
      	2018-09-26  Alexey Neyman  <stilor@att.net>
      
      	* graphite.h: Include <isl/id.h> and <isl/space.h>; these
      	headers are no longer pulled in by <isl/val.h>.
      
      From-SVN: r264644
      Jeff Law committed
    • re PR debug/87443 (GCC mixes abstract and concrete instances in abstract origins for inlines) · 39aae603
      2018-09-26  Richard Biener  <rguenther@suse.de>
      
      	PR debug/87443
      	* dwarf2out.c (gen_lexical_block_die): Do not equate inline
      	or concrete instance DIE to the tree.  Create abstract origin
      	attributes also for concrete instances.
      
      	* gcc.dg/debug/dwarf2/inline5.c: New testcase.
      
      From-SVN: r264643
      Richard Biener committed
    • graphite.h: Include <isl/id.h> and <isl/space.h>... · 9b4e3b9a
      	* graphite.h: Include <isl/id.h> and <isl/space.h>; these
      	headers are no longer pulled in by <isl/val.h>.
      
      From-SVN: r264642
      Alexey Neyman committed
    • Ignore chmod errors during mostlyclean-local, check-go-tool · 19071aa4
      	* Makefile.am (mostlyclean-local): Ignore chmod errors.
      	(check-go-tool): Likewise.
      	* Makefile.in: Regenerate.
      
      From-SVN: r264641
      Rainer Orth committed
    • [PR 87347] Prevent segfaults if TYPE_ARG_TYPES is NULL · ce6f0888
      2018-09-26  Martin Jambor  <mjambor@suse.cz>
      
      	PR c/87347
      	c/
      	* c-parser.c (warn_for_abs): Bail out if TYPE_ARG_TYPES is NULL.  Fix
              comment.
      
      	testsuite/
      	* gcc.dg/pr87347.c: New test.
      
      From-SVN: r264640
      Martin Jambor committed
    • re PR c++/71131 ([concepts] Ill-formed code declaring a variable with a template… · 6fe0c58b
      re PR c++/71131 ([concepts] Ill-formed code declaring a variable with a template concept not rejected)
      
      2018-09-26  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/71131
      	* g++.dg/concepts/pr71131.C: New.
      
      2018-09-26  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/71127
      	* g++.dg/concepts/pr71127.C: New.
      
      From-SVN: r264639
      Paolo Carlini committed
    • re PR c++/67655 ([concepts] expression constraints and variadic expansions) · 3c010a24
      2018-09-26  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/67655
      	* g++.dg/concepts/pr67655.C: New.
      
      From-SVN: r264638
      Paolo Carlini committed
    • [Ada] SPARK: minor error message enhancement · 1899cb68
      2018-09-26  Elisa Barboni  <barboni@adacore.com>
      
      gcc/ada/
      
      	* sem_prag.adb (Check_Refined_Global_Item): Improve error
      	message.
      
      From-SVN: r264637
      Elisa Barboni committed
    • [Ada] Fix inheritance of representation items defined as aspects · def15641
      When a representation item is defined by a pragma or attribute
      definition clause, the entity it applies to is that of the Name of the
      representation item. But when it is defined by an aspect definition, the
      entity is directly denoted by the Entity attribute of the represenation
      item. The circuitry that inherits representation items for derived types
      or subtypes must account for these two possible cases.
      
      2018-09-26  Thomas Quinot  <quinot@adacore.com>
      
      gcc/ada/
      
      	* sem_ch13.adb (Inherit_Aspects_At_Freeze_Point): For a
      	representation item that is an N_Aspect_Definition, retrieve the
      	entity it applies to using the Entity attribute.
      
      gcc/testsuite/
      
      	* gnat.dg/sso13.adb: New testcase.
      
      From-SVN: r264636
      Thomas Quinot committed
    • [Ada] Spurious ineffective use_clause warning · 0ebf09ed
      This patch fixes an issue whereby user-defined subprograms used as
      generic actuals with corresponding formals containing other formal types
      led to spurious ineffective use_clause warnings.
      
      2018-09-26  Justin Squirek  <squirek@adacore.com>
      
      gcc/ada/
      
      	* sem_ch8.adb (Analyze_Subprogram_Renaming): Add extra condition
      	to check for unmarked subprogram references coming from
      	renamings.
      
      gcc/testsuite/
      
      	* gnat.dg/warn16.adb: New testcase.
      
      From-SVN: r264635
      Justin Squirek committed
    • [Ada] Store -G xxx switches · cec0185c
      2018-09-26  Arnaud Charlet  <charlet@adacore.com>
      
      gcc/ada/
      
      	* back_end.adb (Scan_Compiler_Arguments): Store -G xxx switches.
      
      From-SVN: r264634
      Arnaud Charlet committed
    • [Ada] Issue info message on inlined subprograms in GNATprove mode · 940cf495
      Issue a positive message that inlining was performed in GNATprove mode,
      when corresponding debug switch -gnatd_f is set.
      
      2018-09-26  Yannick Moy  <moy@adacore.com>
      
      gcc/ada/
      
      	* errout.ads: Update comment for insertion character '?'.
      	* inline.adb: Use simple insertion character '?' for GNATprove
      	info messages.
      	* sem_res.adb (Resolve_Call): Issue an info message on inlining
      	in GNATprove mode.
      
      From-SVN: r264633
      Yannick Moy committed
    • [Ada] Missing front-end code for constraint checks on fixed point exprs · 241848fd
      This patch ensures that the front-end generates constraint checks for
      some operations that previously depended on gigi for the corresponding
      check. The patch also resets the Do_Range_Check flag so that it never
      appears in the tree presented to gigi.
      
      2018-09-26  Ed Schonberg  <schonberg@adacore.com>
      
      gcc/ada/
      
      	* checks.adb (Apply_Type_Conversion_Checks): Do not generate a
      	range check on the expression of the conversion if it involves a
      	fixed-point type, as such conversions are handled specially
      	during expansion.
      	* exp_ch4.adb (Expand_N_Type_Conversion): In a conversion from
      	Fixed to Integer, use the base type of the expression to ensure
      	that the caller will generate the proper constraint check when
      	needed.
      
      From-SVN: r264632
      Ed Schonberg committed
    • [Ada] SPARK: fix a bug related to loop exit environment · 2d9a8c0b
      2018-09-26  Maroua Maalej  <maalej@adacore.com>
      
      gcc/ada/
      
      	* sem_spark.adb (Check_Loop_Statement): Fix a bug related to
      	loop exit environment.
      	(Check_Statement): fixing a bug when comparing the source and
      	target in an assignment statement.
      
      From-SVN: r264631
      Maroua Maalej committed
    • [Ada] Spurious elaboration issue due to inlining · 1a409f80
      This patch ensures that the full compilation context is captured prior
      to package or subprogram instantiation/inlining and restored after the
      action takes place.
      
      2018-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
      
      gcc/ada/
      
      	* sem_ch12.adb (Instantiate_Package_Body): Capture and restore
      	the full compilation context.
      	(Instantiate_Subprogram_Body): Capture and restore the full
      	compilation context.
      
      gcc/testsuite/
      
      	* gnat.dg/elab7.adb, gnat.dg/elab7_pkg1.adb,
      	gnat.dg/elab7_pkg1.ads, gnat.dg/elab7_pkg2.adb,
      	gnat.dg/elab7_pkg2.ads: New testcase.
      
      From-SVN: r264630
      Hristian Kirtchev committed
    • [Ada] Do not issue by default info messages for inlining in GNATprove · a30a69c1
      Info messages about lack of inlining for analysis in GNATprove may be
      confusing to users. They are now only issued when GNATprove is called
      with switch --info, which it passes on to gnat2why with switch -gnatd_f.
      
      There is no effect on compilation.
      
      2018-09-26  Yannick Moy  <moy@adacore.com>
      
      gcc/ada/
      
      	* debug.adb: Add use for -gnatd_f switch.
      	* inline.adb (Cannot_Inline): Only issue info message for
      	failure to inline in GNATprove mode when switch -gnatd_f is
      	used.
      
      From-SVN: r264629
      Yannick Moy committed
    • [Ada] Spurious error on interface conversion under ZFP · 2d9c4206
      The frontend reports an error under ZFP when performing the type
      conversion of a tagged object to one of its covered interface types.
      
      2018-09-26  Javier Miranda  <miranda@adacore.com>
      
      gcc/ada/
      
      	* exp_disp.adb (Expand_Interface_Conversion): No displacement of
      	the pointer needed when the type of the operand is an interface
      	type that maches the target type and we are compiling under
      	configurable runtime. Adding also documentation explaining why
      	this cannot be done when compiling with the full runtime.
      	* exp_intr.adb: Update comment.
      
      gcc/testsuite/
      
      	* gnat.dg/interface8.adb, gnat.dg/interface8.ads: New testcase.
      
      From-SVN: r264628
      Javier Miranda committed
    • [Ada] Add a No_Return annotation to ease static analysis · 9d951866
      2018-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
      
      gcc/ada/
      
      	* sem_ch5.adb (Wrap_Loop_Statement): Annotate as No_Return.
      
      From-SVN: r264627
      Hristian Kirtchev committed