1. 21 Oct, 2014 4 commits
  2. 20 Oct, 2014 23 commits
    • reflect: allocate correct type in assignTo and cvtT2I · 7b28fa2c
      Backport https://codereview.appspot.com/155450044 from the
      master Go library.  Original description:
      
      I came across this while debugging a GC problem in gccgo.
      There is code in assignTo and cvtT2I that handles assignment
      to all interface values.  It allocates an empty interface even
      if the real type is a non-empty interface.  The fields are
      then set for a non-empty interface, but the memory is recorded
      as holding an empty interface.  This means that the GC has
      incorrect information.
      
      This is extremely unlikely to fail, because the code in the GC
      that handles empty interfaces looks like this:
      
      obj = nil;
      typ = eface->type;
      if(typ != nil) {
              if(!(typ->kind&KindDirectIface) || !(typ->kind&KindNoPointers))
                      obj = eface->data;
      
      In the current runtime the condition is always true--if
      KindDirectIface is set, then KindNoPointers is clear--and we
      always want to set obj = eface->data.  So the question is what
      happens when we incorrectly store a non-empty interface value
      in memory marked as an empty interface.  In that case
      eface->type will not be a *rtype as we expect, but will
      instead be a pointer to an Itab.  We are going to use this
      pointer to look at a *rtype kind field.  The *rtype struct
      starts out like this:
      
      type rtype struct {
              size          uintptr
              hash          uint32            // hash of type; avoids computation in hash tables
              _             uint8             // unused/padding
              align         uint8             // alignment of variable with this type
              fieldAlign    uint8             // alignment of struct field with this type
              kind          uint8             // enumeration for C
      
      An Itab always has at least two pointers, so on a
      little-endian 64-bit system the kind field will be the high
      byte of the second pointer.  This will normally be zero, so
      the test of typ->kind will succeed, which is what we want.
      
      On a 32-bit system it might be possible to construct a failing
      case by somehow getting the Itab for an interface with one
      method to be immediately followed by a word that is all ones.
      The effect would be that the test would sometimes fail and the
      GC would not mark obj, leading to an invalid dangling
      pointer.  I have not tried to construct this test.
      
      I noticed this in gccgo, where this error is much more likely
      to cause trouble for a rather random reason: gccgo uses a
      different layout of rtype, and in gccgo the kind field happens
      to be the low byte of a pointer, not the high byte.
      
      From-SVN: r216489
      Ian Lance Taylor committed
    • re PR c++/63601 (Segfault on usage of 'this' in unevaluated context inside lambda) · 2bf492a1
      	PR c++/63601
      	* lambda.c (current_nonlambda_function): New.
      	* semantics.c (finish_this_expr): Use it.
      	* cp-tree.h: Declare it.
      
      From-SVN: r216488
      Jason Merrill committed
    • [multiple changes] · 64dbfdec
      2014-10-20  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* sem_ch3.adb (Build_Derived_Private_Type): When the parent
      	is untagged and has discriminants, build the implicit full
      	view even if the derived type is a completion, and make it
      	the Underlying_Full_View of the type.
      	(Copy_And_Build): Fix Is_Completion actual parameter in the calls to
      	Build_Derived_Type.
      	(Build_Derived_Record_Type): Likewise.
      
      2014-10-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch13.adb: Add guard to convention setting.
      
      From-SVN: r216487
      Arnaud Charlet committed
    • cfgrtl.h: New. · 59f2e9d8
      
      2014-10-20  Andrew MacLeod  <amacleod@redhat.com>
      
      	* cfgrtl.h: New.  Add prototypes for cfgrtl.c.
      	* basic-block.h: Remove prototypes for cfgrtl.c.
      	* cfghooks.h (cfg_layout_initialize, cfg_layout_finalize): Move
      	prototypes to cfgrtl.h.
      	* profile.h (profile_info): Add extern export declaration.
      	* rtl.h: Remove prototypes for cfgrtl.h.
      	* tree-cfg.h (gt_ggc_mx, gt_pch_nx): Move prototypes to here.
      	* ipa-inline.c: Include profile.h.
      	* loop-unroll.c: Ditto.
      	* modulo-sched.c: Ditto.
      	* postreload-gcse.c: Ditto.
      	* predict.c: Ditto.
      	* sched-ebb.c: Ditto.
      	* sched-rgn.c: Ditto.
      	* tracer.c: Ditto.
      	* tree-ssa-loop-ivcanon.c: Ditto.
      
      From-SVN: r216485
      Andrew MacLeod committed
    • re PR c/63307 (Cilk+ breaks -fcompare-debug bootstrap) · 948cf550
      	PR c/63307
      gcc/c-family/
      	* cilk.c: Include vec.h.
      	(struct cilk_decls): New structure.
      	(wrapper_parm_cb): Split this function to...
      	(fill_decls_vec): ...this...
      	(create_parm_list): ...and this.
      	(compare_decls): New function.
      	(for_local_cb): Remove.
      	(wrapper_local_cb): Ditto.
      	(build_wrapper_type): For now first traverse and fill vector of
      	declarations then sort it and then deal with sorted vector.
      	(cilk_outline): Ditto.
      	(declare_one_free_variable): Ditto.
      
      From-SVN: r216483
      Igor Zamyatin committed
    • [multiple changes] · dbb4cfef
      2014-10-20  Robert Dewar  <dewar@adacore.com>
      
      	* sem_ch3.adb, prj-proc.adb, prj-proc.ads, prj-conf.adb: Minor
      	reformatting.
      
      2014-10-20  Robert Dewar  <dewar@adacore.com>
      
      	* par-prag.adb (Add_List_Pragma_Entry): New procedure.
      	* par.adb (P_Pragma): Document requirement to handle multiple calls.
      
      2014-10-20  Robert Dewar  <dewar@adacore.com>
      
      	* sem_prag.adb (Analyze_Pragma, case No_Elaboration_Code_All):
      	Fix error of bad inheritance of this pragma from with'ed unit.
      
      2014-10-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch13.adb (Inherit_Aspects_At_Freeze_Point): For a subtype,
      	inherit convention from parent type, because the subtype may
      	have been declared on a partial view, prior to the pragma on
      	the parent.
      
      2014-10-20  Olivier Hainque  <hainque@adacore.com>
      	    Tristan Gingold  <gingold@adacore.com>
      
      	* gcc-interface/Makefile.in: Handle arm-darwin and VxWorks 7.
      	Misc clean ups.
      
      2014-10-20  Nicolas Roche  <roche@adacore.com>
      
      	* gcc-interface/Make-lang.in: ensure that automatically generated
      	dependency are referencing generated gnatvsn rather than original
      	one.
      
      From-SVN: r216482
      Arnaud Charlet committed
    • gnat_ugn.texi: Minor reformatting. · c19273ff
      2014-10-20  Gary Dismukes  <dismukes@adacore.com>
      
      	* gnat_ugn.texi: Minor reformatting.
      	* sem_ch3.adb: Minor reformatting.
      
      From-SVN: r216480
      Gary Dismukes committed
    • [multiple changes] · bdafba6f
      2014-10-20  Vincent Celier  <celier@adacore.com>
      
      	* prj-attr.adb: New project level attribute Runtime.
      	* prj-conf.adb (Get_Project_Runtimes): New procedure to get
      	the attributes Runtime declared in the main project, to use
      	in auto-configuration.
      	(Get_Or_Create_Configuration_File): Call Get_Project_Runtimes.
      	* prj-proc.adb (Runtime_Defaults): New table to store
      	the default values of attributes Runtime (<language>).
      	(Set_Default_Runtime_For): New procedure to store the default
      	value of a Runtime (<language>) in table Runtime_Defaults.
      	(Expression): Use the value stored in table Runtime_Defaults as
      	the default for Runtime (<language>).
      	* prj-proc.ads (Set_Default_Runtime_For): New procedure.
      	* prj.ads (Attribute_Default_Value): New enumerated value
      	Runtime_Value.
      
      2014-10-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch3.adb (Analyze_Object_Declaration): If the type is
      	an unconstrained unchecked_union type, rewrite declaration
      	as a renaming to prevent attempt to retrieve non- existent
      	discriminants from expression.
      
      2014-10-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* gnat_ugn.texi: Minor reformatting.
      
      From-SVN: r216479
      Arnaud Charlet committed
    • [multiple changes] · a905304c
      2014-10-20  Tristan Gingold  <gingold@adacore.com>
      
      	* init.c (__gnat_is_stack_guard): Don't use mach_vm_region_recurse on
      	arm-darwin.
      	* raise-gcc.c: Add ATTRIBUTE_UNUSED to remove warnings for
      	unused arguments.
      
      2014-10-20  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_attr.adb (Analyze_Attribute): Replace
      	variables CS and PS with Proc_Id and Subp_Id to better illustrate
      	their purpose. Account for the case where _Postconditions
      	has not been generated yet and the context is aspect/pragma
      	Refined_Post. In that scenario the expected prefix of attribute
      	'Result is the current scope.
      
      2014-10-20  Robert Dewar  <dewar@adacore.com>
      
      	* par-ch4.adb (P_Expression): Handle extraneous comma/semicolon
      	in middle of expression with logical operators.
      
      2014-10-20  Robert Dewar  <dewar@adacore.com>
      
      	* par-ch13.adb (Possible_Misspelled_Aspect): New function.
      
      2014-10-20  Steve Baird  <baird@adacore.com>
      
      	* pprint.adb: Improve Expression_Image function.
      
      From-SVN: r216477
      Arnaud Charlet committed
    • gnat_rm.texi: Document No_Tagged_Streams pragma and aspect. · 49d41397
      2014-10-20  Robert Dewar  <dewar@adacore.com>
      
      	* gnat_rm.texi: Document No_Tagged_Streams pragma and aspect.
      	* snames.ads-tmpl: Add entry for pragma No_Tagged_Streams.
      	* aspects.ads, aspects.adb: Add aspect No_Tagged_Streams.
      	* einfo.adb (No_Tagged_Streams_Pragma): New field.
      	* einfo.ads: Minor reformatting (reorder entries).
      	(No_Tagged_Streams_Pragma): New field.
      	* exp_ch3.adb: Minor comment update.
      	* opt.ads (No_Tagged_Streams): New variable.
      	* par-prag.adb: Add dummy entry for pragma No_Tagged_Streams.
      	* sem.ads (Save_No_Tagged_Streams): New field in scope record.
      	* sem_attr.adb (Check_Stream_Attribute): Check stream ops
      	prohibited by No_Tagged_Streams.
      	* sem_ch3.adb (Analyze_Full_Type_Declaration): Set
      	No_Tagged_Streams_Pragma.
      	(Analyze_Subtype_Declaration): ditto.
      	(Build_Derived_Record_Type): ditto.
      	(Record_Type_Declaration): ditto.
      	* sem_ch8.adb (Pop_Scope): Restore No_Tagged_Streams.
      	(Push_Scope): Save No_Tagged_Streams.
      	* sem_prag.adb (Analyze_Pragma, case No_Tagged_Streams): Implement new
      	pragma.
      
      From-SVN: r216476
      Robert Dewar committed
    • [multiple changes] · adc876a8
      2014-10-20  Robert Dewar  <dewar@adacore.com>
      
      	* sem_ch3.adb, prj-proc.adb, sem_ch4.adb, prj-env.adb, lib.ads,
      	sem_ch13.adb: Minor reformatting.
      
      2014-10-20  Javier Miranda  <miranda@adacore.com>
      
      	* exp_ch3.adb (Expand_N_Object_Declaration): Expand the
      	declaration of a class-wide limited object containing an
      	initializing expression into a renaming declaration.  Required to
      	avoid passing such declaration to the backend and also to avoid
      	generating an extra copy.
      
      From-SVN: r216475
      Arnaud Charlet committed
    • [multiple changes] · 1725676d
      2014-10-20  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* inline.adb (List_Inlining_Info): Minor tweaks.
      	(Add_Inlined_Body): Inline the enclosing package
      	if it is not internally generated, even if it doesn't come
      	from source.
      
      2014-10-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch4.adb (Process_Function_Call): If the first actual
      	denotes a discrete type, the mode must be interpreted as a slice
      	of an array returned by a parameterless call.
      
      2014-10-20  Vasiliy Fofanov  <fofanov@adacore.com>
      
      	* prj-env.ads, prj-env.adb (Get_Runtime_Path): No longer inhibit
      	searching for runtime referenced by a simple name on a project path.
      
      2014-10-20  Olivier Hainque  <hainque@adacore.com>
      
      	* vxworks-x86-link.spec: New file.
      	* system-vxworks-x86.ads: Add pragma Linker_Options to link with
      	vxworks-x86-link.spec.
      
      2014-10-20  Vincent Celier  <celier@adacore.com>
      
      	* opt.ads (Origin_Of_Target): New type.
      	(Target_Origin): New variable.
      	* prj-conf.adb (Parse_Project_And_Apply_Config): Record
      	Target_Value and Target_Origin.  If target was not specified
      	on the command line with --target=, check if attribute Target
      	is declared in the main project. If it is and it is not the
      	native target, parse again the projects so that 'Target get
      	the new value. Fail if the target has changed again.  Invoke
      	Process_Project_And_Apply_Config with Do_Phase_1 set to False
      	is Process_Project_Tree_Phase_1 has already been invoked.
      	* prj-conf.ads (Process_Project_And_Apply_Config): New Boolean
      	parameter Do_Phase_1, defaulted to True.
      	* prj-proc.adb (Expression): Check the special values and
      	defaults for attribute Target.
      
      2014-10-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch3.adb (Handle_Late_Controlled_Primitive): Do not analyze
      	the subprogram spec of the body in full, because it will be
      	reanalyzed when the declaration itself is analyzed;  otherwise. a
      	formal may end up duplicated in the list of formals leading to
      	spurious conformance errors with an existing declaration.
      
      From-SVN: r216473
      Arnaud Charlet committed
    • sem_ch13.adb: Improve error recovery on illegal aspect. · 3e1862b1
      2014-10-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch13.adb: Improve error recovery on illegal aspect.
      
      From-SVN: r216472
      Ed Schonberg committed
    • [multiple changes] · a9bbfbd0
      2014-10-20  Arnaud Charlet  <charlet@adacore.com>
      
      	* set_targ.adb (Write_Target_Dependent_Values, Write_Line):
      	Fix calling C APIs with no trailing NUL char by calling better
      	wrappers instead.
      
      2014-10-20  Tristan Gingold  <gingold@adacore.com>
      
      	* gnat_ugn.texi: Document that gdb users must be in group
      	_developer on mac os.
      
      2014-10-20  Arnaud Charlet  <charlet@adacore.com>
      
      	* a-tgdico.ads: Fix typo.
      
      2014-10-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_aggr.adb (Convert_To_Assignments): Do not create a
      	transient scope for a component whose type requires it, if the
      	context is an initialization procedure, because the target of
      	the assignment must be visible outside of the block.
      
      2014-10-20  Tristan Gingold  <gingold@adacore.com>
      
      	* tracebak.c: Define PC_ADJUST for arm-darwin.
      	* env.c: Remove darwin specific code.
      	* raise-gcc.c (__gnat_Unwind_ForcedUnwind): Error on arm-darwin.
      
      2014-10-20  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch3.adb (Analyze_Full_Type_Declaration): If previous view
      	is incomplete rather than private, and full type declaration
      	has aspects, analyze aspects on the full view rather than
      	the incomplete view, to prevent freezing anomalies with the
      	class-wide type.
      
      From-SVN: r216470
      Arnaud Charlet committed
    • slsr-19.c: Make robust against operand order changes. · 8bc598ff
      2014-10-20  Richard Biener  <rguenther@suse.de>
      
      	* gcc.dg/tree-ssa/slsr-19.c: Make robust against operand order changes.
      	* gcc.dg/tree-ssa/reassoc-20.c: Likewise.
      
      From-SVN: r216465
      Richard Biener committed
    • Makefile.am: Move ctype.cc, ctype_configure_char.cc and ctype_members.cc to ... · a3e4cd81
      	* src/c++98/Makefile.am: Move ctype.cc, ctype_configure_char.cc and
      	ctype_members.cc to ...
      	* src/c++11/Makefile.am: Here.
      	* src/c++98/Makefile.in: Regenerate.
      	* src/c++11/Makefile.in: Regenerate.
      	* src/c++98/ctype.cc: Move file to ...
      	* src/c++11/ctype.cc: Here, define ctype_base::blank.
      	* config/abi/pre/gnu.ver: Export ctype_base::blank.
      	* config/locale/generic/ctype_members.cc
      	(ctype<wchar_t>::_M_convert_to_wmask): Handle blank. Update comments.
      	* config/locale/gnu/ctype_members.cc
      	(ctype<wchar_t>::_M_convert_to_wmask): Likewise.
      	* config/os/aix/ctype_base.h (ctype_base::blank): Declare.
      	* config/os/bionic/ctype_base.h (ctype_base::blank): Likewise.
      	* config/os/bsd/darwin/ctype_base.h (ctype_base::blank): Declare.
      	* config/os/bsd/darwin/ctype_inline.h (ctype<char>::is): Use blank.
      	(ctype<wchar_t::do_is): Likewise.
      	* config/os/bsd/dragonfly/ctype_base.h (ctype_base::blank): Declare.
      	* config/os/bsd/dragonfly/ctype_inline.h (ctype<char>::is): Use blank.
      	(ctype<wchar_t::do_is): Likewise.
      	* config/os/bsd/freebsd/ctype_base.h (ctype_base::blank): Declare.
      	* config/os/bsd/freebsd/ctype_inline.h (ctype<char>::is): Use blank.
      	(ctype<wchar_t::do_is): Likewise.
      	* config/os/bsd/netbsd/ctype_base.h (ctype_base::blank): Declare.
      	* config/os/bsd/openbsd/ctype_base.h (ctype_base::blank): Likewise.
      	* config/os/djgpp/ctype_base.h (ctype_base::blank): Likewise.
      	* config/os/generic/ctype_base.h (ctype_base::blank): Declare.
      	* config/os/generic/ctype_inline.h (ctype<char>::is): Use blank.
      	* config/os/gnu-linux/ctype_base.h (ctype_base::blank): Declare.
      	* config/os/hpux/ctype_base.h (ctype_base::blank): Likewise.
      	* config/os/mingw32-w64/ctype_base.h (ctype_base::blank): Declare.
      	* config/os/mingw32-w64/ctype_configure_char.cc
      	(ctype<char>::classic_table()): Set blank bit for space and tab.
      	* config/os/mingw32/ctype_base.h (ctype_base::blank): Declare.
      	* config/os/mingw32/ctype_configure_char.cc
      	(ctype<char>::classic_table()): Set blank bit for space and tab.
      	* config/os/newlib/ctype_base.h (ctype_base::blank): Declare.
      	* config/os/qnx/qnx6.1/ctype_base.h (ctype_base::blank): Likewise.
      	* config/os/solaris/solaris2.10/ctype_base.h (ctype_base::blank):
      	Likewise.
      	* config/os/tpf/ctype_base.h (ctype_base::blank): Likewise.
      	* config/os/uclibc/ctype_base.h (ctype_base::blank): Likewise.
      	* config/os/vxworks/ctype_base.h (ctype_base::blank): Likewise.
      	* include/bits/locale_facets.h (isblank): Define.
      	* include/bits/localefwd.h (isblank): Declare.
      	* testsuite/22_locale/classification/isblank.cc: New.
      	* testsuite/22_locale/ctype_base/blank.cc: New.
      
      From-SVN: r216464
      Jonathan Wakely committed
    • tree-vect-slp.c (vect_get_and_check_slp_defs): Try swapping operands to get a… · b0b4483e
      tree-vect-slp.c (vect_get_and_check_slp_defs): Try swapping operands to get a def operand kind match.
      
      2014-10-20  Richard Biener  <rguenther@suse.de>
      
      	* tree-vect-slp.c (vect_get_and_check_slp_defs): Try swapping
      	operands to get a def operand kind match.  Signal mismatches
      	to the parent so we can try swapping its operands.
      	(vect_build_slp_tree): Try swapping operands if they have
      	a mismatched operand kind.
      
      From-SVN: r216463
      Richard Biener committed
    • re PR debug/60655 (ICE: output_operand: invalid expression as operand) · c11c8664
      	PR debug/60655
      	* simplify-rtx.c (simplify_plus_minus): Delete unused "input_ops".
      	Increase "ops" array size.  Correct array size tests.  Init
      	n_constants in loop.  Break out of innermost loop when finding
      	a trivial CONST expression.
      
      From-SVN: r216462
      Alan Modra committed
    • re PR tree-optimization/63583 (ICF does not check that the template strings are the same) · 13f659d4
      PR ipa/63583
      
      	* ipa-icf-gimple.c (func_checker::compare_gimple_asm):
      	Gimple tempate string is compared.
      
      	* gcc.dg/ipa/pr63595.c: New test.
      
      From-SVN: r216458
      Martin Liska committed
    • varasm.c (const_alias_set): Remove. · d3f027a1
      	* varasm.c (const_alias_set): Remove.
      	(init_varasm_once): Remove initialization of const_alias_set.
      	(build_constant_desc): Do not set alias set to const_alias_set.
      
      From-SVN: r216454
      Uros Bizjak committed
    • PR 63589 Fix splitting of PATH in find_addr2line. · 70480968
      2014-10-20  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	PR libfortran/63589
      	* configure.ac: Check for strtok_r.
      	* runtime/main.c (gfstrtok_r): Fallback implementation of
      	strtok_r.
      	(find_addr2line): Use strtok_r to split PATH.
      	* config.h.in: Regenerated.
      	* configure: Regenerated.
      
      From-SVN: r216449
      Janne Blomqvist committed
    • Daily bump. · e0d37441
      From-SVN: r216447
      GCC Administrator committed
  3. 19 Oct, 2014 7 commits
  4. 18 Oct, 2014 6 commits
    • invoke.texi (Options to Request or Suppress Warnings): Explain options precedence. · 104e02e9
      2014-10-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
      
      	* doc/invoke.texi (Options to Request or Suppress Warnings):
      	Explain options precedence.
      	(Wtrampolines): Do not indent paragraph.
      
      From-SVN: r216429
      Manuel López-Ibáñez committed
    • invoke.texi: Update documentation of hppa -mjump-in-delay option. · bf95e88b
      	* doc/invoke.texi: Update documentation of hppa -mjump-in-delay option.
      	* config/pa/pa-protos.h (pa_following_call): Delete declaration.
      	(pa_jump_in_call_delay): Likewise.
      	* config/pa/pa.c (pa_option_override): Remove jump in call delay
      	override.
      	(pa_output_millicode_call): Remove support for jump in call delay.
      	(pa_output_call): Likewise.
      	(pa_jump_in_call_delay): Delete.
      	(pa_following_call): Likewise.
      	* config/pa/pa.md (in_call_delay): Remove jump in delay check.
      	(uncond_branch): Remove following call check from attribute length.
      
      From-SVN: r216428
      John David Anglin committed
    • re PR fortran/63553 ([OOP] Wrong code when assigning a CLASS to a TYPE) · 22c23886
      2014-10-18  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/63553
      	* resolve.c (resolve_ordinary_assign): Add data component to
      	rvalue expression for class to type assignment.
      
      2014-10-18  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/63553
      	* gfortran.dg/class_to_type_3.f03 : New test
      
      From-SVN: r216427
      Paul Thomas committed
    • pr58314.c: Fix excess failures caused by switch to GNU11. · 54157b52
      gcc/testsuite/
      	* gcc.target/sh/torture/pr58314.c: Fix excess failures caused by switch
      	to GNU11.
      
      From-SVN: r216426
      Oleg Endo committed
    • attr-isr.c: Move SH specific test to ... · 3bb5c3a9
      gcc/testsuite/
      	* gcc.dg/attr-isr.c: Move SH specific test to ...
      	* gcc.target/sh/attr-isr.c: ... here.
      
      From-SVN: r216425
      Oleg Endo committed
    • re PR target/53513 ([SH] Add support for fpchg insn and improve fenv support) · fe3e478f
      gcc/
      	PR target/53513
      	* config/sh/sh-modes.def (PSI): Remove.
      	* config/sh/sh-protos.h (get_fpscr_rtx): Remove.
      	* config/sh/sh.c (fpscr_rtx, get_fpscr_rtx): Remove.
      	(sh_reorg): Remove commented out FPSCR code.
      	(fpscr_set_from_mem): Use SImode instead of PSImode.  Emit lds_fpscr
      	insn instead of move insn.
      	(sh_hard_regno_mode_ok): Return SImode for FPSCR.
      	(sh_legitimate_address_p, sh_legitimize_reload_address): Remove PSImode
      	handling.
      	(sh_emit_mode_set): Emit lds_fpscr and sts_fpscr insns.
      	(sh1_builtin_p): Uncomment.
      	(SH_BLTIN_UV 25, SH_BLTIN_VU 26): New macros.
      	(bdesc): Add __builtin_sh_get_fpscr and __builtin_sh_set_fpscr.
      	* config/sh/sh/predicates.md (fpscr_operand): Simplify.
      	(fpscr_movsrc_operand, fpscr_movdst_operand): New predicates.
      	(general_movsrc_operand, general_movdst_operand): Disallow
      	fpscr_operand.
      	* config/sh/sh.md (FPSCR_FR): New constant.
      	(push_fpscr): Emit sts_fpscr insn.
      	(pop_fpscr): Emit lds_fpscr_insn.
      	(movsi_ie): Disallow FPSCR operands.
      	(fpu_switch, unnamed related split, extend_psi_si,
      	truncate_si_psi): Remove insns.
      	(lds_fpscr, sts_fpscr): New insns.
      	(toggle_sz, toggle_pr): Use SImode for FPSCR_REG instead of PSImode.
      
      From-SVN: r216424
      Oleg Endo committed