aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2014-10-31[multiple changes]Arnaud Charlet10-122/+69
2014-10-31 Eric Botcazou <ebotcazou@adacore.com> * exp_ch4.adb: Minor tweak. 2014-10-31 Eric Botcazou <ebotcazou@adacore.com> * sem_ch12.adb (Analyze_Package_Instantiation): Do not inline with back-end inlining. (Must_Inline_Subp): Delete. * sem_util.ads, sem_util.adb (Must_Inline): Likewise. 2014-10-31 Ed Schonberg <schonberg@adacore.com> * freeze.adb (Freeze_Entity): A default_pool does not apply to internal access types generated for 'access references. * sem_prag (Analyze_Pragma, case Default_Pool): If the name is not null it must designate a variable. 2014-10-31 Eric Botcazou <ebotcazou@adacore.com> * inline.adb: Minor reformatting. 2014-10-31 Ed Schonberg <schonberg@adacore.com> * sem_ch3.adb (Build_Derived_Private_Type): If the derived type has access discriminants, create itype references for their anonymous types, so that they are elaborated before the generated bodies for the primitive operations of the type. 2014-10-31 Tristan Gingold <gingold@adacore.com> * prj-conf.adb (Locate_Runtime): Remove procedure. From-SVN: r216963
2014-10-31re PR sanitizer/63697 (-fsanitize=undefined doesn't detect some subtraction ↵Jakub Jelinek4-2/+50
overflows) PR sanitizer/63697 * tree-vrp.c (simplify_internal_call_using_ranges): For subcode == MINUS_EXPR, check overflow on vr0.min - vr1.max and vr0.max - vr1.min instead of vr0.min - vr1.min and vr0.max - vr1.max. * c-c++-common/ubsan/overflow-sub-3.c: New test. From-SVN: r216962
2014-10-31[multiple changes]Arnaud Charlet5-281/+52
2014-10-31 Eric Botcazou <ebotcazou@adacore.com> * inline.adb (Has_Excluded_Declaration): With back-end inlining, only return true for nested packages. (Cannot_Inline): Issue errors/warnings whatever the optimization level for back-end inlining and remove assertion. 2014-10-31 Sergey Rybin <rybin@adacore.com frybin> * table.adb (Tree_Read, Tree_Write): Use parentheses to specify the desired order of '*' and '/' operations to avoid overflow. 2014-10-31 Eric Botcazou <ebotcazou@adacore.com> * exp_ch6.adb (Do_Inline): Remove unreachable code. (Do_Inline_Always): Likewise. 2014-10-31 Vincent Celier <celier@adacore.com> * prj-nmsc.adb (Check_Stand_Alone_Library): Change error message when library has no Ada interfaces and Library_Standalone is declared. From-SVN: r216961
2014-10-31[multiple changes]Arnaud Charlet4-5/+33
2014-10-31 Arnaud Charlet <charlet@adacore.com> * sem_ch13.adb (Check_Constant_Address_Clause): Disable checks on address clauses in CodePeer mode. 2014-10-31 Javier Miranda <miranda@adacore.com> * inline.adb (Expand_Inlined_Call): Do not skip inlining of calls to subprogram renamings. 2014-10-31 Hristian Kirtchev <kirtchev@adacore.com> * sem_res.adb (Resolve_Entity_Name): Account for the case where the immediate parent of a reference to an entity is a parameter association. From-SVN: r216960
2014-10-31[multiple changes]Arnaud Charlet5-38/+33
2014-10-31 Eric Botcazou <ebotcazou@adacore.com> * inline.adb (Check_And_Split_Unconstrained_Function): Do not test for the presence of nested subprograms. 2014-10-31 Ed Schonberg <schonberg@adacore.com> * aspects.ads, aspects.adb: Add aspect Default_Storage_Pool. * sem_ch13.adb (Analyze_One_Aspect): Generate pragma for aspect Default_Storage_Pool. From-SVN: r216959
2014-10-31[multiple changes]Arnaud Charlet6-30/+50
2014-10-31 Eric Botcazou <ebotcazou@adacore.com> * sem_ch6.adb: Remove obsolete comment. 2014-10-31 Olivier Hainque <hainque@adacore.com> * g-allein.ads: bind vec_sld for pixels to 8hi vsldoi instead of 4si, as pixels are short. 2014-10-31 Ed Schonberg <schonberg@adacore.com> * sem_res.adb (Resolve_Call): Do not reject a call to a protected operation in the spec of a protected type, when the call appears in a pre/postcondition for another protected operation. 2014-10-31 Tristan Gingold <gingold@adacore.com> * prj-conf.adb: Locate_Runtime: Always search the runtime in project path. 2014-10-31 Eric Botcazou <ebotcazou@adacore.com> * inline.adb (Check_Package_Body_For_Inlining): Adjust previous change to use correct idiom for back-end inlining. From-SVN: r216958
2014-10-31configure.ac: Update comment.Jan-Benedict Glaw5-8/+32
2014-10-31 Jan-Benedict Glaw <jbglaw@lug-owl.de> ./ * configure.ac: Update comment. * configure: Regenerate. ./contrib * config-list.mk: Don't build Go for certain targets. From-SVN: r216957
2014-10-31[multiple changes]Arnaud Charlet7-110/+96
2014-10-31 Ed Schonberg <schonberg@adacore.com> * freeze.adb (Freeze_Record_Type): Do not check component size if its type is generic. 2014-10-31 Bob Duff <duff@adacore.com> * gnat_rm.texi: Fix documentation w.r.t -gnatw.w. 2014-10-31 Ed Schonberg <schonberg@adacore.com> * sem_ch4.adb (Try_Container_Indexing): Use Check_Implicit_Dereference. * sem_util.adb (Check_Implicit_Dereference): a) Handle generalized indexing as well as function calls. b) If the context is a selected component and whe are in an instance, remove entity from selector name to force resolution of the node, so that explicit dereferences can be generated in the instance if they were in the generic unit. 2014-10-31 Eric Botcazou <ebotcazou@adacore.com> * inline.adb (Back_End_Cannot_Inline): Delete. (Add_Inlined_Subprogram): Do not call it. From-SVN: r216956
2014-10-31[multiple changes]Arnaud Charlet8-65/+131
2014-10-31 Ed Schonberg <schonberg@adacore.com> * exp_ch3.ads (Make_Tag_Assignment): New function, used to re-initialize the tag in a tagged object declaration with initial value. * exp_ch3.adb (Expand_N_Object_Declaration): Use Make_Tag_Assignment to simplify code for a tagged object declaration. * exp_ch13.adb (Expand_Freeze_Entity): Analyze freeze actions for the freeze node of an object. * freeze.adb (Check_Address_Clause): Use Make_Tag_Assignment when needed to extend Freeze_Actions for a tagged object declaration. 2014-10-31 Eric Botcazou <ebotcazou@adacore.com> * gnat_ugn.texi: Further minor improvement to -flto entry. 2014-10-31 Gary Dismukes <dismukes@adacore.com> * g-dynhta.adb, g-dynhta.ads: Minor typo fixes and reformatting. From-SVN: r216955
2014-10-31re PR ipa/63696 (Alloc-dealloc-mismatch in ipa-icf.c)Max Ostapenko2-1/+7
gcc/ 2014-10-31 Max Ostapenko <m.ostapenko@partner.samsung.com> PR ipa/63696 * ipa-icf.c (sem_function::~sem_function): Change free to delete to avoid alloc-dealloc mismatch with new, called in ipa_icf::sem_function::init. From-SVN: r216954
2014-10-31MAINTAINERS (Write After Approval): Add myself.Ilya Enkovich2-0/+5
2014-10-31 Ilya Enkovich <ilya.enkovich@intel.com> * MAINTAINERS (Write After Approval): Add myself. From-SVN: r216952
2014-10-31Daily bump.GCC Administrator1-1/+1
From-SVN: r216948
2014-10-30Add zero-cost loops for xtensa port.Felix Yang4-21/+363
2014-10-10 Felix Yang <felix.yang@huawei.com> * config/xtensa/xtensa.h (TARGET_LOOPS): New Macro. * config/xtensa/xtensa.c: Include dumpfile.h and hw-doloop.h. (xtensa_reorg, xtensa_reorg_loops): New. (xtensa_can_use_doloop_p, xtensa_invalid_within_doloop): New. (hwloop_optimize, hwloop_fail, hwloop_pattern_reg): New. (xtensa_emit_loop_end): Emit the zero-overhead loop end label. (xtensa_doloop_hooks): Define. * config/xtensa/xtensa.md (doloop_end, loop_end): New (zero_cost_loop_start): Rewritten. (zero_cost_loop_end): Likewise. From-SVN: r216945
2014-10-30config.gcc (mips*-*-linux*): Combine 32 and 64 bit cases.Steve Ellcey2-17/+24
2014-10-30 Steve Ellcey <sellcey@imgtec.com> * config.gcc (mips*-*-linux*): Combine 32 and 64 bit cases. From-SVN: r216944
2014-10-30Make soft-fp symbols into compat symbols for powerpc*-*-linux*.Joseph Myers8-10/+171
Continuing preparations for implementing TARGET_ATOMIC_ASSIGN_EXPAND_FENV for powerpc*-*-linux* soft-float and e500, this patch makes soft-fp symbols used for those targets into compat symbols when building with glibc >= 2.19, so that they are only in shared libgcc for existing binaries requiring them, not in static libgcc and not available for new links using shared libgcc. Instead, new links will get the symbols from libc, which has exported all of them since 2.19. (Actually all the symbols were exported from glibc since 2.4, but some of them were exported by glibc as compat symbols only - because of a confusion between deliberately present soft-fp symbols and old accidental reexports of libgcc functions from glibc 2.0 - until 2.19.) This allows user floating-point arithmetic to interoperate properly with the state handled by <fenv.h> functions, whether software state (for soft-float; TLS variables that don't form a public part of glibc's ABI, so can only be accessed directly by functions within glibc) or hardware state (for e500 - the copies of the soft-fp functions in glibc being built to interoperate with the hardware state whereas those in libgcc aren't). Previously only glibc's own functions, and those operations done in hardware on e500, properly worked with that state, not direct floating-point arithmetic operations that were implemented in software. The intended next step is the actual TARGET_ATOMIC_ASSIGN_EXPAND_FENV implementation. The test of glibc >= 2.19 uses the same --with-glibc-version configure option as in the gcc/ directory (but differently implemented; in gcc/ the fallback is to examine headers to find the version, while in libgcc/ we can use compile for the target and so use AC_COMPUTE_INT). The TARGET_ATOMIC_ASSIGN_EXPAND_FENV implementation will also only do anything for glibc >= 2.19, as it will depend on generating calls to functions __atomic_feholdexcept __atomic_feclearexcept __atomic_feupdateenv that were added in 2.19 for that purpose (even for e500, inline code is not readily possible because of the need to make prctl syscalls from the implementation of these functions). In order to make symbols compat symbols, the soft-fp files need wrapping with generated wrappers including asm .symver directives, which need to name the symbol version in question. This is extracted by an awk script from an intermediate stage of generating the .map file for linking libgcc (that .map itself depends on the objects that go into the library, so can't be used for this purpose as that would mean a circular dependency); the extraction is not fully general regarding the features available in .map generation, but suffices for the present purpose. It would make sense for hardfp.c symbols to be compat symbols as well (in the cases where hardfp.c gets used, the functions in question should not be used for new links), but this isn't required for the present purpose, which is only concerned with ensuring that where functions that should be affected by rounding modes or exceptions get used, those functions are actually affected by those rounding modes or exceptions. Tested with no regressions with cross to powerpc-linux-gnu (soft-float); c11-atomic-exec-5.c moves from UNSUPPORTED to FAIL, as expected, now that floating-point arithmetic in user programs uses the same state as <fenv.h> functions, so the fenv_exceptions test passes, but TARGET_ATOMIC_ASSIGN_EXPAND_FENV isn't yet implemented. (For e500, c11-atomic-exec-5.c was already FAILing, as enough operations worked with the hardware state for the fenv_exceptions effective target test to pass.) Also verified that the exported symbols and versions are unchanged, with the expected symbols becoming compat symbols at the same versions, and that with --with-glibc-version=2.18 the symbols remain normal rather than compat symbols. * Makefile.in (libgcc.map.in): New target. (libgcc.map): Use libgcc.map.in. * config/t-softfp (softfp_compat): New variable to be set by users. [$(softfp_compat) = y] (softfp_map_dep, softfp_set_symver): New variables. [$(softfp_compat) = y] (softfp_file_list): Use files in the build directory. [$(softfp_compat) = y] ($(softfp_file_list)): Generate wrappers that use compat symbols and disable all code unless [SHARED]. * config/t-softfp-compat: New file. * find-symver.awk: New file. * configure.ac (--with-glibc-version): New configure option. (ppc_fp_compat): New variable set for powerpc*-*-linux*. * configure: Regenerate. * config.host (powerpc*-*-linux*): Use ${ppc_fp_compat} for soft-float and e500. From-SVN: r216942
2014-10-30c-objc-common.c (c_tree_printer): For a typedef name, print the stripped ↵Marek Polacek7-25/+91
version as well, if they're not the same. * c-objc-common.c (c_tree_printer) <case 'T'>: For a typedef name, print the stripped version as well, if they're not the same. * gcc.dg/diag-aka-1.c: New test. * gcc.dg/pr13804-1.c: Adjust dg-error. * gcc.dg/redecl-14.c: Likewise. * gcc.dg/pr56980.c: Adjust dg-message. From-SVN: r216941
2014-10-30genmatch.c: Remove <map>, <utility> and <string> includes.Richard Biener4-17/+67
2014-10-30 Richard Biener <rguenther@suse.de> * genmatch.c: Remove <map>, <utility> and <string> includes. Include ggc.h and hash-map.h. (ggc_internal_cleared_alloc): Provide stub definition. (ggc_free): Likewise. (struct capture_id_map_hasher): New traits for hash_map. (cid_map_t): New typedef. (everywhere else): Replace std::map use with cid_map_t. * hash-map.h (hash_map::elements): New member function. * Makefile.in (build/genmatch.o): Add $(HASH_TABLE_H), hash-map.h and $(GGC_H) as dependency. From-SVN: r216940
2014-10-30genmatch.c (capture_info::walk_c_expr): Ignore capture uses inside TREE_TYPE ().Richard Biener5-20/+47
2014-10-30 Richard Biener <rguenther@suse.de> * genmatch.c (capture_info::walk_c_expr): Ignore capture uses inside TREE_TYPE (). * gimple-ssa-strength-reduction.c (stmt_cost): Use CASE_CONVERT. (find_candidates_dom_walker::before_dom_children): Likewise. (replace_mult_candidate): Use CONVERT_EXPR_CODE_P. (replace_profitable_candidates): Likewise. * tree-ssa-dom.c (initialize_hash_element): Canonicalize CONVERT_EXPR_CODE_P to CONVERT_EXPR. * convert.c (convert_to_integer): Use CASE_CONVERT. From-SVN: r216939
2014-10-30* gcc.misc-tests/godump-1.c: Skip if ! lp64.Ian Lance Taylor2-0/+5
From-SVN: r216938
2014-10-30godump-1.c: Skip -fdump-go-spec tests for all platforms except s390[x] and ↵Dominik Vogt2-0/+6
x86_64. * gcc.misc-tests/godump-1.c: Skip -fdump-go-spec tests for all platforms except s390[x] and x86_64. From-SVN: r216936
2014-10-30configure.host (aix5+): New stanza.David Edelsohn2-2/+12
* configure.host (aix5+): New stanza. (aix4.3+): Do not use -G in link command. From-SVN: r216935
2014-10-30match.pd: Implement more patterns that simplify to a single value.Richard Biener4-27/+27
2014-10-30 Richard Biener <rguenther@suse.de> * match.pd: Implement more patterns that simplify to a single value. * fold-const.c (fold_binary_loc): Remove them here. * tree-ssa-forwprop.c (simplify_bitwise_binary): Likewise. (fwprop_ssa_val): Remove restriction on single uses. From-SVN: r216933
2014-10-30driver-avr.c (avr_set_current_device): Remove.Jan-Benedict Glaw2-20/+5
2014-10-30 Jan-Benedict Glaw <jbglaw@lug-owl.de> * config/avr/driver-avr.c (avr_set_current_device): Remove. From-SVN: r216932
2014-10-30[multiple changes]Arnaud Charlet5-26/+517
2014-10-30 Ed Schonberg <schonberg@adacore.com> * exp_ch3.adb (Expand_N_Object_Declaration): Code cleanup. 2014-10-30 Ed Schonberg <schonberg@adacore.com> * sem_ch5.adb (Analyze_Iterator_Specification): If a subtype indication is provided, check properly that it covers the element type of of the container type. 2014-10-30 Hristian Kirtchev <kirtchev@adacore.com> * g-dynhta.ads, g-dynhta.adb: Add the implementation of a load facto -based hash table. From-SVN: r216926
2014-10-30Recommit wrongly reverted change.Arnaud Charlet4-17/+20
From-SVN: r216924
2014-10-30Recommit wrongly reverted change.Arnaud Charlet2-20/+24
From-SVN: r216923
2014-10-30Re-commit wrongly reverted previous change.Arnaud Charlet2-5/+4
From-SVN: r216922
2014-10-30[multiple changes]Arnaud Charlet39-75/+222
2014-10-30 Ed Schonberg <schonberg@adacore.com> * exp_util.ads, exp_util.adb (Following_Address_Clause): Modify Has_Following_Address_Clause so that it returns the address clause if present, rather than a boolean value. * sem_ch3.adb (Analyze_Object_Declaration): use Following_Address_Clause. * exp_ch3.adb (Expand_N_Object_Declaration): When a tagged object is initialized, insert tag assignment after object is frozen, which may be after an address clause that follows the declaration. 2014-10-30 Tristan Gingold <gingold@adacore.com> * system-darwin-x86.ads, system-linux-s390x.ads, system-linux-alpha.ads, system-vxworks-arm.ads, system-freebsd-x86_64.ads, system-linux-hppa.ads, system-linux-s390.ads, system-solaris-sparcv9.ads, system-mingw.ads, system-linux-ia64.ads, system-vxworks-sparcv9.ads, system-linux-ppc.ads, system-aix64.ads, system-linux-sh4.ads, system-solaris-x86.ads, system-linux-x86_64.ads, system-linux-x86.ads, system-vxworks-ppc.ads, system-hpux.ads, system-linux-armel.ads, system-darwin-ppc.ads, system-solaris-sparc.ads, system-vxworks-m68k.ads, system-hpux-ia64.ads, system.ads, system-solaris-x86_64.ads, system-mingw-x86_64.ads, system-vxworks-mips.ads, system-linux-sparc.ads, system-freebsd-x86.ads, system-aix.ads, system-darwin-x86_64.ads, system-vxworks-x86.ads: Add pragma No_Elaboration_Code_All. 2014-10-30 Eric Botcazou <ebotcazou@adacore.com> * gnat_ugn.texi: Minor improvement to -flto entry. From-SVN: r216921
2014-10-30[multiple changes]Arnaud Charlet7-16/+45
2014-10-30 Hristian Kirtchev <kirtchev@adacore.com> * sem_util.adb (Inherit_Subprogram_Contract): Add a guard to protect against enumeration literal overriding. * sem_ch3.adb, sem_ch4.adb, sem_res.adb, sem_util.adb: Minor reformatting (add SPARK RM references). 2014-10-30 Robert Dewar <dewar@adacore.com> * exp_dbug.adb, opt.ads: Minor reformatting. From-SVN: r216920
2014-10-30[multiple changes]Arnaud Charlet18-136/+869
2014-10-30 Yannick Moy <moy@adacore.com> * inline.adb (Has_Single_Return_In_GNATprove_Mode): Return False when return statement is inside one or more blocks. 2014-10-30 Hristian Kirtchev <kirtchev@adacore.com> * exp_ch7.adb (Is_Subprogram_Call): Account for the case where an object declaration initialized by a function call that returns an unconstrained result may be rewritted as a renaming of the secondary stack result. 2014-10-30 Hristian Kirtchev <kirtchev@adacore.com> * aspects.adb: Add an entry for aspect Extensions_Visible in table Canonical_Aspect. * aspects.ads: Add entry for aspect Extensions_Visible in tables Aspect_Argument, Aspect_Delay, Aspect_Id, Aspect_Names, Implementation_Defined_Aspect. * einfo.adb (Get_Pragma): Include pragma Extensions_Visible in the list of contract pragmas. * par-prag.adb Pragma Extensions_Visible does not require special processing from the parser. * sem_ch3.adb (Analyze_Object_Declaration): Prevent an implicit class-wide conversion of a formal parameter of a specific tagged type whose related subprogram is subject to pragma Extensions_Visible with value "False". (Check_Abstract_Overriding): Add various overriding checks related to pragma Extensions_Visible. (Derive_Subprogram): A subprogram subject to pragma Extensions_Visible with value False requires overriding if the subprogram has at least one controlling OUT parameter. (Is_EVF_Procedure): New routine. * sem_ch4.adb (Analyze_Type_Conversion): A formal parameter of a specific tagged type whose related subprogram is subject to pragma Extensions_Visible with value "False" cannot appear in a class-wide conversion. * sem_ch6.adb (Analyze_Subprogram_Contract): Remove the assertion to account for pragma Extensions_Visible. (Check_Overriding_Indicator): An overriding subprogram inherits the contact of the overridden subprogram. (New_Overloaded_Entity): An overriding subprogram inherits the contact of the overridden subprogram. * sem_ch13.adb (Analyze_Aspect_Specifications): Add processing for aspect Extensions_Visible. (Check_Aspect_At_Freeze_Point): Aspect Extensions_Visible does not require special processing at the freeze point. * sem_prag.adb Add an entry for pragma Extensions_Visible in table Sig_Flags. (Analyze_Pragma): Ensure that various SPARK pragmas lack identifiers in their arguments. Add processing for pragma Extensions_Visible. (Chain_CTC): Code reformatting. * sem_res.adb (Resolve_Actuals): A formal parameter of a specific tagged type whose related subprogram is subject to pragma Extensions_Visible with value "False" cannot act as an actual in a subprogram with value "True". * sem_util.adb (Add_Classification): New routine. (Add_Contract_Item): Account for pragma Extensions_Visible. Code reformatting. (Add_Contract_Test_Case): New routine. (Add_Pre_Post_Condition): New routine. (Extensions_Visible_Status): New routine. (Inherit_Subprogram_Contract): New routine. (Is_EVF_Expression): New routine. (Is_Specific_Tagged_Type): New routine. * sem_util.ads Add type Extensions_Visible_Mode and document all values. (Add_Contract_Item): Add pragma Extensions_Visible to the comment on usage. (Inherit_Subprogram_Contract): New routine. (Is_EVF_Expression): New routine. (Is_Specific_Tagged_Type): New routine. * sinfo.adb (Is_Inherited): New routine. (Set_Is_Inherited): New routine. * sinfo.ads Add flag Is_Inherited along with its usage in nodes. (Is_Inherited): New routine along with pragma Inline. (Set_Is_Inherited): New routine along with pragma Inline. * snames.ads-tmpl: Add predefined name "Extensions_Visible" and a new Pragma_Id for the pragma. From-SVN: r216919
2014-10-30Add svn:executable property for generate_libstdcxx_web_docs.Jakub Jelinek1-0/+0
From-SVN: r216914
2014-10-30re PR tree-optimization/63574 (ICE building libjava (segfault) on ↵Martin Liska5-1/+69
arm-linux-gnueabihf) PR ipa/63574 PR ipa/63664 * g++.dg/ipa/pr63574.C: New test. * ipa-icf-gimple.c (func_checker::parse_labels): Missing comment added. (func_checker::compare_gimple_label): Simlified comparison introduced. * ipa-icf-gimple.h: Missing comment added. From-SVN: r216913
2014-10-30Build a shared host libiberty also for libcc1's benefit.Thomas Schwinge3-7/+29
* configure.ac (extra_host_libiberty_configure_flags): Add --enable-shared also for libcc1's benefit. * configure: Regenerate. From-SVN: r216912
2014-10-29pa-protos.h (pa_output_arg_descriptor): Strengthen argument from rtx to ↵Jeff Law3-23/+47
rtx_insn *. * config/pa/pa-protos.h (pa_output_arg_descriptor): Strengthen argument from rtx to rtx_insn *. (compute_movmem_length, compute_clrmem_length): Likewise. (copy_fp_args, length_fp_args): Likewise. * config/pa/pa.c (legitimize_pic_address): Promote local variable "insn" from rtx to rtx_insn *. (legitimize_tls_address, pa_emit_move_sequence): Likewise. (pa_output_block_move, store_reg, store_reg_modify): Likewise. (set_reg_plus_d, pa_expand_prologue, hppa_profile_hook): Likewise. (branch_to_delay_slot_p, branch_needs_nop_p, use_skip_p): Likewise. (pa_output_arg_descriptor): Strengthen argument to an rtx_insn *. (compute_movmem_length, compute_clrmem_length): Likewise. (copy_fp-args, length_fp_args): Likewise. From-SVN: r216859
2014-10-30Daily bump.GCC Administrator1-1/+1
From-SVN: r216858
2014-10-29Fix build fallout with machine_mode changes.Ramana Radhakrishnan2-2/+11
2014-10-29 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> * config/arm/arm.h (MACHMODE): Treat machine_mode as a scalar typedef. (CUMULATIVE_ARGS): Guard against target includes. (machine_function): Likewise. From-SVN: r216855
2014-10-29[AArch64] Restore recog state after finding pre-madd instructionKyrylo Tkachov4-0/+27
* config/aarch64/aarch64.c (aarch64_madd_needs_nop): Restore recog state after aarch64_prev_real_insn call. * gcc.target/aarch64/madd_after_asm_1.c: New test. From-SVN: r216852
2014-10-29Use perfect forwarding in std::function invokers.Jonathan Wakely3-10/+75
* include/std/functional: (_Function_base::_Function_base()): Use nullptr instead of literal zero. (function::operator=(nullptr_t)): Likewise. (_Function_handler::_M_invoke): Use perfect forwarding for _ArgTypes. (function::_Invoker_type): Likewise. * testsuite/20_util/function/invoke/forwarding.cc: New. From-SVN: r216849
2014-10-29any: Add feature-testing macro.Jonathan Wakely7-1/+19
* include/experimental/any: Add feature-testing macro. * include/experimental/optional: Likewise. * include/experimental/string_view: Likewise. * include/experimental/tuple: Likewise. * include/experimental/type_traits: Likewise. * testsuite/experimental/any/misc/any_cast_neg.cc: Adjust dg-error. From-SVN: r216848
2014-10-29Add <experimental/algorithm> and <experimental/functional>.Jonathan Wakely12-15/+1005
* doc/xml/manual/status_cxx2014.xml: Update TS status. * include/Makefile.am: Add new headers. * include/Makefile.in: Regenerate. * include/experimental/algorithm: New. * include/experimental/functional: New. * testsuite/experimental/algorithm/sample.cc: New. * testsuite/experimental/algorithm/search.cc: New. * testsuite/experimental/functional/not_fn.cc: New. * testsuite/experimental/functional/searchers.cc: New. * testsuite/experimental/functional/value.cc: New. * testsuite/experimental/feat-lib-fund.cc: Add headers and reorder. From-SVN: r216847
2014-10-29[AArch64] Fix/revert fallout from machine_mode changeKyrylo Tkachov2-1/+5
* config/aarch64/aarch64.h (MACHMODE): Add 'enum' to machine_mode. From-SVN: r216846
2014-10-29[ARM] Fix/revert fallout from machine_mode change.Kyrylo Tkachov2-2/+8
* config/arm/arm.h (MACHMODE): Add 'enum' to machine_mode. (struct machine_function): Gate definition on !defined(USED_FOR_TARGET). From-SVN: r216845
2014-10-29expmed.c (strict_volatile_bitfield_p): Fix off-by-one error.DJ Delorie4-1/+37
* expmed.c (strict_volatile_bitfield_p): Fix off-by-one error. * gcc.dg/20141029-1.c: New. From-SVN: r216844
2014-10-29re PR ipa/63587 (ICE : tree check: expected var_decl, have result_decl in ↵Martin Liska7-6/+370
add_local_variables, at tree-inline.c:4112) PR ipa/63587 * g++.dg/ipa/pr63587-1.C: New test * g++.dg/ipa/pr63587-2.C: New test. * cgraphunit.c (cgraph_node::expand_thunk): Only VAR_DECLs are put to local declarations. * function.c (add_local_decl): Implementation moved from header file, assert introduced for tree type. * function.h: Likewise. From-SVN: r216841
2014-10-29godump.c (go_format_type): Represent "float _Complex" and "double _Complex" ↵Dominik Vogt4-20/+93
as complex64 or complex128 in... gcc/: * godump.c (go_format_type): Represent "float _Complex" and "double _Complex" as complex64 or complex128 in Go, as appropriate. gcc/testsuite/: * gcc.misc-tests/godump-1.c: Add tests for complex types. From-SVN: r216840
2014-10-29match.pd: Implement a first set of conversion patterns.Richard Biener4-101/+49
2014-10-29 Richard Biener <rguenther@suse.de> * match.pd: Implement a first set of conversion patterns. * fold-const.c (fold_unary_loc): Remove them here. * tree-ssa-forwprop.c (simplify_vce): Remove. (pass_forwprop::execute): Do not call simplify_vce. From-SVN: r216839
2014-10-29Optimize powerpc*-*-linux* e500 hardfp/soft-fp use.Joseph Myers6-3/+92
Continuing the cleanups of libgcc soft-fp configuration for powerpc*-*-linux* in preparation for implementing TARGET_ATOMIC_ASSIGN_EXPAND_FENV for soft-float and e500, this patch optimizes the choice of which functions to build for the e500 cases. For e500v2, use of hardfp is generally right, except that calls to __unordsf2 and __unorddf2 are actually generated by GCC from __builtin_isunordered and so they need to be implemented with soft-fp to avoid recursively calling themselves. For e500v1, hardfp is right for SFmode (except for __unordsf2) but soft-fp for DFmode (and when using soft-fp, as usual it's best for the conversions between DFmode and integers all to come directly from soft-fp rather than some coming from libgcc2.c). Thus, new variables hardfp_exclusions and softfp_extras are added that configurations using t-hardfp and t-softfp can use to achieve the desired effect of selectively mixing the two sources of functions. Tested with no regressions for crosses to powerpc-linux-gnuspe (both e500v1 and e500v2); also checked that the same set of symbols and versions is exported from shared libgcc before and after the patch. * config/t-hardfp (hardfp_exclusions): Document new variable for user to define. (hardfp_func_list): Exclude functions from $(hardfp_exclusions). * config/t-softfp (softfp_extras): Document new variable for user to define. (softfp_func_list): Add functions from $(softfp_extras). * config/rs6000/t-e500v1-fp, config/rs6000/t-e500v2-fp: New files. * config.host (powerpc*-*-linux*): For e500v1, use rs6000/t-e500v1-fp and t-hardfp; do not use t-softfp-sfdf and t-softfp-excl. For e500v2, use t-hardfp-sfdf, rs6000/t-e500v2-fp and t-hardfp; do not use t-softfp-sfdf and t-softfp-excl. From-SVN: r216835
2014-10-29decl.c, [...]: Remove redundant enum from machine_mode.Richard Sandiford326-5646/+5782
gcc/ada/ * gcc-interface/decl.c, gcc-interface/gigi.h, gcc-interface/misc.c, gcc-interface/trans.c, gcc-interface/utils.c, gcc-interface/utils2.c: Remove redundant enum from machine_mode. gcc/c-family/ * c-common.c, c-common.h, c-cppbuiltin.c, c-lex.c: Remove redundant enum from machine_mode. gcc/c/ * c-decl.c, c-tree.h, c-typeck.c: Remove redundant enum from machine_mode. gcc/cp/ * constexpr.c: Remove redundant enum from machine_mode. gcc/fortran/ * trans-types.c, trans-types.h: Remove redundant enum from machine_mode. gcc/go/ * go-lang.c: Remove redundant enum from machine_mode. gcc/java/ * builtins.c, java-tree.h, typeck.c: Remove redundant enum from machine_mode. gcc/lto/ * lto-lang.c: Remove redundant enum from machine_mode. gcc/ * addresses.h, alias.c, asan.c, auto-inc-dec.c, bt-load.c, builtins.c, builtins.h, caller-save.c, calls.c, calls.h, cfgexpand.c, cfgloop.h, cfgrtl.c, combine.c, compare-elim.c, config/aarch64/aarch64-builtins.c, config/aarch64/aarch64-protos.h, config/aarch64/aarch64-simd.md, config/aarch64/aarch64.c, config/aarch64/aarch64.h, config/aarch64/aarch64.md, config/alpha/alpha-protos.h, config/alpha/alpha.c, config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h, config/arc/predicates.md, config/arm/aarch-common-protos.h, config/arm/aarch-common.c, config/arm/arm-protos.h, config/arm/arm.c, config/arm/arm.h, config/arm/arm.md, config/arm/neon.md, config/arm/thumb2.md, config/avr/avr-log.c, config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.md, config/bfin/bfin-protos.h, config/bfin/bfin.c, config/c6x/c6x-protos.h, config/c6x/c6x.c, config/c6x/c6x.md, config/cr16/cr16-protos.h, config/cr16/cr16.c, config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.md, config/darwin-protos.h, config/darwin.c, config/epiphany/epiphany-protos.h, config/epiphany/epiphany.c, config/epiphany/epiphany.md, config/fr30/fr30.c, config/frv/frv-protos.h, config/frv/frv.c, config/frv/predicates.md, config/h8300/h8300-protos.h, config/h8300/h8300.c, config/i386/i386-builtin-types.awk, config/i386/i386-protos.h, config/i386/i386.c, config/i386/i386.md, config/i386/predicates.md, config/i386/sse.md, config/i386/sync.md, config/ia64/ia64-protos.h, config/ia64/ia64.c, config/iq2000/iq2000-protos.h, config/iq2000/iq2000.c, config/iq2000/iq2000.md, config/lm32/lm32-protos.h, config/lm32/lm32.c, config/m32c/m32c-protos.h, config/m32c/m32c.c, config/m32r/m32r-protos.h, config/m32r/m32r.c, config/m68k/m68k-protos.h, config/m68k/m68k.c, config/mcore/mcore-protos.h, config/mcore/mcore.c, config/mcore/mcore.md, config/mep/mep-protos.h, config/mep/mep.c, config/microblaze/microblaze-protos.h, config/microblaze/microblaze.c, config/mips/mips-protos.h, config/mips/mips.c, config/mmix/mmix-protos.h, config/mmix/mmix.c, config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c, config/moxie/moxie.c, config/msp430/msp430-protos.h, config/msp430/msp430.c, config/nds32/nds32-cost.c, config/nds32/nds32-intrinsic.c, config/nds32/nds32-md-auxiliary.c, config/nds32/nds32-protos.h, config/nds32/nds32.c, config/nios2/nios2-protos.h, config/nios2/nios2.c, config/pa/pa-protos.h, config/pa/pa.c, config/pdp11/pdp11-protos.h, config/pdp11/pdp11.c, config/rl78/rl78-protos.h, config/rl78/rl78.c, config/rs6000/altivec.md, config/rs6000/rs6000-c.c, config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c, config/rs6000/rs6000.h, config/rx/rx-protos.h, config/rx/rx.c, config/s390/predicates.md, config/s390/s390-protos.h, config/s390/s390.c, config/s390/s390.h, config/s390/s390.md, config/sh/predicates.md, config/sh/sh-protos.h, config/sh/sh.c, config/sh/sh.md, config/sparc/predicates.md, config/sparc/sparc-protos.h, config/sparc/sparc.c, config/sparc/sparc.md, config/spu/spu-protos.h, config/spu/spu.c, config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c, config/tilegx/tilegx-protos.h, config/tilegx/tilegx.c, config/tilegx/tilegx.md, config/tilepro/tilepro-protos.h, config/tilepro/tilepro.c, config/v850/v850-protos.h, config/v850/v850.c, config/v850/v850.md, config/vax/vax-protos.h, config/vax/vax.c, config/vms/vms-c.c, config/xtensa/xtensa-protos.h, config/xtensa/xtensa.c, coverage.c, cprop.c, cse.c, cselib.c, cselib.h, dbxout.c, ddg.c, df-problems.c, dfp.c, dfp.h, doc/md.texi, doc/rtl.texi, doc/tm.texi, doc/tm.texi.in, dojump.c, dse.c, dwarf2cfi.c, dwarf2out.c, dwarf2out.h, emit-rtl.c, emit-rtl.h, except.c, explow.c, expmed.c, expmed.h, expr.c, expr.h, final.c, fixed-value.c, fixed-value.h, fold-const.c, function.c, function.h, fwprop.c, gcse.c, gengenrtl.c, genmodes.c, genopinit.c, genoutput.c, genpreds.c, genrecog.c, gensupport.c, gimple-ssa-strength-reduction.c, graphite-clast-to-gimple.c, haifa-sched.c, hooks.c, hooks.h, ifcvt.c, internal-fn.c, ira-build.c, ira-color.c, ira-conflicts.c, ira-costs.c, ira-emit.c, ira-int.h, ira-lives.c, ira.c, ira.h, jump.c, langhooks.h, libfuncs.h, lists.c, loop-doloop.c, loop-invariant.c, loop-iv.c, loop-unroll.c, lower-subreg.c, lower-subreg.h, lra-assigns.c, lra-constraints.c, lra-eliminations.c, lra-int.h, lra-lives.c, lra-spills.c, lra.c, lra.h, machmode.h, omp-low.c, optabs.c, optabs.h, output.h, postreload.c, print-tree.c, read-rtl.c, real.c, real.h, recog.c, recog.h, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c, regs.h, reload.c, reload.h, reload1.c, rtl.c, rtl.h, rtlanal.c, rtlhash.c, rtlhooks-def.h, rtlhooks.c, sched-deps.c, sel-sched-dump.c, sel-sched-ir.c, sel-sched-ir.h, sel-sched.c, simplify-rtx.c, stmt.c, stor-layout.c, stor-layout.h, target.def, targhooks.c, targhooks.h, tree-affine.c, tree-call-cdce.c, tree-complex.c, tree-data-ref.c, tree-dfa.c, tree-if-conv.c, tree-inline.c, tree-outof-ssa.c, tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, tree-ssa-loop-ivopts.h, tree-ssa-loop-manip.c, tree-ssa-loop-prefetch.c, tree-ssa-math-opts.c, tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-streamer-in.c, tree-switch-conversion.c, tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c, tree-vect-stmts.c, tree-vrp.c, tree.c, tree.h, tsan.c, ubsan.c, valtrack.c, var-tracking.c, varasm.c: Remove redundant enum from machine_mode. gcc/ * gengtype.c (main): Treat machine_mode as a scalar typedef. * genmodes.c (emit_insn_modes_h): Hide inline functions if USED_FOR_TARGET. From-SVN: r216834
2014-10-29configure.ac: Remove -Werror addition to WARN_FLAGS.Jakub Jelinek5-11/+44
* configure.ac: Remove -Werror addition to WARN_FLAGS. Add ACX_PROG_CC_WARNINGS_ARE_ERRORS and AC_ARG_VAR for GMPINC. * Makefile.am (AM_CPPFLAGS): Add $(GMPINC). (WERROR_FLAG): Remove. (AM_CXXFLAGS): Use $(WERROR) instead of $(WERROR_FLAG). * configure: Regenerated. * Makefile.in: Regenerated. Co-Authored-By: Phil Muldoon <pmuldoon@redhat.com> From-SVN: r216833
2014-10-29Makefile.am (CXXFLAGS, LDFLAGS): Filter out -fsanitize=address.Jakub Jelinek3-11/+54
* Makefile.am (CXXFLAGS, LDFLAGS): Filter out -fsanitize=address. (libiberty_normal, libiberty_noasan, libiberty_pic, libiberty_dep): New variables. (libiberty): Set to -Wc, followed by the first existing noasan/, pic/ or . libiberty.a. (libcc1plugin_la_DEPENDENCIES, libcc1plugin_la_LINK, libcc1_la_DEPENDENCIES, libcc1_la_LINK, LTLDFLAGS): New variables. * Makefile.in: Regenerated. From-SVN: r216832