1. 28 May, 2018 18 commits
    • [Ada] Don't create empty activation records · f4bf7b62
      2018-05-28  Ed Schonberg  <schonberg@adacore.com>
      
      gcc/ada/
      
      	* exp_unst.adb (Unnest_Subprogram): Prevent creation of empty
      	activation records.
      
      From-SVN: r260831
      Ed Schonberg committed
    • [Ada] Improve unnesting of indexed references · 577ad216
      2018-05-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
      
      gcc/ada/
      
      	* exp_unst.adb (Check_Static_Type): Add argument to indicate node to be
      	replaced, if any; all callers changed.
      	(Note_Uplevel_Ref): Likewise.  Also replace reference to deferred
      	constant with private view so we take the address of that entity.
      	(Note_Uplevel_Bound): Add argument to indicate node to be replaced, if
      	any; all callers changed.  Handle N_Indexed_Component like
      	N_Attribute_Reference.  Add N_Type_Conversion case.
      	(Visit_Node): Indexed references can be uplevel if the type isn't
      	static.
      	(Unnest_Subprograms): Don't rewrite if no reference given.  If call has
      	been relocated, set first_named pointer in original node as well.
      
      From-SVN: r260830
      Richard Kenner committed
    • [Ada] Copy index expression trees rather than relocating them · 1541ede1
      2018-05-28  Ed Schonberg  <schonberg@adacore.com>
      
      gcc/ada/
      
      	* exp_aggr.adb (Flatten): Copy tree of expression in a component
      	association with a range or a set of discrete choices, rather than
      	relocating the node. This avoids inconsistencies in the tree when
      	handling nested subprograms with uplevel references for LLVM.
      
      From-SVN: r260829
      Ed Schonberg committed
    • [Ada] Disregard alignment issues in CodePeer mode · f167c735
      2018-05-28  Arnaud Charlet  <charlet@adacore.com>
      
      gcc/ada/
      
      	* exp_util.adb (Possible_Bit_Aligned_Component): Always return False in
      	codepeer mode.
      
      From-SVN: r260828
      Arnaud Charlet committed
    • [Ada] Minor typo fix in exp_unst.adb · 7ddbf09d
      2018-05-28  Arnaud Charlet  <charlet@adacore.com>
      
      gcc/ada/
      
      	* exp_unst.adb: Fix typo.
      
      From-SVN: r260827
      Arnaud Charlet committed
    • [Ada] Minor cleanup implementation of Ada.Containers.Vectors · 0ef5a027
      2018-05-28  Bob Duff  <duff@adacore.com>
      
      gcc/ada/
      
      	* libgnat/a-convec.adb (Query_Element): Minor cleanup: remove an
      	unnecessary use of 'Unrestricted_Access.
      
      From-SVN: r260826
      Bob Duff committed
    • [Ada] Crash on aspect/pragma Linked_Section with -gnatR2 · 24161618
      This patch modifies the output of the representation information related to
      aspect or pragma Linker_Section, achieved with compiler switch -gnatR2. The
      value of the section argument is now properly retrieved. Previously it was
      assumed that the value is always a N_String_Literal, however the semantics
      of the annotation allow for any static string expression, including a
      reference to a static string.
      
      ------------
      -- Source --
      ------------
      
      --  linker_sections.ads
      
      package Linker_Sections is
         LS_1 : constant String := "1";
         LS_2 : constant String := "2" & "2";
         LS_3 : constant String := LS_1 & "3";
         LS_4 : constant String := "4" & LS_2;
      
         Val_1  : Integer with Linker_Section => LS_1;
         Val_2  : Integer with Linker_Section => LS_2;
         Val_3  : Integer with Linker_Section => LS_3;
         Val_4  : Integer with Linker_Section => LS_4;
         Val_5  : Integer with Linker_Section => LS_1 & "5";
         Val_6  : Integer with Linker_Section => LS_2 & "6";
         Val_7  : Integer with Linker_Section => LS_3 & "7";
         Val_8  : Integer with Linker_Section => LS_4 & "8";
         Val_9  : Integer with Linker_Section => "9"  & LS_1;
         Val_10 : Integer with Linker_Section => "10" & LS_2;
         Val_11 : Integer with Linker_Section => "11" & LS_3;
         Val_12 : Integer with Linker_Section => "12" & LS_4;
      
         Val_13 : Integer; pragma Linker_Section (Val_13, LS_1);
         Val_14 : Integer; pragma Linker_Section (Val_14, LS_2);
         Val_15 : Integer; pragma Linker_Section (Val_15, LS_3);
         Val_16 : Integer; pragma Linker_Section (Val_16, LS_4);
         Val_17 : Integer; pragma Linker_Section (Val_17, LS_1 & "5");
         Val_18 : Integer; pragma Linker_Section (Val_18, LS_2 & "6");
         Val_19 : Integer; pragma Linker_Section (Val_19, LS_3 & "7");
         Val_20 : Integer; pragma Linker_Section (Val_20, LS_4 & "8");
         Val_21 : Integer; pragma Linker_Section (Val_21, "9"  & LS_1);
         Val_22 : Integer; pragma Linker_Section (Val_22, "10" & LS_2);
         Val_23 : Integer; pragma Linker_Section (Val_23, "11" & LS_3);
         Val_24 : Integer; pragma Linker_Section (Val_24, "12" & LS_4);
      end Linker_Sections;
      
      -----------------
      -- Compilation --
      -----------------
      
      $ gcc -c -gnatR2s linker_sections.ads
      
      2018-05-28  Hristian Kirtchev  <kirtchev@adacore.com>
      
      gcc/ada/
      
      	* repinfo.adb (Expr_Value_S): New routine.
      	(List_Linker_Section): Properly extract the value of the section
      	argument.
      
      From-SVN: r260825
      Hristian Kirtchev committed
    • [Ada] Update user manual for the -D binder switch · f5a9ad25
      2018-05-28  Patrick Bernardi  <bernardi@adacore.com>
      
      gcc/ada/
      
      	* doc/gnat_ugn/building_executable_programs_with_gnat.rst: Update the
      	description of the -D binder switch to reflect current usage.
      	* gnat_ugn.texi: Regenerate.
      
      From-SVN: r260824
      Patrick Bernardi committed
    • [Ada] Minor reformatting · 6a890c58
      2018-05-28  Gary Dismukes  <dismukes@adacore.com>
      
      gcc/ada/
      
      	* exp_ch3.adb: Minor reformatting
      
      From-SVN: r260823
      Gary Dismukes committed
    • [Ada] Spurious constraint error on array of null-excluding components · 341e0bb6
      This patch fixes an issue whereby the compiler would raise spurious runtime
      errors when an array of null-excluding components was initialized with an
      expression which required the secondary stack (such as with an concatination
      operation) due to certain generated checks which were incorrected performed
      on internal object declarations.
      
      2018-05-28  Justin Squirek  <squirek@adacore.com>
      
      gcc/ada/
      
      	* exp_ch3.adb
      	(Build_Initialization_Call): Add logic to pass the appropriate actual to match
      	 new formal.
      	(Init_Formals): Add new formal *_skip_null_excluding_check
      	* exp_util.adb, exp_util.ads
      	(Enclosing_Init_Proc): Added to fetch the enclosing Init_Proc from the current
      	 scope.
      	(Inside_Init_Proc): Refactored to use Enclosing_Init_Proc
      	(Needs_Conditional_Null_Excluding_Check): Added to factorize the predicate
      	 used to determine how to generate an Init_Proc for a given type.
      	(Needs_Constant_Address): Minor reformatting
      	* sem_res.adb
      	(Resolve_Null): Add logic to generate a conditional check in certain cases
      
      gcc/testsuite/
      
      	* gnat.dg/array31.adb: New testcase.
      
      From-SVN: r260822
      Justin Squirek committed
    • [Ada] Minor reformatting · 9b19c244
      2018-05-28  Hristian Kirtchev  <kirtchev@adacore.com>
      
      gcc/ada/
      
      	* exp_aggr.adb, gnatlink.adb, sem_ch6.adb, sem_res.adb, sem_util.adb:
      	Minor reformatting.
      
      From-SVN: r260821
      Hristian Kirtchev committed
    • [Ada] Spurious error on aspect Volatile · aab1da2a
      This patch modifies the analysis of aspect/pragma Volatile to correct accept
      the annotation when it applies to single protected and single task types, and
      SPARK_Mode On is in effect.
      
      ------------
      -- Source --
      ------------
      
      --  pack.ads
      
      package Pack with SPARK_Mode is
         protected PO_Aspect with Volatile is end;                         --  OK
      
         protected PO_Pragma is end;
         pragma Volatile (PO_Pragma);                                      --  OK
      
         task TO_Aspect with Volatile;                                     --  OK
      
         task TO_Pragma;
         pragma Volatile (TO_Pragma);                                      --  OK
      end Pack;
      
      ----------------------------
      -- Compilation and output --
      ----------------------------
      
      $ gcc -c pack.ads
      $ gcc -c pack.ads -gnatd.F
      cannot generate code for file pack.ads (package spec)
      
      2018-05-28  Hristian Kirtchev  <kirtchev@adacore.com>
      
      gcc/ada/
      
      	* sem_prag.adb (Process_Atomic_Independent_Shared_Volatile): Include
      	the declarations of single concurrent types because they fall in the
      	category of full type and object declarations.
      
      From-SVN: r260820
      Hristian Kirtchev committed
    • [Ada] Minor tweak to output of -gnatR · c8e95568
      This changes the output of -gnatR for extensions of tagged record types to
      avoid displaying the internal _Parent component, which overlaps with other
      components and is thus more confusing than helpful.
      
      For the following hierarchy:
      
        type R1 is tagged record
          I : Integer;
        end record;
      
        type R2 is new R1 with record
          C : Character;
        end record;
      
      the output -gnatR must now be:
      
      for R1'Object_Size use 128;
      for R1'Value_Size use 96;
      for R1'Alignment use 8;
      for R1 use record
         _Tag at 0 range  0 .. 63;
         I    at 8 range  0 .. 31;
      end record;
      
      for R2'Object_Size use 192;
      for R2'Value_Size use 136;
      for R2'Alignment use 8;
      for R2 use record
         _Tag at  0 range  0 .. 63;
         I    at  8 range  0 .. 31;
         C    at 16 range  0 ..  7;
      end record;
      
      2018-05-28  Eric Botcazou  <ebotcazou@adacore.com>
      
      gcc/ada/
      
      	* repinfo.adb (Compute_Max_Length): Skip _Parent component.
      	(List_Record_Layout): Likewise.
      
      From-SVN: r260819
      Eric Botcazou committed
    • [Ada] Warning on recursive call within postcondition · 500b21dd
      This patch adds a warning to a function call that appears within a
      postcondition for said function. This may mean an omission of an attribute
      reference 'Result, and may lead to an infinite loop on a call to that function.
      
      Compiling post_error.ads must yield:
      
      post_error.ads:3:11:
              warning: postcondition does not mention function result
      post_error.ads:3:19:
             warning: call to "Foo" within its postcondition will lead
               to infinite recursion
      ----
      package Post_Error is
         function Foo (A : out Integer) return Integer
           with Post => Foo (A)  /= 0;
         pragma Import (C, Foo);
      end Post_Error;
      
      2018-05-28  Ed Schonberg  <schonberg@adacore.com>
      
      gcc/ada/
      
      	* sem_util.adb (Is_Function_Result): Add a warning if a postcondition
      	includes a call to function to which it applies. This may mean an
      	omission of an attribute reference 'Result, in particular if the
      	function is pqrameterless.
      
      From-SVN: r260818
      Ed Schonberg committed
    • [Ada] Misleading warning on unresolvable package name · aa76fac7
      This patch fixes an issue whereby the compiler misidentified a package name
      containing the name of a standard runtime package as said package - leading to
      and improper error message prompting the user to "With" a package already in
      scope.
      
      2018-05-28  Justin Squirek  <squirek@adacore.com>
      
      gcc/ada/
      
      	* sem_ch8.adb (Find_Expanded_Name): Add extra guard to make sure the
      	misresolved package name is not a case of mistaken identity.
      
      gcc/testsuite/
      
      	* gnat.dg/warn15-core-main.adb, gnat.dg/warn15-core.ads,
      	gnat.dg/warn15-interfaces.ads, gnat.dg/warn15.ads: New testcase.
      
      From-SVN: r260817
      Justin Squirek committed
    • [Ada] Further evaluation of type bounds in GNATprove mode · e740ff85
      Some static bounds of types are not recognized and evaluated as such in the
      semantic analysis phase of the frontend, which leads to incomplete information
      in GNATprove. Fix that in the GNATprove mode only, as this is not needed when
      full expansion is used.
      
      There is no impact on compilation.
      
      2018-05-28  Yannick Moy  <moy@adacore.com>
      
      gcc/ada/
      
      	* sem_res.adb (Resolve_Range): Re-resolve the low bound of a range in
      	GNATprove mode, as the order of resolution (low then high) means that
      	all the information is not available when resolving the low bound the
      	first time.
      
      From-SVN: r260816
      Yannick Moy committed
    • [Ada] Minor internal cleanup in repinfo unit · 7672ab42
      This steamlines a bit the implementation.  No functional changes.
      
      2018-05-28  Eric Botcazou  <ebotcazou@adacore.com>
      
      gcc/ada/
      
      	* repinfo.adb (List_Array_Info): Start with an explicit blank line and
      	end with the linker section, if any.
      	(List_Entities): Do not output the linker section for record types,
      	array types and variables.
      	(Print_Expr): Factor out common processing for unary operators and
      	special values.  Adjust and reorder the various cases.
      	(List_Object_Info): End with the linker section, if any.
      	(List_Record_Info): Likewise.
      	(List_Type_Info): Do not start with a blank line.
      
      From-SVN: r260815
      Eric Botcazou committed
    • Daily bump. · 121dec88
      From-SVN: r260814
      GCC Administrator committed
  2. 27 May, 2018 8 commits
    • pa-linux.h (NEED_INDICATE_EXEC_STACK): Define to 0. · d5ca27ef
      	* config/pa/pa-linux.h (NEED_INDICATE_EXEC_STACK): Define to 0.
      
      From-SVN: r260809
      John David Anglin committed
    • decl.c (match_data_constant): Fortran 2018 allows pointer initialization in a data statement. · b6e841a6
      2018-05-27  Steven G. Kargl  <kargl@gcc.gnu.org>
      
       * decl.c (match_data_constant):  Fortran 2018 allows pointer
       initialization in a data statement.
      
      2018-05-27  Steven G. Kargl  <kargl@gcc.gnu.org>
      
       * gfortran.dg/data_stmt_pointer.f90: new test.
      
      From-SVN: r260808
      Steven G. Kargl committed
    • Fix a number of ICE in the test suite. · f5435230
      	    * config/pdp11/pdp11.md (truncsihi2): Remove.
      
      From-SVN: r260807
      Paul Koning committed
    • stl_tree.h (_Rb_tree_impl(_Node_allocator&&)): New. · 538a7cd0
      2018-05-27  François Dumont  <fdumont@gcc.gnu.org>
      
      	* include/bits/stl_tree.h (_Rb_tree_impl(_Node_allocator&&)): New.
      	(_Rb_tree(const allocator_type&)): Use latter.
      	* include/bits/stl_map.h (map(const allocator_type&)): Likewise.
      	(map(initializer_list<value_type>, const allocator_type&)): Likewise.
      	(map(_InputIterator, _InputIterator, const allocator_type&)): Likewise.
      	* include/bits/stl_multimap.h
      	(multimap(const allocator_type&)): Likewise.
      	(multimap(initializer_list<value_type>, const allocator_type&)):
      	Likewise.
      	(multimap(_InputIterator, _InputIterator, const allocator_type&)):
      	Likewise.
      	* include/bits/stl_set.h (set(const allocator_type&)): Likewise.
      	(set(initializer_list<value_type>, const allocator_type&)): Likewise.
      	(set(_InputIterator, _InputIterator, const allocator_type&)): Likewise.
      	* include/bits/stl_multiset.h
      	(multiset(const allocator_type&)): Likewise.
      	(multiset(initializer_list<value_type>, const allocator_type&)):
      	Likewise.
      	(multiset(_InputIterator, _InputIterator, const allocator_type&)):
      	Likewise.
      
      From-SVN: r260806
      François Dumont committed
    • [NDS32] Optimize movmem and setmem operations. · 8889fbe5
      gcc/
      	* config/nds32/nds32-intrinsic.md (unaligned_storedi): Modify patterns
      	implementation.
      	(unaligned_store_dw): Ditto.
      	* config/nds32/nds32-memory-manipulation.c
      	(nds32_expand_movmemsi_loop_known_size): Refactoring implementation.
      	(nds32_gen_dup_4_byte_to_word_value): Rename to ...
      	(nds32_gen_dup_4_byte_to_word_value_aux): ... this.
      	(emit_setmem_word_loop): Rename to ...
      	(emit_setmem_doubleword_loop): ... this.
      	(nds32_gen_dup_4_byte_to_word_value): New function.
      	(nds32_gen_dup_8_byte_to_double_word_value): New function.
      	(nds32_expand_setmem_loop): Refine implementation.
      	(nds32_expand_setmem_loop_v3m): Ditto.
      	* config/nds32/nds32-multiple.md (unaligned_store_update_base_dw): New
      	pattern.
      
      Co-Authored-By: Chung-Ju Wu <jasonwucj@gmail.com>
      
      From-SVN: r260805
      Monk Chiang committed
    • [NDS32] Implement bswapsi2 and bswaphi2 patterns. · 0be3bad7
      gcc/
      	* config/nds32/nds32.md (bswapsi2, bswaphi2): New patterns.
      
      From-SVN: r260804
      Chung-Ju Wu committed
    • [NDS32] new attribute no_prologue and new option -mret-in-naked-func. · 54c537e6
      gcc/
      	* config/nds32/nds32.c (nds32_attribute_table): Add "no_prologue".
      	(nds32_init_machine_status): Initialize machine->attr_naked_p and
      	machine->attr_no_prologue_p.
      	(nds32_compute_stack_frame): Check "naked" and "no_prologue" attributes.
      	(nds32_naked_function_p): Handle "naked" and "no_prologue" attributes.
      	(nds32_expand_epilogue): Consider attr_naked_p.
      	(nds32_expand_epilogue_v3pop): Likewise.
      	(nds32_can_use_return_insn): Likewise.
      	* config/nds32/nds32.h (machine_function): Add attr_naked_p and
      	attr_no_prologue_p fields.
      	* config/nds32/nds32.opt (mret-in-naked-func): New option.
      
      From-SVN: r260803
      Chung-Ju Wu committed
    • Daily bump. · 4cdb54ea
      From-SVN: r260801
      GCC Administrator committed
  3. 26 May, 2018 8 commits
    • re PR target/85918 (Conversions to/from [unsigned] long long are not vectorized… · 70d22cdd
      re PR target/85918 (Conversions to/from [unsigned] long long are not vectorized for AVX512DQ target)
      
      	PR target/85918
      	* config/i386/i386.md (fixunssuffix, floatunssuffix): New code
      	attributes.
      	* config/i386/sse.md
      	(<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>):
      	Rename to ...
      	(float<floatunssuffix><sseintvecmodelower><mode>2<mask_name><round_name>):
      	... this.
      	(<floatsuffix>float<sselongvecmodelower><mode>2<mask_name><round_name>):
      	Rename to ...
      	(float<floatunssuffix><sselongvecmodelower><mode>2<mask_name><round_name>):
      	... this.
      	(*<floatsuffix>floatv2div2sf2): Rename to ...
      	(*float<floatunssuffix>v2div2sf2): ... this.
      	(<floatsuffix>floatv2div2sf2_mask): Rename to ...
      	(float<floatunssuffix>v2div2sf2_mask): ... this.
      	(*<floatsuffix>floatv2div2sf2_mask_1): Rename to ...
      	(*float<floatunssuffix>v2div2sf2_mask_1): ... this.
      	(<fixsuffix>fix_truncv8dfv8si2<mask_name><round_saeonly_name>): Rename
      	to ...
      	(fix<fixunssuffix>_truncv8dfv8si2<mask_name><round_saeonly_name>):
      	... this.
      	(<fixsuffix>fix_trunc<mode><sseintvecmodelower>2<mask_name><round_saeonly_name>):
      	Rename to ...
      	(fix<fixunssuffix>_trunc<mode><sseintvecmodelower>2<mask_name><round_saeonly_name>):
      	... this.
      	(<fixsuffix>fix_trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>):
      	Rename to ...
      	(fix<fixunssuffix>_trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>):
      	... this.
      	(<fixsuffix>fix_truncv2sfv2di2<mask_name>): Rename to ...
      	(fix<fixunssuffix>_truncv2sfv2di2<mask_name>): ... this.
      	(vec_pack_ufix_trunc_<mode>): Use gen_fixuns_truncv8dfv8si2 instead of
      	gen_ufix_truncv8dfv8si2.
      	* config/i386/i386-builtin.def (__builtin_ia32_cvttpd2uqq256_mask,
      	__builtin_ia32_cvttpd2uqq128_mask, __builtin_ia32_cvttps2uqq256_mask,
      	__builtin_ia32_cvttps2uqq128_mask, __builtin_ia32_cvtuqq2ps256_mask,
      	__builtin_ia32_cvtuqq2ps128_mask, __builtin_ia32_cvtuqq2pd256_mask,
      	__builtin_ia32_cvtuqq2pd128_mask, __builtin_ia32_cvttpd2udq512_mask,
      	__builtin_ia32_cvtuqq2ps512_mask, __builtin_ia32_cvtuqq2pd512_mask,
      	__builtin_ia32_cvttps2uqq512_mask, __builtin_ia32_cvttpd2uqq512_mask):
      	Use fixuns instead ufix or floatuns instead ufloat in CODE_FOR_ names.
      
      	* gcc.target/i386/avx512dq-pr85918.c: New test.
      
      From-SVN: r260797
      Jakub Jelinek committed
    • Fix PR number in last commit. · 80c820d8
      From-SVN: r260796
      Jerry DeLisle committed
    • re PR target/89506 (ICE: in decompose, at rtl.h:2266 with -Og -g) · 8cb19ee3
      2018-05-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
      
      	PR libgfortran/89506
      	* io/write.c (write_integer): Initialise the fnode format to
      	FMT_NONE, used for list directed write.
      	(BUF_STACK_SZ): Bump default buffer size up to avoid allocs on
      	small stuff.
      
      From-SVN: r260795
      Jerry DeLisle committed
    • Fix changelog. · b61da1eb
      From-SVN: r260794
      Jerry DeLisle committed
    • re PR fortran/85840 (Memory leak in write.c) · 3c2ce893
      2018-05-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
      
      	PR libgfortran/85840
      	* io/write.c (write_float_0): Use separate local variable for
      	the float string length.
      
      From-SVN: r260793
      Jerry DeLisle committed
    • Don't check ifunc_resolver on error · cf3a2c1a
      Since ifunc_resolver isn't set when an error is detected, we should
      lookup ifunc attribute in this case.
      
      	PR target/85900
      	PR target/85345
      	* varasm.c (assemble_alias): Lookup ifunc attribute on error.
      
      From-SVN: r260792
      H.J. Lu committed
    • re PR bootstrap/85921 (/gcc/c-family/c-warn.c fails to build) · 44284983
      	PR bootstrap/85921
      	* c-warn.c (diagnose_mismatched_attributes): Remove unnecessary
      	noinline variable to workaround broken kernel headers.
      
      From-SVN: r260790
      Jakub Jelinek committed
    • Daily bump. · 95795b3a
      From-SVN: r260789
      GCC Administrator committed
  4. 25 May, 2018 6 commits
    • RISC-V: Add interrupt attribute support. · d0ebdd9f
      	gcc/
      	* config/riscv/riscv-protos.h (riscv_epilogue_uses): New.
      	* config/riscv/riscv.c (struct machine_function): Add
      	interrupt_handler_p and attribute_checked_p fields.
      	(riscv_attribute_table): Add interrupt.
      	(riscv_interrupt_type_p): New.
      	(riscv_save_reg_p): Save extra regs for interrupt handler.
      	(riscv_use_save_libcall): Return false  for interrupt handler.
      	(riscv_first_stack_step): Add forward declaration.
      	(riscv_compute_frame_info): New local interrupt_save_t1.  Set it
      	for interrupt handler with large frame.  Use it for saved reg list.
      	(riscv_expand_prologue): Move flag_stack_usage_info support to
      	eliminate duplication.
      	(riscv_expand_epilogue): Generate mret for interrupt handler.
      	(riscv_epilogue_uses): New.
      	(riscv_can_use_return_insn): Return false for interrupt handler.
      	(riscv_function_ok_for_sibcall): Likewise.
      	(riscv_set_current_function): Add interrupt handler support.
      	* config/riscv/riscv.h (EPILOGUE_USES): Call riscv_epilogue_uses.
      	* config/riscv/riscv.md (UNSPECV_MRET): New.
      	(GP_REGNUM): New.
      	(riscv_frflags, riscv_fsflags): Use tab after opcode.
      	(riscv_mret): New.
      	* doc/extend.texi (RISC-V Function Attributes) <interrupt>: New.
      
      	gcc/testsuite/
      	* gcc.target/riscv/interrupt-1.c: New.
      	* gcc.target/riscv/interrupt-2.c: New.
      	* gcc.target/riscv/interrupt-3.c: New.
      	* gcc.target/riscv/interrupt-4.c: New.
      	* gcc.target/riscv/interrupt-5.c: New.
      
      From-SVN: r260785
      Jim Wilson committed
    • re PR fortran/85786 (Segfault in associated intrinsic) · c0e8f02b
      2018-05-25  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/85786
      	* gfortran.dg/pr85786.f90: New test.
      
      From-SVN: r260783
      Steven G. Kargl committed
    • PR c++/85815 - reference to member of enclosing template. · d9338471
      	* search.c (lookup_base): Use currently_open_class.
      	(lookup_member): Use it regardless of -fconcepts.
      	* parser.c (cp_parser_postfix_dot_deref_expression): Check it.
      
      From-SVN: r260782
      Jason Merrill committed
    • Fix test case failures for pdp11 target. · 99dcfb5f
      	* gcc.c-torture/compile/20151204.c: Skip if pdp11.
      	* gcc.c-torture/compile/pr55921.c: Ditto.
      	* gcc.c-torture/compile/pr60655-1.c: Ditto.
      	* gcc.c-torture/compile/vector-align-1.c: Add max alignment if pdp11.
      
      From-SVN: r260781
      Paul Koning committed
    • CWG 616, 1213 - value category of subobject references. · 3983063e
      	* tree.c (lvalue_kind): Fix handling of ARRAY_REF of pointer.
      
      From-SVN: r260780
      Jason Merrill committed
    • re PR tree-optimization/85712 (ICE in all_phi_incrs_profitable_1 at… · 9d502741
      re PR tree-optimization/85712 (ICE in all_phi_incrs_profitable_1 at gcc/gimple-ssa-strength-reduction.c:3479)
      
      2018-05-25  Bill Schmidt  <wschmidt@linux.ibm.com>
      
      	PR tree-optimization/85712
      	* gimple-ssa-strength-reduction.c (replace_one_candidate): Skip if
      	this candidate has already been replaced in-situ by a copy.
      
      From-SVN: r260772
      Bill Schmidt committed