1. 23 Oct, 2014 24 commits
    • re PR target/63534 (Bootstrap failure on x86_64/i686-linux) · 56873e13
      	PR target/63534
      	PR target/63618
      gcc/
      	* cse.c (delete_trivially_dead_insns): Consider PIC register is used
      	while it is pseudo.
      	* dse.c (deletable_insn_p): Likewise.
      gcc/testsuite/
      	* gcc.target/i386/pr63618.c: New test.
      
      From-SVN: r216596
      Evgeny Stupachenko committed
    • re PR c/63626 (Warning "inline function declared but never defined" output twice) · 1bc5a451
      	PR c/63626
      	* c-decl.c (pop_scope): Don't print warning in external_scope.
      
      	* gcc.dg/pr63626.c: New test.
      
      From-SVN: r216595
      Marek Polacek committed
    • c-ubsan.c (ubsan_instrument_shift): Perform the MINUS_EXPR in unsigned type. · 59d7607a
      	* c-ubsan.c (ubsan_instrument_shift): Perform the MINUS_EXPR
      	in unsigned type.
      
      	* c-c++-common/ubsan/undefined-2.c: New test.
      
      From-SVN: r216593
      Marek Polacek committed
    • avr.c: Fix GNU coding rules and typos. · 0c9ef7ad
      	* config/avr/avr.c: Fix GNU coding rules and typos.
      	* config/avr/avr.h: Dito.
      	* config/avr/avr-c.c: Dito.
      	* config/avr/avr.md: Dito.
      
      From-SVN: r216592
      Georg-Johann Lay committed
    • AVX. Fix block absq emit for non AVX-512 targets. · e650a568
      gcc/
      	* config/i386/sse.md (define_mode_iterator VI1248_AVX512VL_AVX512BW):
      	New.
      	(define_insn "*abs<mode>2"): Use VI1248_AVX512VL_AVX512BW mode
      	iterator.
      	(define_expand "abs<mode>2"): Ditto.
      
      gcc/testsuite/
      	* gcc.target/i386/pr63600.c: New.
      
      From-SVN: r216591
      Kirill Yukhin committed
    • AVX-512. 81.1/n. Extend `function_code' field `tree_var_decl' structure. · c1b7a563
      gcc/
      	* tree-core.h (tree_var_decl): Extend `function_code' field
      	by one bit, move `regdecl_flag' field to ...
      	(tree_decl_with_vis): Here.
      	* tree.h (DECL_STATIC_CHAIN): Update struct name.
      
      From-SVN: r216590
      Kirill Yukhin committed
    • Fix gcc.dg/ipa/ipa-icf-21.c on 32-bit Linux/x86. · 8bbc6470
      	* gcc.dg/ipa/ipa-icf-21.c: Add -msse2 to dg-options.
      
      From-SVN: r216589
      Rainer Orth committed
    • [multiple changes] · ad075b50
      2014-10-23  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_eval.adb (Check_Non_Static_Context): Do not set
      	Is_Machine_Number on a literal of a fixed-point type.
      
      2014-10-23  Robert Dewar  <dewar@adacore.com>
      
      	* mlib-prj.adb, sem_ch4.adb, exp_ch3.adb: Minor reformatting.
      
      2014-10-23  Pierre-Marie Derodat  <derodat@adacore.com>
      
      	* exp_dbug.ads: Update ___XA parallel type specification.
      
      2014-10-23  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_ch3.adb (Copy_Array_Subtype_Attributes): Inherit the rep
      	chain of the source type.
      	* sem_ch13.adb (Analyze_Aspect_Specifications): Minor
      	reformatting of an error message.
      	* sem_util.adb (Inherit_Rep_Item_Chain): Do not inherit a rep
      	chain that has been inherited already.
      
      From-SVN: r216588
      Arnaud Charlet committed
    • [multiple changes] · e699b76e
      2014-10-23  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch6.adb (Analyze_Expression_Function): Simplify analysis
      	in generic context, and generate body in this case as well,
      	to simplify ASIS traversals on the construct.
      
      2014-10-23  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch4.adb (Complete_Object_Operation): Indicate that the
      	scope of the operation (s) is referenced, to prevent spurious
      	warnings about unused units.
      
      2014-10-23  Johannes Kanig  <kanig@adacore.com>
      
      	* errout.adb (Error_Msg_Internal): Copy check flag, increment
      	check msg count.
      	* erroutc.adb (Delete_Msg) adjust check msg count.
      	(Output_Msg_Text) handle check msg case (do nothing).
      	(Prescan_Message) recognize check messages with severity prefixes.
      	* errutil.adb (Error_Msg) handle check flag, adjust counter.
      
      2014-10-23  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_eval.adb (Subtypes_Statically_Match): For a generic actual
      	type, check for the presence of discriminants in its parent type,
      	against the presence of discriminants in the context type.
      
      2014-10-23  Tristan Gingold  <gingold@adacore.com>
      
      	* adaint.c: __gnat_get_file_names_case_sensitive: Default is
      	true on arm-darwin.
      
      2014-10-23  Arnaud Charlet  <charlet@adacore.com>
      
      	* pprint.adb (Expression_Image): Add handling of quantifiers.
      
      2014-10-23  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_pakd.adb (Expand_Packed_Element_Reference): If the
      	prefix is a source entity, generate a reference to it before
      	transformation, because rewritten node might not generate a
      	proper reference, leading to spurious warnings.
      
      2014-10-23  Tristan Gingold  <gingold@adacore.com>
      
      	* init.c: Fix thinko in previous patch.
      
      2014-10-23  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_ch3.adb (Decimal_Fixed_Point_Type_Declaration):
      	Inherit the rep chain of the implicit base type.
      	(Floating_Point_Type_Declaration): Inherit the rep chain of the
      	implicit base type.
      	(Ordinary_Fixed_Point_Type_Declaration): Inherit the rep chain of the
      	implicit base type.
      	(Signed_Integer_Type_Declaration): Inherit the rep chain of the
      	implicit base type.
      	* sem_util.ads, sem_util.adb (Inherit_Rep_Item_Chain): New routine.
      
      2014-10-23  Pascal Obry  <obry@adacore.com>
      
      	* g-regist.adb, g-regist.ads: Add support for reading 32bit or 64bit
      	view of the registry.
      
      2014-10-23  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_ch3.adb (Expand_N_Object_Declaration): If type is abstract,
      	return without expanding expression, to prevent subsequent crash.
      	* freeze.adb: better error message for illegal declaration.
      
      From-SVN: r216587
      Arnaud Charlet committed
    • sysdep.c (__gnat_localtime_tzoff): Properly delimit the substring which… · e776d441
      sysdep.c (__gnat_localtime_tzoff): Properly delimit the substring which represents the time zone on VxWorks.
      
      2014-10-23  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sysdep.c (__gnat_localtime_tzoff): Properly delimit the
      	substring which represents the time zone on VxWorks.
      
      From-SVN: r216586
      Hristian Kirtchev committed
    • [multiple changes] · 13fa2acb
      2014-10-23  Vincent Celier  <celier@adacore.com>
      
      	* gnatls.adb: If --RTS= was not used, check if there is a default
      	runtime. If there is none, in verbose mode, indicate that the
      	default runtime is not available and show only the current
      	directory in the source and the object search paths.
      
      2014-10-23  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch6.adb (Process_Formals): A thunk procedure with a
      	parameter of a limited view does not need a freeze node.
      
      2014-10-23  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_ch7.adb (Analyze_Package_Body_Helper):
      	The logic which hides local entities from external
      	visibility is now contained in routine Hide_Public_Entities.
      	(Hide_Public_Entities): New routine. Object and subprogram
      	renamings are now hidden from external visibility the same way
      	objects are.
      
      2014-10-23  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_attr.adb (Analyze_Attribute): The prefix of attribute Elaborated
      	does not require freezing, in particular if it denotes a generic
      	function.
      
      From-SVN: r216585
      Arnaud Charlet committed
    • [multiple changes] · b04d926e
      2014-10-23  Yannick Moy  <moy@adacore.com>
      
      	* sem_prag.adb (Analyze_Pragma/Pragma_Inline & Pragma_Inline_Always):
      	Disable analysis in GNATprove mode.
      
      2014-10-23  Arnaud Charlet  <charlet@adacore.com>
      
      	* mlib-prj.adb: Remove obsolete references to libdecgnat (VMS only).
      
      2014-10-23  Arnaud Charlet  <charlet@adacore.com>
      
      	* gnat1drv.adb (Adjust_Global_Switches): Ignore style check
      	pragmas in codepeer mode.
      
      2014-10-23  Gary Dismukes  <dismukes@adacore.com>
      
      	* gnat_rm.texi: Minor syntax fix for pragma Annotate (missing ',').
      
      2014-10-23  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_ch12.adb (Inline_Instance_Body): Alphabetize
      	local variables and constants. Add constants Save_SM and Save_SMP
      	to capture SPARK_Mode-related attributes.  Compile the inlined
      	body with the SPARK_Mode of the enclosing context.
      
      2014-10-23  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sinfo.adb (Elaboration_Boolean): Removed.
      	(Set_Elaboration_Boolean): Removed.
      	* sinfo.ads Remove attribute Elaboration_Boolean along with its
      	occurrence in nodes.
      	(Elaboration_Boolean): Removed along with pragma Inline.
      	(Set_Elaboration_Boolean): Removed along with pragma Inline.
      
      2014-10-23  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch3.adb (Constant_Redeclaration): Make error message more
      	explicit on a deferred constant whose object_definition is an
      	anonymous array.
      
      2014-10-23  Vincent Celier  <celier@adacore.com>
      
      	* gnatls.adb: Never call Targparm.Get_Target_Parameters.
      
      2014-10-23  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch6.adb (Analyze_Expression_Function): In a generic
      	context do not create a body, and only pre-analyze the expression,
      	which may include incomplete views.
      
      From-SVN: r216584
      Arnaud Charlet committed
    • [multiple changes] · 3ad33e33
      2014-10-23  Robert Dewar  <dewar@adacore.com>
      
      	* sem_type.adb: Minor code reorganization (use Nkind_In, Ekind_In).
      	* sem_ch3.adb: Minor reformatting.
      
      2014-10-23  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch12.adb (Analyze_Associations): If an actual for a formal
      	object is a call to a parameterless expression function, add
      	the function to the list of actuals to freeze.
      	* freeze.adb (Check_Expression_Function): Create freeze nodes of
      	outer types that may be references in the body of the expression.
      
      From-SVN: r216583
      Arnaud Charlet committed
    • [multiple changes] · 580d40e8
      2014-10-23  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_util.ads, checks.ads: Minor comment reformatting.
      
      2014-10-23  Javier Miranda  <miranda@adacore.com>
      
      	* sem_eval (Test_In_Range): Disable removal of range_check for
      	VM targets.
      
      2014-10-23  Robert Dewar  <dewar@adacore.com>
      
      	* erroutc.adb (Validate_Specific_Warnings): Fix test for -W
      	messages, which got disabled when we unconditionally added an
      	asterisk at the start of the string.
      
      2014-10-23  Vincent Celier  <celier@adacore.com>
      
      	* gnatls.adb: Ensure that "gnatls -l" works even when there is
      	no default runtime.
      
      2014-10-23  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 after
      	building the derived type. Capture original declaration and type
      	here instead of...
      	(Copy_And_Build): ...here.
      	* sem_type.adb (Full_View_Covers): Handle the Underlying_Full_View.
      
      From-SVN: r216582
      Arnaud Charlet committed
    • [multiple changes] · 2934b84a
      2014-10-23  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* checks.adb (Ensure_Valid): Update the subprogram
      	profile. Propagate the contex attributes to Insert_Valid_Check.
      	(Insert_Valid_Check): Update the subprogram profile. Propagate
      	the attributes of the context to Duplicate_Subexpr_No_Checks.
      	(Validity_Check_Range): Update the subprogram profile. Propagate
      	the context attribute to Ensure_Valid.
      	* checks.ads (Ensure_Valid): Update the subprogram profile
      	along with the comment on usage.
      	(Insert_Valid_Check): Update the subprogram profile along with the
      	comment on usage.
      	(Validity_Check_Range): Update the subprogram profile along with
      	the comment on usage.
      	* exp_util.adb (Build_Temporary): New routine.
      	(Duplicate_Subexpr_No_Checks): Update the subprogram
      	profile. Propagate the attributes of the context to Remove_Side_Effects.
      	(Remove_Side_Effects): Update the subprogram profile. Update all calls
      	to Make_Temporary to invoke Build_Temporary.
      	* exp_util.ads (Duplicate_Subexpr_No_Checks): Update
      	the subprogram profile along with the comment on usage.
      	(Remove_Side_Effects): Update the subprogram profile along with
      	the comment on usage.
      	* sem_ch3.adb (Process_Range_Expr_In_Decl): Pass the subtype
      	to the validity check machinery.  Explain the reason for this
      	propagation.
      
      2014-10-23  Robert Dewar  <dewar@adacore.com>
      
      	* a-strsea.adb: Minor reformatting.
      
      From-SVN: r216581
      Arnaud Charlet committed
    • [multiple changes] · 3fdb58e2
      2014-10-23  Thomas Quinot  <quinot@adacore.com>
      
      	* bcheck.adb (Check_Consistent_SSO_Default): Exclude internal
      	units from consistency check.
      	* gnat_rm.texi (Default_Scalar_Storage_Order): Document that
      	consistency check excludes run-time units.
      
      2014-10-23  Ed Schonberg  <schonberg@adacore.com>
      
      	* a-strsea.adb (Find_Token): Enable constraint checking in this
      	procedure, so that even when compiling with checks suppressed, as is
      	the case for the run-time, an exception is raised in this routine when
      	the input meets the conditions described in RM 2005 A.4.3 (68/1).
      
      From-SVN: r216580
      Arnaud Charlet committed
    • Makefile.def: Add libcpp build module and dependencies. · 929315a9
      2014-10-23  Richard Biener  <rguenther@suse.de>
      
      	* Makefile.def: Add libcpp build module and dependencies.
      	* configure.ac: Add libcpp build module.
      	* Makefile.in: Regenerate.
      	* configure: Likewise.
      
      	gcc/
      	* Makefile.in (BUILD_CPPLIB): Add.
      	(build/genmatch$(build_exeext)): Use BUILD_CPPLIB, not CPPLIB.
      	Drop LIBIBERTY.
      
      From-SVN: r216579
      Richard Biener committed
    • Fix gcc.dg/ipa/ipa-icf-2[18].c on Solaris · 282d3a81
      	* gcc.dg/ipa/ipa-icf-21.c: Restrict to i?86-*-* x86_64-*-*.
      	* gcc.dg/ipa/ipa-icf-28.c: Require init_priority.
      
      From-SVN: r216578
      Rainer Orth committed
    • Fix gnu11 fallout on SPARC · 1e98795b
      	* include/gc.h [(sparc || __sparc) && sun] (GC_INIT): Remove
      	comment and definition.
      
      From-SVN: r216577
      Rainer Orth committed
    • Fix SPARC testsuite gnu11 fallout · f038cd81
      	* gcc.target/sparc/20001013-1.c (main): Declare int return.
      	* gcc.target/sparc/mnofpu.c (e1e_rphy): Declare.
      	* gcc.target/sparc/sparc-ret.c (toto): Declare.
      	* gcc.target/sparc/ultrasp6.c (__assert, HSRate): Declare.
      	* gcc.target/sparc/ultrasp8.c (__malloc_lock, __malloc_unlock):
      	Declare.
      
      From-SVN: r216576
      Rainer Orth committed
    • fold-const.c (fold_binary_loc): Preserve side-effects of X - X when simplifying to 0. · 4d885a63
      2014-10-22  Richard Biener  <rguenther@suse.de>
      
      	* fold-const.c (fold_binary_loc): Preserve side-effects of
      	X - X when simplifying to 0.
      	* stor-layout.c (finish_bitfield_representative): Strip
      	side-effects of evaluating the difference of two DECL_FIELD_OFFSET.
      
      From-SVN: r216575
      Richard Biener committed
    • Commit old ChangeLog entry forgotten in commit of actual change. · a15d2ea8
      	PR go/55969
      	* configure.ac: Disable libgo on some systems where it does not
      	work.
      
      From-SVN: r216573
      Ian Lance Taylor committed
    • re PR libstdc++/63497 (std::regex can't handle [^class] correctly and cause runtime crash) · 4d838433
      	PR libstdc++/63497
      	include/bits/regex_executor.h (_Executor::_M_word_boundary): Remove
      	unused parameter.
      	include/bits/regex_executor.tcc (_Executor::_M_dfs,
      	_Executor::_M_word_boundary): Avoid dereferecing _M_current at _M_end
      	or other invalid position.
      
      From-SVN: r216572
      Tim Shen committed
    • Daily bump. · a3317c92
      From-SVN: r216571
      GCC Administrator committed
  2. 22 Oct, 2014 16 commits
    • re PR lto/63603 (Linking with -fno-lto still invokes LTO) · d8857ac6
      2014-10-22  Richard Biener  <rguenther@suse.de>
                  Tobias Burnus <burnus@net-b.de>
      
              PR lto/63603
              * gcc.c (LINK_COMMAND_SPEC): Add %{fno-lto}.
      
      
      Co-Authored-By: Tobias Burnus <burnus@net-b.de>
      
      From-SVN: r216566
      Richard Biener committed
    • Do not build soft-fp code at all for powerpc64-linux-gnu. · 693b297b
      When I added support for using soft-fp in libgcc
      <https://gcc.gnu.org/ml/gcc-patches/2006-03/msg00689.html>, libgcc
      configuration was still done in the gcc/ directory, meaning that the
      variables set in makefile fragments could not depend on the multilib
      being built.  Thus, building the soft-fp code for powerpc64-linux-gnu
      was disabled in the same way as had been done with fp-bit: the code
      was built, but with #ifndef __powerpc64__ wrappers around it so that
      the resulting objects were empty.
      
      Now that libgcc configuration is done in the toplevel libgcc
      directory, such uses of softfp_wrap_start / softfp_wrap_end are better
      replaced by configure-time conditionals that determine whether to use
      soft-fp for a given multilib.  This patch does so for
      powerpc*-*-linux*.  The same would appear to apply to
      powerpc*-*-freebsd* (using rs6000/t-freebsd64), but I have not made
      any changes there.  t-ppc64-fp is also used by AIX targets, but they
      don't use soft-fp anyway so the changes are of no consequence to them.
      
      The same principle of replacing softfp_wrap_start / softfp_wrap_end
      with configure-time conditionals also applies to
      softfp_exclude_libgcc2, which was intended for cases where soft-fp is
      being used on hard-float multilibs and so it is desirable on those
      multilibs for a few functions to come from libgcc2.c rather than
      soft-fp (but the soft-fp versions would be more efficient on
      soft-float multilibs).  Now we have hardfp.c and t-hardfp, those are
      better to use in that case, to minimize the size of the bulk of the
      functions that are only present for ABI compatibility and should never
      be called by newly compiled code.
      
      I intend followup patches to switch 32-bit hard-float multilibs to use
      t-hardfp as far as possible (for all non-libgcc2.c operations for
      classic hard float; for all except __unord* for e500v2; for all SFmode
      operations except __unordsf2 for e500v1).  After that will come making
      the soft-fp operations, in the remaining cases for which they are
      built because they are actually needed for code compiled by current
      GCC, into compat symbols when building for glibc 2.19 or later, so
      that the glibc versions (with exception and rounding mode support) get
      used instead (2.19 or later is needed for all the functions to be
      exported from glibc as non-compat symbols).  In turn, that is required
      before implementing TARGET_ATOMIC_ASSIGN_EXPAND_FENV for soft-float
      and e500, as that can only be properly effective when GCC-compiled
      code is actually interoperating correctly with the exception and
      rounding mode state used by <fenv.h> functions.
      
      Tested with no regressions with cross to powerpc64-linux-gnu (in
      addition, verified that stripped libgcc_s.so.1 is identical before and
      after the patch).
      
      	* config.host (powerpc*-*-linux*): Only use soft-fp for 32-bit
      	configurations.
      	* config/rs6000/t-ppc64-fp (softfp_wrap_start, softfp_wrap_end):
      	Remove variables.
      
      From-SVN: r216564
      Joseph Myers committed
    • auto-profile.c: Change order of header files. · 3d790fd8
      gcc/ChangeLog:
      
      2014-10-22  Dehao Chen  <dehao@google.com>
      
              * auto-profile.c: Change order of header files.
      
      From-SVN: r216563
      Dehao Chen committed
    • re PR tree-optimization/63530 (GCC generates incorrect aligned store on ARM… · 417dfefb
      re PR tree-optimization/63530 (GCC generates incorrect aligned store on ARM after the loop is unrolled.)
      
      	PR tree-optimization/63530
      	tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Set
      	pointer alignment according to DR_MISALIGNMENT.
      	gcc.dg/vect/pr63530.c: New testcase.
      
      From-SVN: r216562
      Guozhi Wei committed
    • Reset global state ipa-icf.c:optimizer · 9612a39a
      gcc/
      	* ipa-icf.c (ipa_icf_driver): Set optimizer to NULL when done.
      
      From-SVN: r216561
      David Malcolm committed
    • cfgbuild.h: New. · 893479de
      
      
      2014-10-22  Andrew MacLeod  <amacleod@redhat.com>
      
      	* cfgbuild.h: New.  Add prototypes for cfgbuild.c.
      	* cfgcleanup.h: New.  Add prototypes for cfgcleanup.c.
      	* cfgloopmanip.h: New.  Add prototypes for cfgloopmanip.c.
      	* dominance.h: New.  Add prototypes for dominance.c.
      	* cfgloop.h: Move some prototypes/enum to cfgloopmanip.h and include it.
      	* cfghooks.h: (struct profile_record) Relocate here.
      	Relocate 2 prototypes from basic-block.h.
      	* basic-block.h: Move prototypes and struct to new header files.
      	Include cfgbuild.h, cfgcleanup.h, and dominance.h.
      	* rtl.h: Move a few prototypes to new header files.
      	* cfgcleanup.c (merge_memattrs): Make static.
      	* genopinit.c (main): Add predict.h to list of includes.
      	* predict.h: Update prototype list to match predict.c.
      	* predict.c (maybe_hot_count_p): Export.
      	(cgraph_edge::maybe_hot_p): Move to cgraph.c.
      	(cgraph_node::optimize_for_size_p): Move to cgraph.h.
      	* cgraph.h (cgraph_node::optimize_for_size_p): Relocate here.
      	* cgraph.c (cgraph_edge::maybe_hot_p): Relocate here.
      	* profile.h: Adjust prototypes.
      	* ifcvt.h: New.  Relocate struct ce_if_block here.
      	* ifcvt.c: Include ifcvt.h.
      
      	* config/frv/frv.c: Include ifcvt.h.
      	* config/frv/frv-protos.h: Add 'struct' to ce_if_block * parameters.
      
      From-SVN: r216559
      Andrew MacLeod committed
    • lra.c (lra): Remove call to recog_init. · 4a7fca26
      gcc/
      	* lra.c (lra): Remove call to recog_init.
      	* config/i386/i386.md (preferred_for_speed): New attribute
      	(*float<SWI48:mode><MODEF:mode>2_sse): Override it instead of
      	"enabled".  Remove check for sched1.
      
      gcc/testsuite/
      	* gcc.target/i386/conversion-2.c: New test.
      
      From-SVN: r216557
      Richard Sandiford committed
    • recog.h (recog_data_d): Remove enabled_alternatives. · 795693c1
      gcc/
      	* recog.h (recog_data_d): Remove enabled_alternatives.
      	* recog.c (extract_insn): Don't set it.
      	* reload.c (find_reloads): Call get_enabled_alternatives.
      
      From-SVN: r216556
      Richard Sandiford committed
    • recog.h (constrain_operands): Add an alternative_mask parameter. · daca1a96
      gcc/
      	* recog.h (constrain_operands): Add an alternative_mask parameter.
      	(constrain_operands_cached): Likewise.
      	(get_preferred_alternatives): Declare new form.
      	* recog.c (get_preferred_alternatives): New bb-taking instance.
      	(constrain_operands): Take the set of available alternatives as
      	a parameter.
      	(check_asm_operands, insn_invalid_p, extract_constrain_insn)
      	(extract_constrain_insn_cached): Update calls to constrain_operands.
      	* caller-save.c (reg_save_code): Likewise.
      	* ira.c (setup_prohibited_mode_move_regs): Likewise.
      	* postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
      	* ree.c (combine_reaching_defs): Likewise.
      	* reload.c (can_reload_into): Likewise.
      	* reload1.c (reload, reload_as_needed, inc_for_reload): Likewise.
      	(gen_reload_chain_without_interm_reg_p, emit_input_reload_insns)
      	(emit_insn_if_valid_for_reload): Likewise.
      	* reorg.c (fill_slots_from_thread): Likewise.
      	* config/i386/i386.c (ix86_attr_length_address_default): Likewise.
      	* config/pa/pa.c (pa_can_combine_p): Likewise.
      	* config/rl78/rl78.c (insn_ok_now): Likewise.
      	* config/sh/sh.md (define_peephole2): Likewise.
      	* final.c (final_scan_insn): Update call to constrain_operands_cached.
      
      From-SVN: r216555
      Richard Sandiford committed
    • md.texi: Document "preferred_for_size" and "preferred_for_speed" attributes. · 9840b2fa
      gcc/
      	* doc/md.texi: Document "preferred_for_size" and "preferred_for_speed"
      	attributes.
      	* genattr.c (main): Handle "preferred_for_size" and
      	"preferred_for_speed" in the same way as "enabled".
      	* recog.h (bool_attr): New enum.
      	(target_recog): Replace x_enabled_alternatives with x_bool_attr_masks.
      	(get_preferred_alternatives, check_bool_attrs): Declare.
      	* recog.c (have_bool_attr, get_bool_attr, get_bool_attr_mask_uncached)
      	(get_bool_attr_mask, get_preferred_alternatives, check_bool_attrs):
      	New functions.
      	(get_enabled_alternatives): Use get_bool_attr_mask.
      	* ira-costs.c (record_reg_classes): Use get_preferred_alternatives
      	instead of recog_data.enabled_alternatives.
      	* ira.c (ira_setup_alts): Likewise.
      	* postreload.c (reload_cse_simplify_operands): Likewise.
      	* config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
      	* ira-lives.c (preferred_alternatives): New variable.
      	(process_bb_node_lives): Set it.
      	(check_and_make_def_conflict, make_early_clobber_and_input_conflicts)
      	(single_reg_class, ira_implicitly_set_insn_hard_regs): Use it instead
      	of recog_data.enabled_alternatives.
      	* lra-int.h (lra_insn_recog_data): Replace enabled_alternatives
      	to preferred_alternatives.
      	* lra-constraints.c (process_alt_operands): Update accordingly.
      	* lra.c (lra_set_insn_recog_data): Likewise.
      	(lra_update_insn_recog_data): Assert check_bool_attrs.
      
      From-SVN: r216554
      Richard Sandiford committed
    • recog.h (extract_constrain_insn): Declare. · 75d25a02
      gcc/
      	* recog.h (extract_constrain_insn): Declare.
      	* recog.c (extract_constrain_insn): New function.
      	* lra.c (check_rtl): Use it.
      	* postreload.c (reload_cse_simplify_operands): Likewise.
      	* reg-stack.c (check_asm_stack_operands): Likewise.
      	(subst_asm_stack_regs): Likewise.
      	* regcprop.c (copyprop_hardreg_forward_1): Likewise.
      	* regrename.c (build_def_use): Likewise.
      	* sel-sched.c (get_reg_class): Likewise.
      	* config/arm/arm.c (note_invalid_constants): Likewise.
      	* config/s390/predicates.md (execute_operation): Likewise.
      
      From-SVN: r216553
      Richard Sandiford committed
    • New syntax for -fsanitize-recover. · d95a2703
      2014-10-22  Jakub Jelinek  <jakub@redhat.com>
      	    Yury Gribov  <y.gribov@samsung.com>
      
      gcc/
      	* common.opt (flag_sanitize_recover): New variable.
      	(fsanitize-recover): Remove Var/Init, deprecate.
      	(fsanitize-recover=): New option.
      	* doc/invoke.texi (fsanitize-recover): Update docs.
      	* opts.c (finish_options): Use opts->x_flag_sanitize
      	instead of flag_sanitize.  Prohibit -fsanitize-recover
      	for anything besides UBSan.  Formatting.
      	(common_handle_option): Handle OPT_fsanitize_recover_
      	and OPT_fsanitize_recover.  Use opts->x_flag_sanitize
      	instead of flag_sanitize.
      	* asan.c (pass_sanopt::execute): Fix up formatting.
      	* ubsan.c (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn,
      	ubsan_expand_objsize_ifn, ubsan_build_overflow_builtin,
      	instrument_bool_enum_load, ubsan_instrument_float_cast,
      	instrument_nonnull_arg, instrument_nonnull_return): Check
      	bits in flag_sanitize_recover bitmask instead of
      	flag_sanitize_recover as bool flag.
      
      gcc/c-family/
      	* c-ubsan.c (ubsan_instrument_division, ubsan_instrument_shift,
      	ubsan_instrument_vla): Check bits in flag_sanitize_recover bitmask
      	instead of flag_sanitize_recover as bool flag.
      
      gcc/testsuite/
      	* c-c++-common/ubsan/align-1.c: Update cmdline options.
      	* c-c++-common/ubsan/align-3.c: Likewise.
      	* c-c++-common/ubsan/bounds-1.c: Likewise.
      	* c-c++-common/ubsan/div-by-zero-7.c: Likewise.
      	* c-c++-common/ubsan/float-cast-overflow-10.c: Likewise.
      	* c-c++-common/ubsan/float-cast-overflow-7.c: Likewise.
      	* c-c++-common/ubsan/float-cast-overflow-8.c: Likewise.
      	* c-c++-common/ubsan/float-cast-overflow-9.c: Likewise.
      	* c-c++-common/ubsan/nonnull-2.c: Likewise.
      	* c-c++-common/ubsan/nonnull-3.c: Likewise.
      	* c-c++-common/ubsan/object-size-3.c: Likewise.
      	* c-c++-common/ubsan/overflow-1.c: Likewise.
      	* c-c++-common/ubsan/overflow-add-1.c: Likewise.
      	* c-c++-common/ubsan/overflow-add-3.c: Likewise.
      	* c-c++-common/ubsan/overflow-mul-1.c: Likewise.
      	* c-c++-common/ubsan/overflow-mul-3.c: Likewise.
      	* c-c++-common/ubsan/overflow-negate-2.c: Likewise.
      	* c-c++-common/ubsan/overflow-sub-1.c: Likewise.
      	* c-c++-common/ubsan/pr59503.c: Likewise.
      	* c-c++-common/ubsan/pr60613-1.c: Likewise.
      	* c-c++-common/ubsan/save-expr-1.c: Likewise.
      	* c-c++-common/ubsan/shift-3.c: Likewise.
      	* c-c++-common/ubsan/shift-6.c: Likewise.
      	* c-c++-common/ubsan/undefined-1.c: Likewise.
      	* c-c++-common/ubsan/vla-2.c: Likewise.
      	* c-c++-common/ubsan/vla-3.c: Likewise.
      	* c-c++-common/ubsan/vla-4.c: Likewise.
      	* g++.dg/ubsan/cxx11-shift-1.C: Likewise.
      	* g++.dg/ubsan/return-2.C: Likewise.
      	* c-c++-common/ubsan/recovery-1.c: New test.
      	* c-c++-common/ubsan/recovery-2.c: New test.
      	* c-c++-common/ubsan/recovery-3.c: New test.
      	* c-c++-common/ubsan/recovery-common.inc: New file.
      
      Co-Authored-By: Yury Gribov <y.gribov@samsung.com>
      
      From-SVN: r216552
      Jakub Jelinek committed
    • lib1funcs.S (__do_global_dtors): Fix wrong code introduced with 2014-10-21 trunk r216525. · 18a3415e
      	* config/avr/lib1funcs.S (__do_global_dtors): Fix wrong code
      	introduced with 2014-10-21 trunk r216525.
      
      From-SVN: r216550
      Georg-Johann Lay committed
    • [ARM] Add missing '\' in macro define. · 8584f1c4
        gcc/
          * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add missing '\'.
      
      From-SVN: r216548
      Jiong Wang committed
    • [ARM] Add ACLE 2.0 predefined marco __ARM_FEATURE_IDIV · 34f30f0f
      2014-10-22  Renlin Li <renlin.li@arm.com>
      
        gcc/
          * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define
          __ARM_FEATURE_IDIV__.
      
      From-SVN: r216547
      Renlin Li committed
    • Makefile.in (s-match): Adjust dependencies to only catch match.pd. · 1d9ce5dd
      2014-10-22  Richard Biener  <rguenther@suse.de>
      
      	* Makefile.in (s-match): Adjust dependencies to only catch
      	match.pd.
      
      From-SVN: r216545
      Richard Biener committed