public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Richard Biener <richard.guenther@gmail.com>
To: Patrick Palka <ppalka@redhat.com>
Cc: gcc-patches@gcc.gnu.org
Subject: Re: [PATCH] don't declare header-defined functions both static and inline
Date: Tue, 31 Jan 2023 08:05:15 +0100	[thread overview]
Message-ID: <CAFiYyc35A3J8hV7k+YYcxefWuLm1PmDJ1NmXSxVrt3n=TTHGfw@mail.gmail.com> (raw)
In-Reply-To: <20230131033707.2597685-1-ppalka@redhat.com>

On Tue, Jan 31, 2023 at 4:39 AM Patrick Palka via Gcc-patches
<gcc-patches@gcc.gnu.org> wrote:
>
> Many functions defined in our headers are declared 'static inline' which
> is a vestige from when GCC's implementation language was C.  But in C++
> the inline keyword is more than just a compiler hint, and is sufficient
> to give the function the intended semantics.  In fact declaring a
> (namespace-scope) function both static and inline is a pessimization
> since static effectively disables the intended definition merging
> behavior that inline provides, and is also a source of (harmless) ODR
> violations when a static inline function gets called from a non-static
> inline one (such as tree_operand_length being called from
> tree_operand_check).
>
> This patch mechanically fixes the vast majority of occurrences of this
> anti-pattern throughout the compiler's headers via the command line
>
>   echo gcc/*.h gcc/*/*.h | xargs sed -i 's/^static inline/inline/g'
>
> Besides fixing the ODR violations, this speeds up stage1 cc1plus by
> about 2% and reduces the size of its text segment by 1.5MB.
>
> Bootstrapped and regtested on x86_64-pc-linux-gnu, would this be OK to
> push now or wait for stage1?

Speeding up and reducing the size of cc1plus improves on continued
regression in this area.  So I'd vote +1 to do this now, let's see what others
think.

Richard.

> gcc/ChangeLog:
>
>         * addresses.h: Mechanically drop 'static' from 'static inline'
>         functions via s/^static inline/inline/g.
>         * asan.h: Likewise.
>         * attribs.h: Likewise.
>         * basic-block.h: Likewise.
>         * bitmap.h: Likewise.
>         * cfghooks.h: Likewise.
>         * cfgloop.h: Likewise.
>         * cgraph.h: Likewise.
>         * cselib.h: Likewise.
>         * data-streamer.h: Likewise.
>         * debug.h: Likewise.
>         * df.h: Likewise.
>         * diagnostic.h: Likewise.
>         * dominance.h: Likewise.
>         * dumpfile.h: Likewise.
>         * emit-rtl.h: Likewise.
>         * except.h: Likewise.
>         * expmed.h: Likewise.
>         * expr.h: Likewise.
>         * fixed-value.h: Likewise.
>         * gengtype.h: Likewise.
>         * gimple-expr.h: Likewise.
>         * gimple-iterator.h: Likewise.
>         * gimple-predict.h: Likewise.
>         * gimple-range-fold.h: Likewise.
>         * gimple-ssa.h: Likewise.
>         * gimple.h: Likewise.
>         * graphite.h: Likewise.
>         * hard-reg-set.h: Likewise.
>         * hash-map.h: Likewise.
>         * hash-set.h: Likewise.
>         * hash-table.h: Likewise.
>         * hwint.h: Likewise.
>         * input.h: Likewise.
>         * insn-addr.h: Likewise.
>         * internal-fn.h: Likewise.
>         * ipa-fnsummary.h: Likewise.
>         * ipa-icf-gimple.h: Likewise.
>         * ipa-inline.h: Likewise.
>         * ipa-modref.h: Likewise.
>         * ipa-prop.h: Likewise.
>         * ira-int.h: Likewise.
>         * ira.h: Likewise.
>         * lra-int.h: Likewise.
>         * lra.h: Likewise.
>         * lto-streamer.h: Likewise.
>         * memmodel.h: Likewise.
>         * omp-general.h: Likewise.
>         * optabs-query.h: Likewise.
>         * optabs.h: Likewise.
>         * plugin.h: Likewise.
>         * pretty-print.h: Likewise.
>         * range.h: Likewise.
>         * read-md.h: Likewise.
>         * recog.h: Likewise.
>         * regs.h: Likewise.
>         * rtl-iter.h: Likewise.
>         * rtl.h: Likewise.
>         * sbitmap.h: Likewise.
>         * sched-int.h: Likewise.
>         * sel-sched-ir.h: Likewise.
>         * sese.h: Likewise.
>         * sparseset.h: Likewise.
>         * ssa-iterators.h: Likewise.
>         * system.h: Likewise.
>         * target-globals.h: Likewise.
>         * target.h: Likewise.
>         * timevar.h: Likewise.
>         * tree-chrec.h: Likewise.
>         * tree-data-ref.h: Likewise.
>         * tree-iterator.h: Likewise.
>         * tree-outof-ssa.h: Likewise.
>         * tree-phinodes.h: Likewise.
>         * tree-scalar-evolution.h: Likewise.
>         * tree-sra.h: Likewise.
>         * tree-ssa-alias.h: Likewise.
>         * tree-ssa-live.h: Likewise.
>         * tree-ssa-loop-manip.h: Likewise.
>         * tree-ssa-loop.h: Likewise.
>         * tree-ssa-operands.h: Likewise.
>         * tree-ssa-propagate.h: Likewise.
>         * tree-ssa-sccvn.h: Likewise.
>         * tree-ssa.h: Likewise.
>         * tree-ssanames.h: Likewise.
>         * tree-streamer.h: Likewise.
>         * tree-switch-conversion.h: Likewise.
>         * tree-vectorizer.h: Likewise.
>         * tree.h: Likewise.
>         * wide-int.h: Likewise.
>
> gcc/c-family/ChangeLog:
>
>         * c-common.h: Mechanically drop static from static inline
>         functions via s/^static inline/inline/g.
>
> gcc/c/ChangeLog:
>
>         * c-parser.h: Mechanically drop static from static inline
>         functions via s/^static inline/inline/g.
>
> gcc/cp/ChangeLog:
>
>         * cp-tree.h: Mechanically drop static from static inline
>         functions via s/^static inline/inline/g.
>
> gcc/fortran/ChangeLog:
>
>         * gfortran.h: Mechanically drop static from static inline
>         functions via s/^static inline/inline/g.
>
> gcc/jit/ChangeLog:
>
>         * jit-dejagnu.h: Mechanically drop static from static inline
>         functions via s/^static inline/inline/g.
>         * jit-recording.h: Likewise.
>
> gcc/objc/ChangeLog:
>
>         * objc-act.h: Mechanically drop static from static inline
>         functions via s/^static inline/inline/g.
>         * objc-map.h: Likewise.
> ---
>  gcc/addresses.h              |    6 +-
>  gcc/asan.h                   |   14 +-
>  gcc/attribs.h                |   16 +-
>  gcc/basic-block.h            |   54 +-
>  gcc/bitmap.h                 |   20 +-
>  gcc/c-family/c-common.h      |    2 +-
>  gcc/c/c-parser.h             |    6 +-
>  gcc/cfghooks.h               |    2 +-
>  gcc/cfgloop.h                |   36 +-
>  gcc/cgraph.h                 |    6 +-
>  gcc/cp/cp-tree.h             |    2 +-
>  gcc/cselib.h                 |    4 +-
>  gcc/data-streamer.h          |   30 +-
>  gcc/debug.h                  |    2 +-
>  gcc/df.h                     |   26 +-
>  gcc/diagnostic.h             |   12 +-
>  gcc/dominance.h              |    2 +-
>  gcc/dumpfile.h               |   16 +-
>  gcc/emit-rtl.h               |   14 +-
>  gcc/except.h                 |    2 +-
>  gcc/expmed.h                 |  102 ++--
>  gcc/expr.h                   |   14 +-
>  gcc/fixed-value.h            |    2 +-
>  gcc/fortran/gfortran.h       |    4 +-
>  gcc/gengtype.h               |   12 +-
>  gcc/gimple-expr.h            |   18 +-
>  gcc/gimple-iterator.h        |   48 +-
>  gcc/gimple-predict.h         |   10 +-
>  gcc/gimple-range-fold.h      |    6 +-
>  gcc/gimple-ssa.h             |   14 +-
>  gcc/gimple.h                 | 1026 +++++++++++++++++-----------------
>  gcc/graphite.h               |   24 +-
>  gcc/hard-reg-set.h           |   18 +-
>  gcc/hash-map.h               |    8 +-
>  gcc/hash-set.h               |    6 +-
>  gcc/hash-table.h             |    6 +-
>  gcc/hwint.h                  |   26 +-
>  gcc/input.h                  |   12 +-
>  gcc/insn-addr.h              |    2 +-
>  gcc/internal-fn.h            |    6 +-
>  gcc/ipa-fnsummary.h          |    2 +-
>  gcc/ipa-icf-gimple.h         |    6 +-
>  gcc/ipa-inline.h             |   10 +-
>  gcc/ipa-modref.h             |    2 +-
>  gcc/ipa-prop.h               |   70 +--
>  gcc/ira-int.h                |   50 +-
>  gcc/ira.h                    |    2 +-
>  gcc/jit/jit-dejagnu.h        |   16 +-
>  gcc/jit/jit-recording.h      |    2 +-
>  gcc/lra-int.h                |   14 +-
>  gcc/lra.h                    |    2 +-
>  gcc/lto-streamer.h           |   54 +-
>  gcc/memmodel.h               |   18 +-
>  gcc/objc/objc-act.h          |    6 +-
>  gcc/objc/objc-map.h          |   12 +-
>  gcc/omp-general.h            |    2 +-
>  gcc/optabs-query.h           |    8 +-
>  gcc/optabs.h                 |   14 +-
>  gcc/plugin.h                 |    2 +-
>  gcc/pretty-print.h           |   10 +-
>  gcc/range.h                  |    6 +-
>  gcc/read-md.h                |    4 +-
>  gcc/recog.h                  |    8 +-
>  gcc/regs.h                   |   22 +-
>  gcc/rtl-iter.h               |    2 +-
>  gcc/rtl.h                    |   34 +-
>  gcc/sbitmap.h                |   16 +-
>  gcc/sched-int.h              |    8 +-
>  gcc/sel-sched-ir.h           |   48 +-
>  gcc/sese.h                   |   30 +-
>  gcc/sparseset.h              |   22 +-
>  gcc/ssa-iterators.h          |   86 +--
>  gcc/system.h                 |    6 +-
>  gcc/target-globals.h         |    2 +-
>  gcc/target.h                 |    6 +-
>  gcc/timevar.h                |    4 +-
>  gcc/tree-chrec.h             |   22 +-
>  gcc/tree-data-ref.h          |   24 +-
>  gcc/tree-iterator.h          |   16 +-
>  gcc/tree-outof-ssa.h         |    4 +-
>  gcc/tree-phinodes.h          |    4 +-
>  gcc/tree-scalar-evolution.h  |    6 +-
>  gcc/tree-sra.h               |    2 +-
>  gcc/tree-ssa-alias.h         |    2 +-
>  gcc/tree-ssa-live.h          |   24 +-
>  gcc/tree-ssa-loop-manip.h    |    2 +-
>  gcc/tree-ssa-loop.h          |    2 +-
>  gcc/tree-ssa-operands.h      |    4 +-
>  gcc/tree-ssa-propagate.h     |    4 +-
>  gcc/tree-ssa-sccvn.h         |   10 +-
>  gcc/tree-ssa.h               |   12 +-
>  gcc/tree-ssanames.h          |   10 +-
>  gcc/tree-streamer.h          |    8 +-
>  gcc/tree-switch-conversion.h |    2 +-
>  gcc/tree-vectorizer.h        |   64 +--
>  gcc/tree.h                   |   88 +--
>  gcc/wide-int.h               |    2 +-
>  97 files changed, 1277 insertions(+), 1277 deletions(-)
>
> diff --git a/gcc/addresses.h b/gcc/addresses.h
> index 05a2401730d..3519c241c6d 100644
> --- a/gcc/addresses.h
> +++ b/gcc/addresses.h
> @@ -24,7 +24,7 @@ along with GCC; see the file COPYING3.  If not see
>  #ifndef GCC_ADDRESSES_H
>  #define GCC_ADDRESSES_H
>
> -static inline enum reg_class
> +inline enum reg_class
>  base_reg_class (machine_mode mode ATTRIBUTE_UNUSED,
>                 addr_space_t as ATTRIBUTE_UNUSED,
>                 enum rtx_code outer_code ATTRIBUTE_UNUSED,
> @@ -51,7 +51,7 @@ base_reg_class (machine_mode mode ATTRIBUTE_UNUSED,
>     REGNO_OK_FOR_BASE_P.
>     Arguments as for the REGNO_MODE_CODE_OK_FOR_BASE_P macro.  */
>
> -static inline bool
> +inline bool
>  ok_for_base_p_1 (unsigned regno ATTRIBUTE_UNUSED,
>                  machine_mode mode ATTRIBUTE_UNUSED,
>                  addr_space_t as ATTRIBUTE_UNUSED,
> @@ -77,7 +77,7 @@ ok_for_base_p_1 (unsigned regno ATTRIBUTE_UNUSED,
>  /* Wrapper around ok_for_base_p_1, for use after register allocation is
>     complete.  Arguments as for the called function.  */
>
> -static inline bool
> +inline bool
>  regno_ok_for_base_p (unsigned regno, machine_mode mode, addr_space_t as,
>                      enum rtx_code outer_code, enum rtx_code index_code)
>  {
> diff --git a/gcc/asan.h b/gcc/asan.h
> index 902e93b848a..f047bbc1040 100644
> --- a/gcc/asan.h
> +++ b/gcc/asan.h
> @@ -139,7 +139,7 @@ extern bool asan_mark_p (gimple *stmt, enum asan_mark_flags flag);
>  /* Return the size of padding needed to insert after a protected
>     decl of SIZE.  */
>
> -static inline unsigned int
> +inline unsigned int
>  asan_red_zone_size (unsigned int size)
>  {
>    unsigned int c = size & (ASAN_RED_ZONE_SIZE - 1);
> @@ -149,7 +149,7 @@ asan_red_zone_size (unsigned int size)
>  /* Return how much a stack variable occupis on a stack
>     including a space for red zone.  */
>
> -static inline unsigned HOST_WIDE_INT
> +inline unsigned HOST_WIDE_INT
>  asan_var_and_redzone_size (unsigned HOST_WIDE_INT size)
>  {
>    if (size <= 4)
> @@ -181,7 +181,7 @@ extern hash_set<tree> *asan_handled_variables;
>  /* Return TRUE if builtin with given FCODE will be intercepted by
>     libasan.  */
>
> -static inline bool
> +inline bool
>  asan_intercepted_p (enum built_in_function fcode)
>  {
>    if (hwasan_sanitize_p ())
> @@ -212,7 +212,7 @@ asan_intercepted_p (enum built_in_function fcode)
>
>  /* Return TRUE if we should instrument for use-after-scope sanity checking.  */
>
> -static inline bool
> +inline bool
>  asan_sanitize_use_after_scope (void)
>  {
>    return (flag_sanitize_address_use_after_scope
> @@ -221,7 +221,7 @@ asan_sanitize_use_after_scope (void)
>
>  /* Return true if DECL should be guarded on the stack.  */
>
> -static inline bool
> +inline bool
>  asan_protect_stack_decl (tree decl)
>  {
>    return DECL_P (decl)
> @@ -232,7 +232,7 @@ asan_protect_stack_decl (tree decl)
>  /* Return true when flag_sanitize & FLAG is non-zero.  If FN is non-null,
>     remove all flags mentioned in "no_sanitize" of DECL_ATTRIBUTES.  */
>
> -static inline bool
> +inline bool
>  sanitize_flags_p (unsigned int flag, const_tree fn = current_function_decl)
>  {
>    unsigned int result_flags = flag_sanitize & flag;
> @@ -251,7 +251,7 @@ sanitize_flags_p (unsigned int flag, const_tree fn = current_function_decl)
>
>  /* Return true when coverage sanitization should happend for FN function.  */
>
> -static inline bool
> +inline bool
>  sanitize_coverage_p (const_tree fn = current_function_decl)
>  {
>    return (flag_sanitize_coverage
> diff --git a/gcc/attribs.h b/gcc/attribs.h
> index 140e70b64e0..84a43658a70 100644
> --- a/gcc/attribs.h
> +++ b/gcc/attribs.h
> @@ -148,7 +148,7 @@ canonicalize_attr_name (const char *&s, T &l)
>  /* For a given IDENTIFIER_NODE, strip leading and trailing '_' characters
>     so that we have a canonical form of attribute names.  */
>
> -static inline tree
> +inline tree
>  canonicalize_attr_name (tree attr_name)
>  {
>    size_t l = IDENTIFIER_LENGTH (attr_name);
> @@ -163,7 +163,7 @@ canonicalize_attr_name (tree attr_name)
>  /* Compare attribute identifiers ATTR1 and ATTR2 with length ATTR1_LEN and
>     ATTR2_LEN.  */
>
> -static inline bool
> +inline bool
>  cmp_attribs (const char *attr1, size_t attr1_len,
>              const char *attr2, size_t attr2_len)
>  {
> @@ -172,7 +172,7 @@ cmp_attribs (const char *attr1, size_t attr1_len,
>
>  /* Compare attribute identifiers ATTR1 and ATTR2.  */
>
> -static inline bool
> +inline bool
>  cmp_attribs (const char *attr1, const char *attr2)
>  {
>    return cmp_attribs (attr1, strlen (attr1), attr2, strlen (attr2));
> @@ -181,7 +181,7 @@ cmp_attribs (const char *attr1, const char *attr2)
>  /* Given an identifier node IDENT and a string ATTR_NAME, return true
>     if the identifier node is a valid attribute name for the string.  */
>
> -static inline bool
> +inline bool
>  is_attribute_p (const char *attr_name, const_tree ident)
>  {
>    return cmp_attribs (attr_name, strlen (attr_name),
> @@ -193,7 +193,7 @@ is_attribute_p (const char *attr_name, const_tree ident)
>     for standard attribute (NULL get_attribute_namespace) or "gnu"
>     namespace.  */
>
> -static inline bool
> +inline bool
>  is_attribute_namespace_p (const char *attr_ns, const_tree attr)
>  {
>    tree ident = get_attribute_namespace (attr);
> @@ -212,7 +212,7 @@ is_attribute_namespace_p (const char *attr_ns, const_tree attr)
>     occurrences are wanted.  ATTR_NAME must be in the form 'text' (not
>     '__text__').  */
>
> -static inline tree
> +inline tree
>  lookup_attribute (const char *attr_name, tree list)
>  {
>    if (CHECKING_P && attr_name[0] != '_')
> @@ -236,7 +236,7 @@ lookup_attribute (const char *attr_name, tree list)
>  /* Similar to lookup_attribute, but also match the attribute namespace.
>     ATTR_NS "" stands for either standard attribute or "gnu" namespace.  */
>
> -static inline tree
> +inline tree
>  lookup_attribute (const char *attr_ns, const char *attr_name, tree list)
>  {
>    if (CHECKING_P && attr_name[0] != '_')
> @@ -269,7 +269,7 @@ lookup_attribute (const char *attr_ns, const char *attr_name, tree list)
>     starts with ATTR_NAME.  ATTR_NAME must be in the form 'text' (not
>     '__text__').  */
>
> -static inline tree
> +inline tree
>  lookup_attribute_by_prefix (const char *attr_name, tree list)
>  {
>    gcc_checking_assert (attr_name[0] != '_');
> diff --git a/gcc/basic-block.h b/gcc/basic-block.h
> index 7c06a7db45d..29191e56720 100644
> --- a/gcc/basic-block.h
> +++ b/gcc/basic-block.h
> @@ -309,7 +309,7 @@ enum cfg_bb_flags
>
>  /* Returns true if BB has precisely one successor.  */
>
> -static inline bool
> +inline bool
>  single_succ_p (const_basic_block bb)
>  {
>    return EDGE_COUNT (bb->succs) == 1;
> @@ -317,7 +317,7 @@ single_succ_p (const_basic_block bb)
>
>  /* Returns true if BB has precisely one predecessor.  */
>
> -static inline bool
> +inline bool
>  single_pred_p (const_basic_block bb)
>  {
>    return EDGE_COUNT (bb->preds) == 1;
> @@ -326,7 +326,7 @@ single_pred_p (const_basic_block bb)
>  /* Returns the single successor edge of basic block BB.  Aborts if
>     BB does not have exactly one successor.  */
>
> -static inline edge
> +inline edge
>  single_succ_edge (const_basic_block bb)
>  {
>    gcc_checking_assert (single_succ_p (bb));
> @@ -336,7 +336,7 @@ single_succ_edge (const_basic_block bb)
>  /* Returns the single predecessor edge of basic block BB.  Aborts
>     if BB does not have exactly one predecessor.  */
>
> -static inline edge
> +inline edge
>  single_pred_edge (const_basic_block bb)
>  {
>    gcc_checking_assert (single_pred_p (bb));
> @@ -346,7 +346,7 @@ single_pred_edge (const_basic_block bb)
>  /* Returns the single successor block of basic block BB.  Aborts
>     if BB does not have exactly one successor.  */
>
> -static inline basic_block
> +inline basic_block
>  single_succ (const_basic_block bb)
>  {
>    return single_succ_edge (bb)->dest;
> @@ -355,7 +355,7 @@ single_succ (const_basic_block bb)
>  /* Returns the single predecessor block of basic block BB.  Aborts
>     if BB does not have exactly one predecessor.*/
>
> -static inline basic_block
> +inline basic_block
>  single_pred (const_basic_block bb)
>  {
>    return single_pred_edge (bb)->src;
> @@ -368,7 +368,7 @@ struct edge_iterator {
>    vec<edge, va_gc> **container;
>  };
>
> -static inline vec<edge, va_gc> *
> +inline vec<edge, va_gc> *
>  ei_container (edge_iterator i)
>  {
>    gcc_checking_assert (i.container);
> @@ -379,7 +379,7 @@ ei_container (edge_iterator i)
>  #define ei_last(iter) ei_last_1 (&(iter))
>
>  /* Return an iterator pointing to the start of an edge vector.  */
> -static inline edge_iterator
> +inline edge_iterator
>  ei_start_1 (vec<edge, va_gc> **ev)
>  {
>    edge_iterator i;
> @@ -392,7 +392,7 @@ ei_start_1 (vec<edge, va_gc> **ev)
>
>  /* Return an iterator pointing to the last element of an edge
>     vector.  */
> -static inline edge_iterator
> +inline edge_iterator
>  ei_last_1 (vec<edge, va_gc> **ev)
>  {
>    edge_iterator i;
> @@ -404,7 +404,7 @@ ei_last_1 (vec<edge, va_gc> **ev)
>  }
>
>  /* Is the iterator `i' at the end of the sequence?  */
> -static inline bool
> +inline bool
>  ei_end_p (edge_iterator i)
>  {
>    return (i.index == EDGE_COUNT (ei_container (i)));
> @@ -412,14 +412,14 @@ ei_end_p (edge_iterator i)
>
>  /* Is the iterator `i' at one position before the end of the
>     sequence?  */
> -static inline bool
> +inline bool
>  ei_one_before_end_p (edge_iterator i)
>  {
>    return (i.index + 1 == EDGE_COUNT (ei_container (i)));
>  }
>
>  /* Advance the iterator to the next element.  */
> -static inline void
> +inline void
>  ei_next (edge_iterator *i)
>  {
>    gcc_checking_assert (i->index < EDGE_COUNT (ei_container (*i)));
> @@ -427,7 +427,7 @@ ei_next (edge_iterator *i)
>  }
>
>  /* Move the iterator to the previous element.  */
> -static inline void
> +inline void
>  ei_prev (edge_iterator *i)
>  {
>    gcc_checking_assert (i->index > 0);
> @@ -435,7 +435,7 @@ ei_prev (edge_iterator *i)
>  }
>
>  /* Return the edge pointed to by the iterator `i'.  */
> -static inline edge
> +inline edge
>  ei_edge (edge_iterator i)
>  {
>    return EDGE_I (ei_container (i), i.index);
> @@ -444,7 +444,7 @@ ei_edge (edge_iterator i)
>  /* Return an edge pointed to by the iterator.  Do it safely so that
>     NULL is returned when the iterator is pointing at the end of the
>     sequence.  */
> -static inline edge
> +inline edge
>  ei_safe_edge (edge_iterator i)
>  {
>    return !ei_end_p (i) ? ei_edge (i) : NULL;
> @@ -454,7 +454,7 @@ ei_safe_edge (edge_iterator i)
>     *Edge P is set to the next edge if we are to continue to iterate
>     and NULL otherwise.  */
>
> -static inline bool
> +inline bool
>  ei_cond (edge_iterator ei, edge *p)
>  {
>    if (!ei_end_p (ei))
> @@ -505,14 +505,14 @@ ei_cond (edge_iterator ei, edge *p)
>
>  /* Return true if BB is in a transaction.  */
>
> -static inline bool
> +inline bool
>  bb_in_transaction (basic_block bb)
>  {
>    return bb->flags & BB_IN_TRANSACTION;
>  }
>
>  /* Return true when one of the predecessor edges of BB is marked with EDGE_EH.  */
> -static inline bool
> +inline bool
>  bb_has_eh_pred (basic_block bb)
>  {
>    edge e;
> @@ -527,7 +527,7 @@ bb_has_eh_pred (basic_block bb)
>  }
>
>  /* Return true when one of the predecessor edges of BB is marked with EDGE_ABNORMAL.  */
> -static inline bool
> +inline bool
>  bb_has_abnormal_pred (basic_block bb)
>  {
>    edge e;
> @@ -542,7 +542,7 @@ bb_has_abnormal_pred (basic_block bb)
>  }
>
>  /* Return the fallthru edge in EDGES if it exists, NULL otherwise.  */
> -static inline edge
> +inline edge
>  find_fallthru_edge (vec<edge, va_gc> *edges)
>  {
>    edge e;
> @@ -557,7 +557,7 @@ find_fallthru_edge (vec<edge, va_gc> *edges)
>
>  /* Check tha probability is sane.  */
>
> -static inline void
> +inline void
>  check_probability (int prob)
>  {
>    gcc_checking_assert (prob >= 0 && prob <= REG_BR_PROB_BASE);
> @@ -566,7 +566,7 @@ check_probability (int prob)
>  /* Given PROB1 and PROB2, return PROB1*PROB2/REG_BR_PROB_BASE.
>     Used to combine BB probabilities.  */
>
> -static inline int
> +inline int
>  combine_probabilities (int prob1, int prob2)
>  {
>    check_probability (prob1);
> @@ -578,7 +578,7 @@ combine_probabilities (int prob1, int prob2)
>     interface when potentially scaling up, so that SCALE is not
>     constrained to be < REG_BR_PROB_BASE.  */
>
> -static inline gcov_type
> +inline gcov_type
>  apply_scale (gcov_type freq, gcov_type scale)
>  {
>    return RDIV (freq * scale, REG_BR_PROB_BASE);
> @@ -586,7 +586,7 @@ apply_scale (gcov_type freq, gcov_type scale)
>
>  /* Apply probability PROB on frequency or count FREQ.  */
>
> -static inline gcov_type
> +inline gcov_type
>  apply_probability (gcov_type freq, int prob)
>  {
>    check_probability (prob);
> @@ -595,7 +595,7 @@ apply_probability (gcov_type freq, int prob)
>
>  /* Return inverse probability for PROB.  */
>
> -static inline int
> +inline int
>  inverse_probability (int prob1)
>  {
>    check_probability (prob1);
> @@ -604,7 +604,7 @@ inverse_probability (int prob1)
>
>  /* Return true if BB has at least one abnormal outgoing edge.  */
>
> -static inline bool
> +inline bool
>  has_abnormal_or_eh_outgoing_edge_p (basic_block bb)
>  {
>    edge e;
> @@ -620,7 +620,7 @@ has_abnormal_or_eh_outgoing_edge_p (basic_block bb)
>  /* Return true when one of the predecessor edges of BB is marked with
>     EDGE_ABNORMAL_CALL or EDGE_EH.  */
>
> -static inline bool
> +inline bool
>  has_abnormal_call_or_eh_pred_edge_p (basic_block bb)
>  {
>    edge e;
> diff --git a/gcc/bitmap.h b/gcc/bitmap.h
> index a439f933867..43337d2e9d9 100644
> --- a/gcc/bitmap.h
> +++ b/gcc/bitmap.h
> @@ -461,7 +461,7 @@ extern void dump_bitmap_statistics (void);
>  /* Initialize a bitmap header.  OBSTACK indicates the bitmap obstack
>     to allocate from, NULL for GC'd bitmap.  */
>
> -static inline void
> +inline void
>  bitmap_initialize (bitmap head, bitmap_obstack *obstack CXX_MEM_STAT_INFO)
>  {
>    head->first = head->current = NULL;
> @@ -476,7 +476,7 @@ bitmap_initialize (bitmap head, bitmap_obstack *obstack CXX_MEM_STAT_INFO)
>  /* Release a bitmap (but not its head).  This is suitable for pairing with
>     bitmap_initialize.  */
>
> -static inline void
> +inline void
>  bitmap_release (bitmap head)
>  {
>    bitmap_clear (head);
> @@ -532,7 +532,7 @@ struct bitmap_iterator
>  /* Initialize a single bitmap iterator.  START_BIT is the first bit to
>     iterate from.  */
>
> -static inline void
> +inline void
>  bmp_iter_set_init (bitmap_iterator *bi, const_bitmap map,
>                    unsigned start_bit, unsigned *bit_no)
>  {
> @@ -576,7 +576,7 @@ bmp_iter_set_init (bitmap_iterator *bi, const_bitmap map,
>  /* Initialize an iterator to iterate over the intersection of two
>     bitmaps.  START_BIT is the bit to commence from.  */
>
> -static inline void
> +inline void
>  bmp_iter_and_init (bitmap_iterator *bi, const_bitmap map1, const_bitmap map2,
>                    unsigned start_bit, unsigned *bit_no)
>  {
> @@ -645,7 +645,7 @@ bmp_iter_and_init (bitmap_iterator *bi, const_bitmap map1, const_bitmap map2,
>
>  /* Initialize an iterator to iterate over the bits in MAP1 & ~MAP2.  */
>
> -static inline void
> +inline void
>  bmp_iter_and_compl_init (bitmap_iterator *bi,
>                          const_bitmap map1, const_bitmap map2,
>                          unsigned start_bit, unsigned *bit_no)
> @@ -696,7 +696,7 @@ bmp_iter_and_compl_init (bitmap_iterator *bi,
>  /* Advance to the next bit in BI.  We don't advance to the next
>     nonzero bit yet.  */
>
> -static inline void
> +inline void
>  bmp_iter_next (bitmap_iterator *bi, unsigned *bit_no)
>  {
>    bi->bits >>= 1;
> @@ -705,7 +705,7 @@ bmp_iter_next (bitmap_iterator *bi, unsigned *bit_no)
>
>  /* Advance to first set bit in BI.  */
>
> -static inline void
> +inline void
>  bmp_iter_next_bit (bitmap_iterator * bi, unsigned *bit_no)
>  {
>  #if (GCC_VERSION >= 3004)
> @@ -728,7 +728,7 @@ bmp_iter_next_bit (bitmap_iterator * bi, unsigned *bit_no)
>     already advanced past the just iterated bit.  Return true if there
>     is a bit to iterate.  */
>
> -static inline bool
> +inline bool
>  bmp_iter_set (bitmap_iterator *bi, unsigned *bit_no)
>  {
>    /* If our current word is nonzero, it contains the bit we want.  */
> @@ -774,7 +774,7 @@ bmp_iter_set (bitmap_iterator *bi, unsigned *bit_no)
>     bitmaps.  We will have already advanced past the just iterated bit.
>     Return true if there is a bit to iterate.  */
>
> -static inline bool
> +inline bool
>  bmp_iter_and (bitmap_iterator *bi, unsigned *bit_no)
>  {
>    /* If our current word is nonzero, it contains the bit we want.  */
> @@ -843,7 +843,7 @@ bmp_iter_and (bitmap_iterator *bi, unsigned *bit_no)
>     complemented bitmaps.  We will have already advanced past the just
>     iterated bit.  */
>
> -static inline bool
> +inline bool
>  bmp_iter_and_compl (bitmap_iterator *bi, unsigned *bit_no)
>  {
>    /* If our current word is nonzero, it contains the bit we want.  */
> diff --git a/gcc/c-family/c-common.h b/gcc/c-family/c-common.h
> index bb6271d4a83..259c4a32d30 100644
> --- a/gcc/c-family/c-common.h
> +++ b/gcc/c-family/c-common.h
> @@ -1326,7 +1326,7 @@ extern const struct c_omp_directive *c_omp_categorize_directive (const char *,
>                                                                  const char *);
>
>  /* Return next tree in the chain for chain_next walking of tree nodes.  */
> -static inline tree
> +inline tree
>  c_tree_chain_next (tree t)
>  {
>    /* TREE_CHAIN of a type is TYPE_STUB_DECL, which is different
> diff --git a/gcc/c/c-parser.h b/gcc/c/c-parser.h
> index 56924c0d83e..545f0f4d9eb 100644
> --- a/gcc/c/c-parser.h
> +++ b/gcc/c/c-parser.h
> @@ -161,7 +161,7 @@ extern bool old_style_parameter_scope (void);
>  /* Return true if the next token from PARSER has the indicated
>     TYPE.  */
>
> -static inline bool
> +inline bool
>  c_parser_next_token_is (c_parser *parser, enum cpp_ttype type)
>  {
>    return c_parser_peek_token (parser)->type == type;
> @@ -170,7 +170,7 @@ c_parser_next_token_is (c_parser *parser, enum cpp_ttype type)
>  /* Return true if the next token from PARSER does not have the
>     indicated TYPE.  */
>
> -static inline bool
> +inline bool
>  c_parser_next_token_is_not (c_parser *parser, enum cpp_ttype type)
>  {
>    return !c_parser_next_token_is (parser, type);
> @@ -179,7 +179,7 @@ c_parser_next_token_is_not (c_parser *parser, enum cpp_ttype type)
>  /* Return true if the next token from PARSER is the indicated
>     KEYWORD.  */
>
> -static inline bool
> +inline bool
>  c_parser_next_token_is_keyword (c_parser *parser, enum rid keyword)
>  {
>    return c_parser_peek_token (parser)->keyword == keyword;
> diff --git a/gcc/cfghooks.h b/gcc/cfghooks.h
> index aebd080cf8b..7c87712c8d7 100644
> --- a/gcc/cfghooks.h
> +++ b/gcc/cfghooks.h
> @@ -206,7 +206,7 @@ extern void verify_flow_info (void);
>  /* Check control flow invariants, if internal consistency checks are
>     enabled.  */
>
> -static inline void
> +inline void
>  checking_verify_flow_info (void)
>  {
>    /* TODO: Add a separate option for -fchecking=cfg.  */
> diff --git a/gcc/cfgloop.h b/gcc/cfgloop.h
> index e98ad06f9b5..e7ac2b5f3db 100644
> --- a/gcc/cfgloop.h
> +++ b/gcc/cfgloop.h
> @@ -280,21 +280,21 @@ public:
>  #define LOOP_C_FINITE          (1 << 1)
>
>  /* Set C to the LOOP constraint.  */
> -static inline void
> +inline void
>  loop_constraint_set (class loop *loop, unsigned c)
>  {
>    loop->constraints |= c;
>  }
>
>  /* Clear C from the LOOP constraint.  */
> -static inline void
> +inline void
>  loop_constraint_clear (class loop *loop, unsigned c)
>  {
>    loop->constraints &= ~c;
>  }
>
>  /* Check if C is set in the LOOP constraint.  */
> -static inline bool
> +inline bool
>  loop_constraint_set_p (class loop *loop, unsigned c)
>  {
>    return (loop->constraints & c) == c;
> @@ -508,7 +508,7 @@ extern void iv_analysis_done (void);
>  extern class niter_desc *get_simple_loop_desc (class loop *loop);
>  extern void free_simple_loop_desc (class loop *loop);
>
> -static inline class niter_desc *
> +inline class niter_desc *
>  simple_loop_desc (class loop *loop)
>  {
>    return loop->simple_loop_desc;
> @@ -518,7 +518,7 @@ simple_loop_desc (class loop *loop)
>
>  /* Returns the loop with index NUM from FNs loop tree.  */
>
> -static inline class loop *
> +inline class loop *
>  get_loop (struct function *fn, unsigned num)
>  {
>    return (*loops_for_fn (fn)->larray)[num];
> @@ -526,7 +526,7 @@ get_loop (struct function *fn, unsigned num)
>
>  /* Returns the number of superloops of LOOP.  */
>
> -static inline unsigned
> +inline unsigned
>  loop_depth (const class loop *loop)
>  {
>    return vec_safe_length (loop->superloops);
> @@ -535,7 +535,7 @@ loop_depth (const class loop *loop)
>  /* Returns the immediate superloop of LOOP, or NULL if LOOP is the outermost
>     loop.  */
>
> -static inline class loop *
> +inline class loop *
>  loop_outer (const class loop *loop)
>  {
>    unsigned n = vec_safe_length (loop->superloops);
> @@ -548,7 +548,7 @@ loop_outer (const class loop *loop)
>
>  /* Returns true if LOOP has at least one exit edge.  */
>
> -static inline bool
> +inline bool
>  loop_has_exit_edges (const class loop *loop)
>  {
>    return loop->exits->next->e != NULL;
> @@ -569,7 +569,7 @@ get_loops (struct function *fn)
>  /* Returns the number of loops in FN (including the removed
>     ones and the fake loop that forms the root of the loop tree).  */
>
> -static inline unsigned
> +inline unsigned
>  number_of_loops (struct function *fn)
>  {
>    struct loops *loops = loops_for_fn (fn);
> @@ -582,13 +582,13 @@ number_of_loops (struct function *fn)
>  /* Returns true if state of the loops satisfies all properties
>     described by FLAGS.  */
>
> -static inline bool
> +inline bool
>  loops_state_satisfies_p (function *fn, unsigned flags)
>  {
>    return (loops_for_fn (fn)->state & flags) == flags;
>  }
>
> -static inline bool
> +inline bool
>  loops_state_satisfies_p (unsigned flags)
>  {
>    return loops_state_satisfies_p (cfun, flags);
> @@ -596,13 +596,13 @@ loops_state_satisfies_p (unsigned flags)
>
>  /* Sets FLAGS to the loops state.  */
>
> -static inline void
> +inline void
>  loops_state_set (function *fn, unsigned flags)
>  {
>    loops_for_fn (fn)->state |= flags;
>  }
>
> -static inline void
> +inline void
>  loops_state_set (unsigned flags)
>  {
>    loops_state_set (cfun, flags);
> @@ -610,13 +610,13 @@ loops_state_set (unsigned flags)
>
>  /* Clears FLAGS from the loops state.  */
>
> -static inline void
> +inline void
>  loops_state_clear (function *fn, unsigned flags)
>  {
>    loops_for_fn (fn)->state &= ~flags;
>  }
>
> -static inline void
> +inline void
>  loops_state_clear (unsigned flags)
>  {
>    if (!current_loops)
> @@ -627,7 +627,7 @@ loops_state_clear (unsigned flags)
>  /* Check loop structure invariants, if internal consistency checks are
>     enabled.  */
>
> -static inline void
> +inline void
>  checking_verify_loop_structure (void)
>  {
>    /* VERIFY_LOOP_STRUCTURE essentially asserts that no loops need fixups.
> @@ -897,7 +897,7 @@ extern void move_loop_invariants (void);
>  extern auto_vec<basic_block> get_loop_hot_path (const class loop *loop);
>
>  /* Returns the outermost loop of the loop nest that contains LOOP.*/
> -static inline class loop *
> +inline class loop *
>  loop_outermost (class loop *loop)
>  {
>    unsigned n = vec_safe_length (loop->superloops);
> @@ -919,7 +919,7 @@ extern int bb_loop_depth (const_basic_block);
>
>  /* Converts VAL to widest_int.  */
>
> -static inline widest_int
> +inline widest_int
>  gcov_type_to_wide_int (gcov_type val)
>  {
>    HOST_WIDE_INT a[2];
> diff --git a/gcc/cgraph.h b/gcc/cgraph.h
> index 5d3ced1b5d5..b5fc739f1b0 100644
> --- a/gcc/cgraph.h
> +++ b/gcc/cgraph.h
> @@ -2650,7 +2650,7 @@ symtab_node::real_symbol_p (void)
>  /* Return true if DECL should have entry in symbol table if used.
>     Those are functions and static & external variables.  */
>
> -static inline bool
> +inline bool
>  decl_in_symtab_p (const_tree decl)
>  {
>    return (TREE_CODE (decl) == FUNCTION_DECL
> @@ -3323,7 +3323,7 @@ cgraph_edge::frequency ()
>
>
>  /* Return true if the TM_CLONE bit is set for a given FNDECL.  */
> -static inline bool
> +inline bool
>  decl_is_tm_clone (const_tree fndecl)
>  {
>    cgraph_node *n = cgraph_node::get (fndecl);
> @@ -3539,7 +3539,7 @@ ipa_polymorphic_call_context::useless_p () const
>     the name documents the intent.  We require that no GC can occur
>     within the fprintf call.  */
>
> -static inline const char *
> +inline const char *
>  xstrdup_for_dump (const char *transient_str)
>  {
>    return ggc_strdup (transient_str);
> diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h
> index 9f188724cf2..54997a1adf3 100644
> --- a/gcc/cp/cp-tree.h
> +++ b/gcc/cp/cp-tree.h
> @@ -4238,7 +4238,7 @@ more_aggr_init_expr_args_p (const aggr_init_expr_arg_iterator *iter)
>  /* We have an expression tree T that represents a call, either CALL_EXPR
>     or AGGR_INIT_EXPR.  Return a reference to the Nth argument.  */
>
> -static inline tree&
> +inline tree&
>  get_nth_callarg (tree t, int n)
>  {
>    switch (TREE_CODE (t))
> diff --git a/gcc/cselib.h b/gcc/cselib.h
> index 12e54a43d21..e2fa8e8c2c1 100644
> --- a/gcc/cselib.h
> +++ b/gcc/cselib.h
> @@ -113,7 +113,7 @@ extern void dump_cselib_table (FILE *);
>  /* Return the canonical value for VAL, following the equivalence chain
>     towards the earliest (== lowest uid) equivalent value.  */
>
> -static inline cselib_val *
> +inline cselib_val *
>  canonical_cselib_val (cselib_val *val)
>  {
>    cselib_val *canon;
> @@ -131,7 +131,7 @@ canonical_cselib_val (cselib_val *val)
>  /* Return nonzero if we can prove that X and Y contain the same value, taking
>     our gathered information into account.  */
>
> -static inline int
> +inline int
>  rtx_equal_for_cselib_p (rtx x, rtx y)
>  {
>    if (x == y)
> diff --git a/gcc/data-streamer.h b/gcc/data-streamer.h
> index c91c5ab75e8..d8c7e21dad9 100644
> --- a/gcc/data-streamer.h
> +++ b/gcc/data-streamer.h
> @@ -91,7 +91,7 @@ wide_int streamer_read_wide_int (class lto_input_block *);
>  widest_int streamer_read_widest_int (class lto_input_block *);
>
>  /* Returns a new bit-packing context for bit-packing into S.  */
> -static inline struct bitpack_d
> +inline struct bitpack_d
>  bitpack_create (struct lto_output_stream *s)
>  {
>    struct bitpack_d bp;
> @@ -102,7 +102,7 @@ bitpack_create (struct lto_output_stream *s)
>  }
>
>  /* Pack the NBITS bit sized value VAL into the bit-packing context BP.  */
> -static inline void
> +inline void
>  bp_pack_value (struct bitpack_d *bp, bitpack_word_t val, unsigned nbits)
>  {
>    bitpack_word_t word = bp->word;
> @@ -132,7 +132,7 @@ bp_pack_value (struct bitpack_d *bp, bitpack_word_t val, unsigned nbits)
>
>  /* Pack VAL into the bit-packing context BP, using NBITS for each
>     coefficient.  */
> -static inline void
> +inline void
>  bp_pack_poly_value (struct bitpack_d *bp,
>                     const poly_int<NUM_POLY_INT_COEFFS, bitpack_word_t> &val,
>                     unsigned nbits)
> @@ -142,7 +142,7 @@ bp_pack_poly_value (struct bitpack_d *bp,
>  }
>
>  /* Finishes bit-packing of BP.  */
> -static inline void
> +inline void
>  streamer_write_bitpack (struct bitpack_d *bp)
>  {
>    streamer_write_uhwi_stream ((struct lto_output_stream *) bp->stream,
> @@ -152,7 +152,7 @@ streamer_write_bitpack (struct bitpack_d *bp)
>  }
>
>  /* Returns a new bit-packing context for bit-unpacking from IB.  */
> -static inline struct bitpack_d
> +inline struct bitpack_d
>  streamer_read_bitpack (class lto_input_block *ib)
>  {
>    struct bitpack_d bp;
> @@ -163,7 +163,7 @@ streamer_read_bitpack (class lto_input_block *ib)
>  }
>
>  /* Unpacks NBITS bits from the bit-packing context BP and returns them.  */
> -static inline bitpack_word_t
> +inline bitpack_word_t
>  bp_unpack_value (struct bitpack_d *bp, unsigned nbits)
>  {
>    bitpack_word_t mask, val;
> @@ -191,7 +191,7 @@ bp_unpack_value (struct bitpack_d *bp, unsigned nbits)
>
>  /* Unpacks a polynomial value from the bit-packing context BP in which each
>     coefficient has NBITS bits.  */
> -static inline poly_int<NUM_POLY_INT_COEFFS, bitpack_word_t>
> +inline poly_int<NUM_POLY_INT_COEFFS, bitpack_word_t>
>  bp_unpack_poly_value (struct bitpack_d *bp, unsigned nbits)
>  {
>    poly_int_pod<NUM_POLY_INT_COEFFS, bitpack_word_t> x;
> @@ -203,7 +203,7 @@ bp_unpack_poly_value (struct bitpack_d *bp, unsigned nbits)
>
>  /* Write a character to the output block.  */
>
> -static inline void
> +inline void
>  streamer_write_char_stream (struct lto_output_stream *obs, char c)
>  {
>    /* No space left.  */
> @@ -221,7 +221,7 @@ streamer_write_char_stream (struct lto_output_stream *obs, char c)
>
>  /* Read byte from the input block.  */
>
> -static inline unsigned char
> +inline unsigned char
>  streamer_read_uchar (class lto_input_block *ib)
>  {
>    if (ib->p >= ib->len)
> @@ -233,7 +233,7 @@ streamer_read_uchar (class lto_input_block *ib)
>     to be compile time constant.
>     Be host independent, limit range to 31bits.  */
>
> -static inline void
> +inline void
>  streamer_write_hwi_in_range (struct lto_output_stream *obs,
>                                   HOST_WIDE_INT min,
>                                   HOST_WIDE_INT max,
> @@ -251,7 +251,7 @@ streamer_write_hwi_in_range (struct lto_output_stream *obs,
>  /* Input VAL into OBS and verify it is in range MIN...MAX that is supposed
>     to be compile time constant.  PURPOSE is used for error reporting.  */
>
> -static inline HOST_WIDE_INT
> +inline HOST_WIDE_INT
>  streamer_read_hwi_in_range (class lto_input_block *ib,
>                                  const char *purpose,
>                                  HOST_WIDE_INT min,
> @@ -272,7 +272,7 @@ streamer_read_hwi_in_range (class lto_input_block *ib,
>     to be compile time constant.
>     Be host independent, limit range to 31bits.  */
>
> -static inline void
> +inline void
>  bp_pack_int_in_range (struct bitpack_d *bp,
>                       HOST_WIDE_INT min,
>                       HOST_WIDE_INT max,
> @@ -291,7 +291,7 @@ bp_pack_int_in_range (struct bitpack_d *bp,
>  /* Input VAL into BP and verify it is in range MIN...MAX that is supposed
>     to be compile time constant.  PURPOSE is used for error reporting.  */
>
> -static inline HOST_WIDE_INT
> +inline HOST_WIDE_INT
>  bp_unpack_int_in_range (struct bitpack_d *bp,
>                         const char *purpose,
>                         HOST_WIDE_INT min,
> @@ -332,7 +332,7 @@ bp_unpack_int_in_range (struct bitpack_d *bp,
>
>  /* Output the start of a record with TAG to output block OB.  */
>
> -static inline void
> +inline void
>  streamer_write_record_start (struct output_block *ob, enum LTO_tags tag)
>  {
>    streamer_write_enum (ob->main_stream, LTO_tags, LTO_NUM_TAGS, tag);
> @@ -340,7 +340,7 @@ streamer_write_record_start (struct output_block *ob, enum LTO_tags tag)
>
>  /* Return the next tag in the input block IB.  */
>
> -static inline enum LTO_tags
> +inline enum LTO_tags
>  streamer_read_record_start (class lto_input_block *ib)
>  {
>    return streamer_read_enum (ib, LTO_tags, LTO_NUM_TAGS);
> diff --git a/gcc/debug.h b/gcc/debug.h
> index 799d5e316a2..05512bce48c 100644
> --- a/gcc/debug.h
> +++ b/gcc/debug.h
> @@ -270,7 +270,7 @@ extern decl_to_instance_map_t *decl_to_instance_map;
>  /* Allocate decl_to_instance_map with COUNT slots to begin wtih, if it
>   * hasn't been allocated yet.  */
>
> -static inline decl_to_instance_map_t *
> +inline decl_to_instance_map_t *
>  maybe_create_decl_to_instance_map (int count = 13)
>  {
>    if (!decl_to_instance_map)
> diff --git a/gcc/df.h b/gcc/df.h
> index b2d1300f6d4..aec2223591a 100644
> --- a/gcc/df.h
> +++ b/gcc/df.h
> @@ -1097,7 +1097,7 @@ extern void df_scan_verify (void);
>     Public functions access functions for the dataflow problems.
>  ----------------------------------------------------------------------------*/
>
> -static inline struct df_scan_bb_info *
> +inline struct df_scan_bb_info *
>  df_scan_get_bb_info (unsigned int index)
>  {
>    if (index < df_scan->block_info_size)
> @@ -1106,7 +1106,7 @@ df_scan_get_bb_info (unsigned int index)
>      return NULL;
>  }
>
> -static inline class df_rd_bb_info *
> +inline class df_rd_bb_info *
>  df_rd_get_bb_info (unsigned int index)
>  {
>    if (index < df_rd->block_info_size)
> @@ -1115,7 +1115,7 @@ df_rd_get_bb_info (unsigned int index)
>      return NULL;
>  }
>
> -static inline class df_lr_bb_info *
> +inline class df_lr_bb_info *
>  df_lr_get_bb_info (unsigned int index)
>  {
>    if (index < df_lr->block_info_size)
> @@ -1124,7 +1124,7 @@ df_lr_get_bb_info (unsigned int index)
>      return NULL;
>  }
>
> -static inline class df_md_bb_info *
> +inline class df_md_bb_info *
>  df_md_get_bb_info (unsigned int index)
>  {
>    if (index < df_md->block_info_size)
> @@ -1133,7 +1133,7 @@ df_md_get_bb_info (unsigned int index)
>      return NULL;
>  }
>
> -static inline class df_live_bb_info *
> +inline class df_live_bb_info *
>  df_live_get_bb_info (unsigned int index)
>  {
>    if (index < df_live->block_info_size)
> @@ -1142,7 +1142,7 @@ df_live_get_bb_info (unsigned int index)
>      return NULL;
>  }
>
> -static inline class df_word_lr_bb_info *
> +inline class df_word_lr_bb_info *
>  df_word_lr_get_bb_info (unsigned int index)
>  {
>    if (index < df_word_lr->block_info_size)
> @@ -1151,7 +1151,7 @@ df_word_lr_get_bb_info (unsigned int index)
>      return NULL;
>  }
>
> -static inline class df_mir_bb_info *
> +inline class df_mir_bb_info *
>  df_mir_get_bb_info (unsigned int index)
>  {
>    if (index < df_mir->block_info_size)
> @@ -1165,7 +1165,7 @@ df_mir_get_bb_info (unsigned int index)
>     choose different dataflow problems depending on the optimization
>     level.  */
>
> -static inline bitmap
> +inline bitmap
>  df_get_live_out (basic_block bb)
>  {
>    gcc_checking_assert (df_lr);
> @@ -1181,7 +1181,7 @@ df_get_live_out (basic_block bb)
>     choose different dataflow problems depending on the optimization
>     level.  */
>
> -static inline bitmap
> +inline bitmap
>  df_get_live_in (basic_block bb)
>  {
>    gcc_checking_assert (df_lr);
> @@ -1195,7 +1195,7 @@ df_get_live_in (basic_block bb)
>  /* Get basic block info.  */
>  /* Get the artificial defs for a basic block.  */
>
> -static inline df_ref
> +inline df_ref
>  df_get_artificial_defs (unsigned int bb_index)
>  {
>    return df_scan_get_bb_info (bb_index)->artificial_defs;
> @@ -1204,7 +1204,7 @@ df_get_artificial_defs (unsigned int bb_index)
>
>  /* Get the artificial uses for a basic block.  */
>
> -static inline df_ref
> +inline df_ref
>  df_get_artificial_uses (unsigned int bb_index)
>  {
>    return df_scan_get_bb_info (bb_index)->artificial_uses;
> @@ -1213,7 +1213,7 @@ df_get_artificial_uses (unsigned int bb_index)
>  /* If INSN defines exactly one register, return the associated reference,
>     otherwise return null.  */
>
> -static inline df_ref
> +inline df_ref
>  df_single_def (const df_insn_info *info)
>  {
>    df_ref defs = DF_INSN_INFO_DEFS (info);
> @@ -1223,7 +1223,7 @@ df_single_def (const df_insn_info *info)
>  /* If INSN uses exactly one register, return the associated reference,
>     otherwise return null.  */
>
> -static inline df_ref
> +inline df_ref
>  df_single_use (const df_insn_info *info)
>  {
>    df_ref uses = DF_INSN_INFO_USES (info);
> diff --git a/gcc/diagnostic.h b/gcc/diagnostic.h
> index e20f6edfc81..e7390e49554 100644
> --- a/gcc/diagnostic.h
> +++ b/gcc/diagnostic.h
> @@ -416,7 +416,7 @@ struct diagnostic_context
>    diagnostic_client_data_hooks *m_client_data_hooks;
>  };
>
> -static inline void
> +inline void
>  diagnostic_inhibit_notes (diagnostic_context * context)
>  {
>    context->inhibit_notes_p = true;
> @@ -474,7 +474,7 @@ extern diagnostic_context *global_dc;
>  /* Override the option index to be used for reporting a
>     diagnostic.  */
>
> -static inline void
> +inline void
>  diagnostic_override_option_index (diagnostic_info *info, int optidx)
>  {
>    info->option_index = optidx;
> @@ -546,7 +546,7 @@ int get_terminal_width (void);
>  /* Return the location associated to this diagnostic. Parameter WHICH
>     specifies which location. By default, expand the first one.  */
>
> -static inline location_t
> +inline location_t
>  diagnostic_location (const diagnostic_info * diagnostic, int which = 0)
>  {
>    return diagnostic->message.get_location (which);
> @@ -554,7 +554,7 @@ diagnostic_location (const diagnostic_info * diagnostic, int which = 0)
>
>  /* Return the number of locations to be printed in DIAGNOSTIC.  */
>
> -static inline unsigned int
> +inline unsigned int
>  diagnostic_num_locations (const diagnostic_info * diagnostic)
>  {
>    return diagnostic->message.m_richloc->get_num_locations ();
> @@ -564,7 +564,7 @@ diagnostic_num_locations (const diagnostic_info * diagnostic)
>     consistency.  Parameter WHICH specifies which location. By default,
>     expand the first one.  */
>
> -static inline expanded_location
> +inline expanded_location
>  diagnostic_expand_location (const diagnostic_info * diagnostic, int which = 0)
>  {
>    return diagnostic->richloc->get_expanded_location (which);
> @@ -579,7 +579,7 @@ const int CARET_LINE_MARGIN = 10;
>     caret line.  This is used to build a prefix and also to determine
>     whether to print one or two caret lines.  */
>
> -static inline bool
> +inline bool
>  diagnostic_same_line (const diagnostic_context *context,
>                        expanded_location s1, expanded_location s2)
>  {
> diff --git a/gcc/dominance.h b/gcc/dominance.h
> index 3c5a345f478..ddac0f58050 100644
> --- a/gcc/dominance.h
> +++ b/gcc/dominance.h
> @@ -69,7 +69,7 @@ extern void verify_dominators (enum cdi_direction);
>  /* Verify invariants of computed dominance information, if internal consistency
>     checks are enabled.  */
>
> -static inline void
> +inline void
>  checking_verify_dominators (cdi_direction dir)
>  {
>    if (flag_checking)
> diff --git a/gcc/dumpfile.h b/gcc/dumpfile.h
> index 5b97c5ca8b5..7d5eca899dc 100644
> --- a/gcc/dumpfile.h
> +++ b/gcc/dumpfile.h
> @@ -208,27 +208,27 @@ enum dump_flag : uint32_t
>
>  typedef enum dump_flag dump_flags_t;
>
> -static inline dump_flags_t
> +inline dump_flags_t
>  operator| (dump_flags_t lhs, dump_flags_t rhs)
>  {
>    return (dump_flags_t)((std::underlying_type<dump_flags_t>::type)lhs
>                         | (std::underlying_type<dump_flags_t>::type)rhs);
>  }
>
> -static inline dump_flags_t
> +inline dump_flags_t
>  operator& (dump_flags_t lhs, dump_flags_t rhs)
>  {
>    return (dump_flags_t)((std::underlying_type<dump_flags_t>::type)lhs
>                         & (std::underlying_type<dump_flags_t>::type)rhs);
>  }
>
> -static inline dump_flags_t
> +inline dump_flags_t
>  operator~ (dump_flags_t flags)
>  {
>    return (dump_flags_t)~((std::underlying_type<dump_flags_t>::type)flags);
>  }
>
> -static inline dump_flags_t &
> +inline dump_flags_t &
>  operator|= (dump_flags_t &lhs, dump_flags_t rhs)
>  {
>    lhs = (dump_flags_t)((std::underlying_type<dump_flags_t>::type)lhs
> @@ -236,7 +236,7 @@ operator|= (dump_flags_t &lhs, dump_flags_t rhs)
>    return lhs;
>  }
>
> -static inline dump_flags_t &
> +inline dump_flags_t &
>  operator&= (dump_flags_t &lhs, dump_flags_t rhs)
>  {
>    lhs = (dump_flags_t)((std::underlying_type<dump_flags_t>::type)lhs
> @@ -276,14 +276,14 @@ enum optgroup_flag
>
>  typedef enum optgroup_flag optgroup_flags_t;
>
> -static inline optgroup_flags_t
> +inline optgroup_flags_t
>  operator| (optgroup_flags_t lhs, optgroup_flags_t rhs)
>  {
>    return (optgroup_flags_t)((std::underlying_type<dump_flags_t>::type)lhs
>                             | (std::underlying_type<dump_flags_t>::type)rhs);
>  }
>
> -static inline optgroup_flags_t &
> +inline optgroup_flags_t &
>  operator|= (optgroup_flags_t &lhs, optgroup_flags_t rhs)
>  {
>    lhs = (optgroup_flags_t)((std::underlying_type<dump_flags_t>::type)lhs
> @@ -528,7 +528,7 @@ extern bool dumps_are_enabled;
>  extern void set_dump_file (FILE *new_dump_file);
>
>  /* Return true if any of the dumps is enabled, false otherwise. */
> -static inline bool
> +inline bool
>  dump_enabled_p (void)
>  {
>    return dumps_are_enabled;
> diff --git a/gcc/emit-rtl.h b/gcc/emit-rtl.h
> index 483e0bb96ee..c472c736cb6 100644
> --- a/gcc/emit-rtl.h
> +++ b/gcc/emit-rtl.h
> @@ -400,7 +400,7 @@ extern bool need_atomic_barrier_p (enum memmodel, bool);
>
>  /* Return the current sequence.  */
>
> -static inline struct sequence_stack *
> +inline struct sequence_stack *
>  get_current_sequence (void)
>  {
>    return &crtl->emit.seq;
> @@ -408,7 +408,7 @@ get_current_sequence (void)
>
>  /* Return the outermost sequence.  */
>
> -static inline struct sequence_stack *
> +inline struct sequence_stack *
>  get_topmost_sequence (void)
>  {
>    struct sequence_stack *seq, *top;
> @@ -424,7 +424,7 @@ get_topmost_sequence (void)
>
>  /* Return the first insn of the current sequence or current function.  */
>
> -static inline rtx_insn *
> +inline rtx_insn *
>  get_insns (void)
>  {
>    return get_current_sequence ()->first;
> @@ -432,7 +432,7 @@ get_insns (void)
>
>  /* Specify a new insn as the first in the chain.  */
>
> -static inline void
> +inline void
>  set_first_insn (rtx_insn *insn)
>  {
>    gcc_checking_assert (!insn || !PREV_INSN (insn));
> @@ -441,7 +441,7 @@ set_first_insn (rtx_insn *insn)
>
>  /* Return the last insn emitted in current sequence or current function.  */
>
> -static inline rtx_insn *
> +inline rtx_insn *
>  get_last_insn (void)
>  {
>    return get_current_sequence ()->last;
> @@ -449,7 +449,7 @@ get_last_insn (void)
>
>  /* Specify a new insn as the last in the chain.  */
>
> -static inline void
> +inline void
>  set_last_insn (rtx_insn *insn)
>  {
>    gcc_checking_assert (!insn || !NEXT_INSN (insn));
> @@ -458,7 +458,7 @@ set_last_insn (rtx_insn *insn)
>
>  /* Return a number larger than any instruction's uid in this function.  */
>
> -static inline int
> +inline int
>  get_max_uid (void)
>  {
>    return crtl->emit.x_cur_insn_uid;
> diff --git a/gcc/except.h b/gcc/except.h
> index 2b5c9feb705..5ecdbc0d1dc 100644
> --- a/gcc/except.h
> +++ b/gcc/except.h
> @@ -302,7 +302,7 @@ function_needs_eh_personality (struct function *);
>
>  /* Pre-order iteration within the eh_region tree.  */
>
> -static inline eh_region
> +inline eh_region
>  ehr_next (eh_region r, eh_region start)
>  {
>    if (r->inner)
> diff --git a/gcc/expmed.h b/gcc/expmed.h
> index 0419e2dac85..c1aee00c616 100644
> --- a/gcc/expmed.h
> +++ b/gcc/expmed.h
> @@ -191,7 +191,7 @@ extern struct target_expmed *this_target_expmed;
>
>  /* Return a pointer to the alg_hash_entry at IDX.  */
>
> -static inline struct alg_hash_entry *
> +inline struct alg_hash_entry *
>  alg_hash_entry_ptr (int idx)
>  {
>    return &this_target_expmed->x_alg_hash[idx];
> @@ -199,7 +199,7 @@ alg_hash_entry_ptr (int idx)
>
>  /* Return true if the x_alg_hash field might have been used.  */
>
> -static inline bool
> +inline bool
>  alg_hash_used_p (void)
>  {
>    return this_target_expmed->x_alg_hash_used_p;
> @@ -207,7 +207,7 @@ alg_hash_used_p (void)
>
>  /* Set whether the x_alg_hash field might have been used.  */
>
> -static inline void
> +inline void
>  set_alg_hash_used_p (bool usedp)
>  {
>    this_target_expmed->x_alg_hash_used_p = usedp;
> @@ -215,7 +215,7 @@ set_alg_hash_used_p (bool usedp)
>
>  /* Compute an index into the cost arrays by mode class.  */
>
> -static inline int
> +inline int
>  expmed_mode_index (machine_mode mode)
>  {
>    switch (GET_MODE_CLASS (mode))
> @@ -244,7 +244,7 @@ expmed_mode_index (machine_mode mode)
>     a particular operation performed in MODE is cheap when optimizing
>     for SPEED.  */
>
> -static inline bool *
> +inline bool *
>  expmed_op_cheap_ptr (struct expmed_op_cheap *eoc, bool speed,
>                      machine_mode mode)
>  {
> @@ -255,7 +255,7 @@ expmed_op_cheap_ptr (struct expmed_op_cheap *eoc, bool speed,
>  /* Return a pointer to a cost contained in COSTS when a particular
>     operation is performed in MODE when optimizing for SPEED.  */
>
> -static inline int *
> +inline int *
>  expmed_op_cost_ptr (struct expmed_op_costs *costs, bool speed,
>                     machine_mode mode)
>  {
> @@ -265,7 +265,7 @@ expmed_op_cost_ptr (struct expmed_op_costs *costs, bool speed,
>
>  /* Subroutine of {set_,}sdiv_pow2_cheap.  Not to be used otherwise.  */
>
> -static inline bool *
> +inline bool *
>  sdiv_pow2_cheap_ptr (bool speed, machine_mode mode)
>  {
>    return expmed_op_cheap_ptr (&this_target_expmed->x_sdiv_pow2_cheap,
> @@ -275,7 +275,7 @@ sdiv_pow2_cheap_ptr (bool speed, machine_mode mode)
>  /* Set whether a signed division by a power of 2 is cheap in MODE
>     when optimizing for SPEED.  */
>
> -static inline void
> +inline void
>  set_sdiv_pow2_cheap (bool speed, machine_mode mode, bool cheap_p)
>  {
>    *sdiv_pow2_cheap_ptr (speed, mode) = cheap_p;
> @@ -284,7 +284,7 @@ set_sdiv_pow2_cheap (bool speed, machine_mode mode, bool cheap_p)
>  /* Return whether a signed division by a power of 2 is cheap in MODE
>     when optimizing for SPEED.  */
>
> -static inline bool
> +inline bool
>  sdiv_pow2_cheap (bool speed, machine_mode mode)
>  {
>    return *sdiv_pow2_cheap_ptr (speed, mode);
> @@ -292,7 +292,7 @@ sdiv_pow2_cheap (bool speed, machine_mode mode)
>
>  /* Subroutine of {set_,}smod_pow2_cheap.  Not to be used otherwise.  */
>
> -static inline bool *
> +inline bool *
>  smod_pow2_cheap_ptr (bool speed, machine_mode mode)
>  {
>    return expmed_op_cheap_ptr (&this_target_expmed->x_smod_pow2_cheap,
> @@ -302,7 +302,7 @@ smod_pow2_cheap_ptr (bool speed, machine_mode mode)
>  /* Set whether a signed modulo by a power of 2 is CHEAP in MODE when
>     optimizing for SPEED.  */
>
> -static inline void
> +inline void
>  set_smod_pow2_cheap (bool speed, machine_mode mode, bool cheap)
>  {
>    *smod_pow2_cheap_ptr (speed, mode) = cheap;
> @@ -311,7 +311,7 @@ set_smod_pow2_cheap (bool speed, machine_mode mode, bool cheap)
>  /* Return whether a signed modulo by a power of 2 is cheap in MODE
>     when optimizing for SPEED.  */
>
> -static inline bool
> +inline bool
>  smod_pow2_cheap (bool speed, machine_mode mode)
>  {
>    return *smod_pow2_cheap_ptr (speed, mode);
> @@ -319,7 +319,7 @@ smod_pow2_cheap (bool speed, machine_mode mode)
>
>  /* Subroutine of {set_,}zero_cost.  Not to be used otherwise.  */
>
> -static inline int *
> +inline int *
>  zero_cost_ptr (bool speed)
>  {
>    return &this_target_expmed->x_zero_cost[speed];
> @@ -327,7 +327,7 @@ zero_cost_ptr (bool speed)
>
>  /* Set the COST of loading zero when optimizing for SPEED.  */
>
> -static inline void
> +inline void
>  set_zero_cost (bool speed, int cost)
>  {
>    *zero_cost_ptr (speed) = cost;
> @@ -335,7 +335,7 @@ set_zero_cost (bool speed, int cost)
>
>  /* Return the COST of loading zero when optimizing for SPEED.  */
>
> -static inline int
> +inline int
>  zero_cost (bool speed)
>  {
>    return *zero_cost_ptr (speed);
> @@ -343,7 +343,7 @@ zero_cost (bool speed)
>
>  /* Subroutine of {set_,}add_cost.  Not to be used otherwise.  */
>
> -static inline int *
> +inline int *
>  add_cost_ptr (bool speed, machine_mode mode)
>  {
>    return expmed_op_cost_ptr (&this_target_expmed->x_add_cost, speed, mode);
> @@ -351,7 +351,7 @@ add_cost_ptr (bool speed, machine_mode mode)
>
>  /* Set the COST of computing an add in MODE when optimizing for SPEED.  */
>
> -static inline void
> +inline void
>  set_add_cost (bool speed, machine_mode mode, int cost)
>  {
>    *add_cost_ptr (speed, mode) = cost;
> @@ -359,7 +359,7 @@ set_add_cost (bool speed, machine_mode mode, int cost)
>
>  /* Return the cost of computing an add in MODE when optimizing for SPEED.  */
>
> -static inline int
> +inline int
>  add_cost (bool speed, machine_mode mode)
>  {
>    return *add_cost_ptr (speed, mode);
> @@ -367,7 +367,7 @@ add_cost (bool speed, machine_mode mode)
>
>  /* Subroutine of {set_,}neg_cost.  Not to be used otherwise.  */
>
> -static inline int *
> +inline int *
>  neg_cost_ptr (bool speed, machine_mode mode)
>  {
>    return expmed_op_cost_ptr (&this_target_expmed->x_neg_cost, speed, mode);
> @@ -375,7 +375,7 @@ neg_cost_ptr (bool speed, machine_mode mode)
>
>  /* Set the COST of computing a negation in MODE when optimizing for SPEED.  */
>
> -static inline void
> +inline void
>  set_neg_cost (bool speed, machine_mode mode, int cost)
>  {
>    *neg_cost_ptr (speed, mode) = cost;
> @@ -384,7 +384,7 @@ set_neg_cost (bool speed, machine_mode mode, int cost)
>  /* Return the cost of computing a negation in MODE when optimizing for
>     SPEED.  */
>
> -static inline int
> +inline int
>  neg_cost (bool speed, machine_mode mode)
>  {
>    return *neg_cost_ptr (speed, mode);
> @@ -392,7 +392,7 @@ neg_cost (bool speed, machine_mode mode)
>
>  /* Subroutine of {set_,}shift_cost.  Not to be used otherwise.  */
>
> -static inline int *
> +inline int *
>  shift_cost_ptr (bool speed, machine_mode mode, int bits)
>  {
>    return expmed_op_cost_ptr (&this_target_expmed->x_shift_cost[bits],
> @@ -401,7 +401,7 @@ shift_cost_ptr (bool speed, machine_mode mode, int bits)
>
>  /* Set the COST of doing a shift in MODE by BITS when optimizing for SPEED.  */
>
> -static inline void
> +inline void
>  set_shift_cost (bool speed, machine_mode mode, int bits, int cost)
>  {
>    *shift_cost_ptr (speed, mode, bits) = cost;
> @@ -410,7 +410,7 @@ set_shift_cost (bool speed, machine_mode mode, int bits, int cost)
>  /* Return the cost of doing a shift in MODE by BITS when optimizing for
>     SPEED.  */
>
> -static inline int
> +inline int
>  shift_cost (bool speed, machine_mode mode, int bits)
>  {
>    return *shift_cost_ptr (speed, mode, bits);
> @@ -418,7 +418,7 @@ shift_cost (bool speed, machine_mode mode, int bits)
>
>  /* Subroutine of {set_,}shiftadd_cost.  Not to be used otherwise.  */
>
> -static inline int *
> +inline int *
>  shiftadd_cost_ptr (bool speed, machine_mode mode, int bits)
>  {
>    return expmed_op_cost_ptr (&this_target_expmed->x_shiftadd_cost[bits],
> @@ -428,7 +428,7 @@ shiftadd_cost_ptr (bool speed, machine_mode mode, int bits)
>  /* Set the COST of doing a shift in MODE by BITS followed by an add when
>     optimizing for SPEED.  */
>
> -static inline void
> +inline void
>  set_shiftadd_cost (bool speed, machine_mode mode, int bits, int cost)
>  {
>    *shiftadd_cost_ptr (speed, mode, bits) = cost;
> @@ -437,7 +437,7 @@ set_shiftadd_cost (bool speed, machine_mode mode, int bits, int cost)
>  /* Return the cost of doing a shift in MODE by BITS followed by an add
>     when optimizing for SPEED.  */
>
> -static inline int
> +inline int
>  shiftadd_cost (bool speed, machine_mode mode, int bits)
>  {
>    return *shiftadd_cost_ptr (speed, mode, bits);
> @@ -445,7 +445,7 @@ shiftadd_cost (bool speed, machine_mode mode, int bits)
>
>  /* Subroutine of {set_,}shiftsub0_cost.  Not to be used otherwise.  */
>
> -static inline int *
> +inline int *
>  shiftsub0_cost_ptr (bool speed, machine_mode mode, int bits)
>  {
>    return expmed_op_cost_ptr (&this_target_expmed->x_shiftsub0_cost[bits],
> @@ -455,7 +455,7 @@ shiftsub0_cost_ptr (bool speed, machine_mode mode, int bits)
>  /* Set the COST of doing a shift in MODE by BITS and then subtracting a
>     value when optimizing for SPEED.  */
>
> -static inline void
> +inline void
>  set_shiftsub0_cost (bool speed, machine_mode mode, int bits, int cost)
>  {
>    *shiftsub0_cost_ptr (speed, mode, bits) = cost;
> @@ -464,7 +464,7 @@ set_shiftsub0_cost (bool speed, machine_mode mode, int bits, int cost)
>  /* Return the cost of doing a shift in MODE by BITS and then subtracting
>     a value when optimizing for SPEED.  */
>
> -static inline int
> +inline int
>  shiftsub0_cost (bool speed, machine_mode mode, int bits)
>  {
>    return *shiftsub0_cost_ptr (speed, mode, bits);
> @@ -472,7 +472,7 @@ shiftsub0_cost (bool speed, machine_mode mode, int bits)
>
>  /* Subroutine of {set_,}shiftsub1_cost.  Not to be used otherwise.  */
>
> -static inline int *
> +inline int *
>  shiftsub1_cost_ptr (bool speed, machine_mode mode, int bits)
>  {
>    return expmed_op_cost_ptr (&this_target_expmed->x_shiftsub1_cost[bits],
> @@ -482,7 +482,7 @@ shiftsub1_cost_ptr (bool speed, machine_mode mode, int bits)
>  /* Set the COST of subtracting a shift in MODE by BITS from a value when
>     optimizing for SPEED.  */
>
> -static inline void
> +inline void
>  set_shiftsub1_cost (bool speed, machine_mode mode, int bits, int cost)
>  {
>    *shiftsub1_cost_ptr (speed, mode, bits) = cost;
> @@ -491,7 +491,7 @@ set_shiftsub1_cost (bool speed, machine_mode mode, int bits, int cost)
>  /* Return the cost of subtracting a shift in MODE by BITS from a value
>     when optimizing for SPEED.  */
>
> -static inline int
> +inline int
>  shiftsub1_cost (bool speed, machine_mode mode, int bits)
>  {
>    return *shiftsub1_cost_ptr (speed, mode, bits);
> @@ -499,7 +499,7 @@ shiftsub1_cost (bool speed, machine_mode mode, int bits)
>
>  /* Subroutine of {set_,}mul_cost.  Not to be used otherwise.  */
>
> -static inline int *
> +inline int *
>  mul_cost_ptr (bool speed, machine_mode mode)
>  {
>    return expmed_op_cost_ptr (&this_target_expmed->x_mul_cost, speed, mode);
> @@ -508,7 +508,7 @@ mul_cost_ptr (bool speed, machine_mode mode)
>  /* Set the COST of doing a multiplication in MODE when optimizing for
>     SPEED.  */
>
> -static inline void
> +inline void
>  set_mul_cost (bool speed, machine_mode mode, int cost)
>  {
>    *mul_cost_ptr (speed, mode) = cost;
> @@ -517,7 +517,7 @@ set_mul_cost (bool speed, machine_mode mode, int cost)
>  /* Return the cost of doing a multiplication in MODE when optimizing
>     for SPEED.  */
>
> -static inline int
> +inline int
>  mul_cost (bool speed, machine_mode mode)
>  {
>    return *mul_cost_ptr (speed, mode);
> @@ -525,7 +525,7 @@ mul_cost (bool speed, machine_mode mode)
>
>  /* Subroutine of {set_,}sdiv_cost.  Not to be used otherwise.  */
>
> -static inline int *
> +inline int *
>  sdiv_cost_ptr (bool speed, machine_mode mode)
>  {
>    return expmed_op_cost_ptr (&this_target_expmed->x_sdiv_cost, speed, mode);
> @@ -534,7 +534,7 @@ sdiv_cost_ptr (bool speed, machine_mode mode)
>  /* Set the COST of doing a signed division in MODE when optimizing
>     for SPEED.  */
>
> -static inline void
> +inline void
>  set_sdiv_cost (bool speed, machine_mode mode, int cost)
>  {
>    *sdiv_cost_ptr (speed, mode) = cost;
> @@ -543,7 +543,7 @@ set_sdiv_cost (bool speed, machine_mode mode, int cost)
>  /* Return the cost of doing a signed division in MODE when optimizing
>     for SPEED.  */
>
> -static inline int
> +inline int
>  sdiv_cost (bool speed, machine_mode mode)
>  {
>    return *sdiv_cost_ptr (speed, mode);
> @@ -551,7 +551,7 @@ sdiv_cost (bool speed, machine_mode mode)
>
>  /* Subroutine of {set_,}udiv_cost.  Not to be used otherwise.  */
>
> -static inline int *
> +inline int *
>  udiv_cost_ptr (bool speed, machine_mode mode)
>  {
>    return expmed_op_cost_ptr (&this_target_expmed->x_udiv_cost, speed, mode);
> @@ -560,7 +560,7 @@ udiv_cost_ptr (bool speed, machine_mode mode)
>  /* Set the COST of doing an unsigned division in MODE when optimizing
>     for SPEED.  */
>
> -static inline void
> +inline void
>  set_udiv_cost (bool speed, machine_mode mode, int cost)
>  {
>    *udiv_cost_ptr (speed, mode) = cost;
> @@ -569,7 +569,7 @@ set_udiv_cost (bool speed, machine_mode mode, int cost)
>  /* Return the cost of doing an unsigned division in MODE when
>     optimizing for SPEED.  */
>
> -static inline int
> +inline int
>  udiv_cost (bool speed, machine_mode mode)
>  {
>    return *udiv_cost_ptr (speed, mode);
> @@ -577,7 +577,7 @@ udiv_cost (bool speed, machine_mode mode)
>
>  /* Subroutine of {set_,}mul_widen_cost.  Not to be used otherwise.  */
>
> -static inline int *
> +inline int *
>  mul_widen_cost_ptr (bool speed, machine_mode mode)
>  {
>    gcc_assert (GET_MODE_CLASS (mode) == MODE_INT);
> @@ -588,7 +588,7 @@ mul_widen_cost_ptr (bool speed, machine_mode mode)
>  /* Set the COST for computing a widening multiplication in MODE when
>     optimizing for SPEED.  */
>
> -static inline void
> +inline void
>  set_mul_widen_cost (bool speed, machine_mode mode, int cost)
>  {
>    *mul_widen_cost_ptr (speed, mode) = cost;
> @@ -597,7 +597,7 @@ set_mul_widen_cost (bool speed, machine_mode mode, int cost)
>  /* Return the cost for computing a widening multiplication in MODE when
>     optimizing for SPEED.  */
>
> -static inline int
> +inline int
>  mul_widen_cost (bool speed, machine_mode mode)
>  {
>    return *mul_widen_cost_ptr (speed, mode);
> @@ -605,7 +605,7 @@ mul_widen_cost (bool speed, machine_mode mode)
>
>  /* Subroutine of {set_,}mul_highpart_cost.  Not to be used otherwise.  */
>
> -static inline int *
> +inline int *
>  mul_highpart_cost_ptr (bool speed, machine_mode mode)
>  {
>    gcc_assert (GET_MODE_CLASS (mode) == MODE_INT);
> @@ -618,7 +618,7 @@ mul_highpart_cost_ptr (bool speed, machine_mode mode)
>  /* Set the COST for computing the high part of a multiplication in MODE
>     when optimizing for SPEED.  */
>
> -static inline void
> +inline void
>  set_mul_highpart_cost (bool speed, machine_mode mode, int cost)
>  {
>    *mul_highpart_cost_ptr (speed, mode) = cost;
> @@ -627,7 +627,7 @@ set_mul_highpart_cost (bool speed, machine_mode mode, int cost)
>  /* Return the cost for computing the high part of a multiplication in MODE
>     when optimizing for SPEED.  */
>
> -static inline int
> +inline int
>  mul_highpart_cost (bool speed, machine_mode mode)
>  {
>    return *mul_highpart_cost_ptr (speed, mode);
> @@ -635,7 +635,7 @@ mul_highpart_cost (bool speed, machine_mode mode)
>
>  /* Subroutine of {set_,}convert_cost.  Not to be used otherwise.  */
>
> -static inline int *
> +inline int *
>  convert_cost_ptr (machine_mode to_mode, machine_mode from_mode,
>                   bool speed)
>  {
> @@ -651,7 +651,7 @@ convert_cost_ptr (machine_mode to_mode, machine_mode from_mode,
>  /* Set the COST for converting from FROM_MODE to TO_MODE when optimizing
>     for SPEED.  */
>
> -static inline void
> +inline void
>  set_convert_cost (machine_mode to_mode, machine_mode from_mode,
>                   bool speed, int cost)
>  {
> @@ -661,7 +661,7 @@ set_convert_cost (machine_mode to_mode, machine_mode from_mode,
>  /* Return the cost for converting from FROM_MODE to TO_MODE when optimizing
>     for SPEED.  */
>
> -static inline int
> +inline int
>  convert_cost (machine_mode to_mode, machine_mode from_mode,
>               bool speed)
>  {
> diff --git a/gcc/expr.h b/gcc/expr.h
> index e3ba9eb5370..0c059ed9023 100644
> --- a/gcc/expr.h
> +++ b/gcc/expr.h
> @@ -84,19 +84,19 @@ extern rtx convert_wider_int_to_float (machine_mode mode, machine_mode imode,
>  extern rtx emit_block_op_via_libcall (enum built_in_function, rtx, rtx, rtx,
>                                       bool);
>
> -static inline rtx
> +inline rtx
>  emit_block_copy_via_libcall (rtx dst, rtx src, rtx size, bool tailcall = false)
>  {
>    return emit_block_op_via_libcall (BUILT_IN_MEMCPY, dst, src, size, tailcall);
>  }
>
> -static inline rtx
> +inline rtx
>  emit_block_move_via_libcall (rtx dst, rtx src, rtx size, bool tailcall = false)
>  {
>    return emit_block_op_via_libcall (BUILT_IN_MEMMOVE, dst, src, size, tailcall);
>  }
>
> -static inline rtx
> +inline rtx
>  emit_block_comp_via_libcall (rtx dst, rtx src, rtx size, bool tailcall = false)
>  {
>    return emit_block_op_via_libcall (BUILT_IN_MEMCMP, dst, src, size, tailcall);
> @@ -178,14 +178,14 @@ extern void clobber_reg_mode (rtx *, rtx, machine_mode);
>  extern rtx copy_blkmode_to_reg (machine_mode, tree);
>
>  /* Mark REG as holding a parameter for the next CALL_INSN.  */
> -static inline void
> +inline void
>  use_reg (rtx *fusage, rtx reg)
>  {
>    use_reg_mode (fusage, reg, VOIDmode);
>  }
>
>  /* Mark REG as clobbered by the call with FUSAGE as CALL_INSN_FUNCTION_USAGE.  */
> -static inline void
> +inline void
>  clobber_reg (rtx *fusage, rtx reg)
>  {
>    clobber_reg_mode (fusage, reg, VOIDmode);
> @@ -303,14 +303,14 @@ extern rtx expand_expr_real_2 (sepops, rtx, machine_mode,
>  /* Generate code for computing expression EXP.
>     An rtx for the computed value is returned.  The value is never null.
>     In the case of a void EXP, const0_rtx is returned.  */
> -static inline rtx
> +inline rtx
>  expand_expr (tree exp, rtx target, machine_mode mode,
>              enum expand_modifier modifier)
>  {
>    return expand_expr_real (exp, target, mode, modifier, NULL, false);
>  }
>
> -static inline rtx
> +inline rtx
>  expand_normal (tree exp)
>  {
>    return expand_expr_real (exp, NULL_RTX, VOIDmode, EXPAND_NORMAL, NULL, false);
> diff --git a/gcc/fixed-value.h b/gcc/fixed-value.h
> index f16e41a32fa..8d1002ac6f0 100644
> --- a/gcc/fixed-value.h
> +++ b/gcc/fixed-value.h
> @@ -51,7 +51,7 @@ extern FIXED_VALUE_TYPE fixed_from_double_int (double_int, scalar_mode);
>
>  /* Return a CONST_FIXED from a bit payload and machine mode MODE.
>     The bits in PAYLOAD are sign-extended/zero-extended according to MODE.  */
> -static inline rtx
> +inline rtx
>  const_fixed_from_double_int (double_int payload,
>                              scalar_mode mode)
>  {
> diff --git a/gcc/fortran/gfortran.h b/gcc/fortran/gfortran.h
> index 9884a55882b..2fd15004534 100644
> --- a/gcc/fortran/gfortran.h
> +++ b/gcc/fortran/gfortran.h
> @@ -3273,7 +3273,7 @@ void gfc_done_2 (void);
>  int get_c_kind (const char *, CInteropKind_t *);
>
>  const char *gfc_closest_fuzzy_match (const char *, char **);
> -static inline void
> +inline void
>  vec_push (char **&optr, size_t &osz, const char *elt)
>  {
>    /* {auto,}vec.safe_push () replacement.  Don't ask..  */
> @@ -3549,7 +3549,7 @@ void gfc_intrinsic_done_1 (void);
>
>  char gfc_type_letter (bt, bool logical_equals_int = false);
>  int gfc_type_abi_kind (bt, int);
> -static inline int
> +inline int
>  gfc_type_abi_kind (gfc_typespec *ts)
>  {
>    return gfc_type_abi_kind (ts->type, ts->kind);
> diff --git a/gcc/gengtype.h b/gcc/gengtype.h
> index 03264feb623..4e5df544fbf 100644
> --- a/gcc/gengtype.h
> +++ b/gcc/gengtype.h
> @@ -77,7 +77,7 @@ input_file* input_file_by_name (const char* name);
>  const char *get_file_srcdir_relative_path (const input_file *inpf);
>
>  /* Get the name of an input file.  */
> -static inline const char*
> +inline const char*
>  get_input_file_name (const input_file *inpf)
>  {
>    if (inpf)
> @@ -94,7 +94,7 @@ get_input_file_name (const input_file *inpf)
>     some GC roots may be missed, which is a much harder-to-debug problem.
>    */
>
> -static inline lang_bitmap
> +inline lang_bitmap
>  get_lang_bitmap (const input_file* inpf)
>  {
>    if (inpf == NULL)
> @@ -104,7 +104,7 @@ get_lang_bitmap (const input_file* inpf)
>
>  /* Set the bitmap returned by get_lang_bitmap.  The only legitimate
>     callers of this function are read_input_list & read_state_*.  */
> -static inline void
> +inline void
>  set_lang_bitmap (input_file* inpf, lang_bitmap n)
>  {
>    gcc_assert (inpf);
> @@ -346,7 +346,7 @@ extern struct type callback_type;
>
>  /* Test if a type is a union or a structure, perhaps a language
>     specific one.  */
> -static inline bool
> +inline bool
>  union_or_struct_p (enum typekind kind)
>  {
>    return (kind == TYPE_UNION
> @@ -355,14 +355,14 @@ union_or_struct_p (enum typekind kind)
>           || kind == TYPE_USER_STRUCT);
>  }
>
> -static inline bool
> +inline bool
>  union_or_struct_p (const_type_p x)
>  {
>    return union_or_struct_p (x->kind);
>  }
>
>  /* Give the file location of a type, if any. */
> -static inline struct fileloc*
> +inline struct fileloc*
>  type_fileloc (type_p t)
>  {
>    if (!t)
> diff --git a/gcc/gimple-expr.h b/gcc/gimple-expr.h
> index 42a16764be9..e89f7e20fc8 100644
> --- a/gcc/gimple-expr.h
> +++ b/gcc/gimple-expr.h
> @@ -60,7 +60,7 @@ extern tree canonicalize_cond_expr_cond (tree);
>  /* Return true if a conversion from either type of TYPE1 and TYPE2
>     to the other is not required.  Otherwise return false.  */
>
> -static inline bool
> +inline bool
>  types_compatible_p (tree type1, tree type2)
>  {
>    return (type1 == type2
> @@ -70,7 +70,7 @@ types_compatible_p (tree type1, tree type2)
>
>  /* Return true if TYPE is a suitable type for a scalar register variable.  */
>
> -static inline bool
> +inline bool
>  is_gimple_reg_type (tree type)
>  {
>    return !AGGREGATE_TYPE_P (type);
> @@ -78,7 +78,7 @@ is_gimple_reg_type (tree type)
>
>  /* Return true if T is a variable.  */
>
> -static inline bool
> +inline bool
>  is_gimple_variable (tree t)
>  {
>    return (TREE_CODE (t) == VAR_DECL
> @@ -89,7 +89,7 @@ is_gimple_variable (tree t)
>
>  /*  Return true if T is a GIMPLE identifier (something with an address).  */
>
> -static inline bool
> +inline bool
>  is_gimple_id (tree t)
>  {
>    return (is_gimple_variable (t)
> @@ -102,7 +102,7 @@ is_gimple_id (tree t)
>
>  /* Return true if OP, an SSA name or a DECL is a virtual operand.  */
>
> -static inline bool
> +inline bool
>  virtual_operand_p (tree op)
>  {
>    if (TREE_CODE (op) == SSA_NAME)
> @@ -116,7 +116,7 @@ virtual_operand_p (tree op)
>
>  /*  Return true if T is something whose address can be taken.  */
>
> -static inline bool
> +inline bool
>  is_gimple_addressable (tree t)
>  {
>    return (is_gimple_id (t) || handled_component_p (t)
> @@ -126,7 +126,7 @@ is_gimple_addressable (tree t)
>
>  /* Return true if T is a valid gimple constant.  */
>
> -static inline bool
> +inline bool
>  is_gimple_constant (const_tree t)
>  {
>    switch (TREE_CODE (t))
> @@ -148,7 +148,7 @@ is_gimple_constant (const_tree t)
>  /* A wrapper around extract_ops_from_tree with 3 ops, for callers which
>     expect to see only a maximum of two operands.  */
>
> -static inline void
> +inline void
>  extract_ops_from_tree (tree expr, enum tree_code *code, tree *op0,
>                        tree *op1)
>  {
> @@ -160,7 +160,7 @@ extract_ops_from_tree (tree expr, enum tree_code *code, tree *op0,
>  /* Given a valid GIMPLE_CALL function address return the FUNCTION_DECL
>     associated with the callee if known.  Otherwise return NULL_TREE.  */
>
> -static inline tree
> +inline tree
>  gimple_call_addr_fndecl (const_tree fn)
>  {
>    if (fn && TREE_CODE (fn) == ADDR_EXPR)
> diff --git a/gcc/gimple-iterator.h b/gcc/gimple-iterator.h
> index 8857a7e94bc..38352aa95af 100644
> --- a/gcc/gimple-iterator.h
> +++ b/gcc/gimple-iterator.h
> @@ -95,7 +95,7 @@ extern void update_modified_stmts (gimple_seq);
>
>  /* Return a new iterator pointing to GIMPLE_SEQ's first statement.  */
>
> -static inline gimple_stmt_iterator
> +inline gimple_stmt_iterator
>  gsi_start (gimple_seq &seq)
>  {
>    gimple_stmt_iterator i;
> @@ -107,7 +107,7 @@ gsi_start (gimple_seq &seq)
>    return i;
>  }
>
> -static inline gimple_stmt_iterator
> +inline gimple_stmt_iterator
>  gsi_none (void)
>  {
>    gimple_stmt_iterator i;
> @@ -119,7 +119,7 @@ gsi_none (void)
>
>  /* Return a new iterator pointing to the first statement in basic block BB.  */
>
> -static inline gimple_stmt_iterator
> +inline gimple_stmt_iterator
>  gsi_start_bb (basic_block bb)
>  {
>    gimple_stmt_iterator i;
> @@ -137,7 +137,7 @@ gimple_stmt_iterator gsi_start_edge (edge e);
>
>  /* Return a new iterator initially pointing to GIMPLE_SEQ's last statement.  */
>
> -static inline gimple_stmt_iterator
> +inline gimple_stmt_iterator
>  gsi_last (gimple_seq &seq)
>  {
>    gimple_stmt_iterator i;
> @@ -151,7 +151,7 @@ gsi_last (gimple_seq &seq)
>
>  /* Return a new iterator pointing to the last statement in basic block BB.  */
>
> -static inline gimple_stmt_iterator
> +inline gimple_stmt_iterator
>  gsi_last_bb (basic_block bb)
>  {
>    gimple_stmt_iterator i;
> @@ -167,7 +167,7 @@ gsi_last_bb (basic_block bb)
>
>  /* Return true if I is at the end of its sequence.  */
>
> -static inline bool
> +inline bool
>  gsi_end_p (gimple_stmt_iterator i)
>  {
>    return i.ptr == NULL;
> @@ -175,7 +175,7 @@ gsi_end_p (gimple_stmt_iterator i)
>
>  /* Return true if I is one statement before the end of its sequence.  */
>
> -static inline bool
> +inline bool
>  gsi_one_before_end_p (gimple_stmt_iterator i)
>  {
>    return i.ptr != NULL && i.ptr->next == NULL;
> @@ -183,7 +183,7 @@ gsi_one_before_end_p (gimple_stmt_iterator i)
>
>  /* Advance the iterator to the next gimple statement.  */
>
> -static inline void
> +inline void
>  gsi_next (gimple_stmt_iterator *i)
>  {
>    i->ptr = i->ptr->next;
> @@ -191,7 +191,7 @@ gsi_next (gimple_stmt_iterator *i)
>
>  /* Advance the iterator to the previous gimple statement.  */
>
> -static inline void
> +inline void
>  gsi_prev (gimple_stmt_iterator *i)
>  {
>    gimple *prev = i->ptr->prev;
> @@ -203,7 +203,7 @@ gsi_prev (gimple_stmt_iterator *i)
>
>  /* Return the current stmt.  */
>
> -static inline gimple *
> +inline gimple *
>  gsi_stmt (gimple_stmt_iterator i)
>  {
>    return i.ptr;
> @@ -212,7 +212,7 @@ gsi_stmt (gimple_stmt_iterator i)
>  /* Return a block statement iterator that points to the first
>     non-label statement in block BB.  */
>
> -static inline gimple_stmt_iterator
> +inline gimple_stmt_iterator
>  gsi_after_labels (basic_block bb)
>  {
>    gimple_stmt_iterator gsi = gsi_start_bb (bb);
> @@ -231,7 +231,7 @@ gsi_after_labels (basic_block bb)
>  /* Return a statement iterator that points to the first
>     non-label statement in sequence SEQ.  */
>
> -static inline gimple_stmt_iterator
> +inline gimple_stmt_iterator
>  gsi_after_labels (gimple_seq &seq)
>  {
>    gimple_stmt_iterator gsi = gsi_start (seq);
> @@ -249,7 +249,7 @@ gsi_after_labels (gimple_seq &seq)
>
>  /* Advance the iterator to the next non-debug gimple statement.  */
>
> -static inline void
> +inline void
>  gsi_next_nondebug (gimple_stmt_iterator *i)
>  {
>    do
> @@ -261,7 +261,7 @@ gsi_next_nondebug (gimple_stmt_iterator *i)
>
>  /* Advance the iterator to the previous non-debug gimple statement.  */
>
> -static inline void
> +inline void
>  gsi_prev_nondebug (gimple_stmt_iterator *i)
>  {
>    do
> @@ -274,7 +274,7 @@ gsi_prev_nondebug (gimple_stmt_iterator *i)
>  /* Return a new iterator pointing to the first non-debug statement in
>     SEQ.  */
>
> -static inline gimple_stmt_iterator
> +inline gimple_stmt_iterator
>  gsi_start_nondebug (gimple_seq seq)
>  {
>    gimple_stmt_iterator gsi = gsi_start (seq);
> @@ -287,7 +287,7 @@ gsi_start_nondebug (gimple_seq seq)
>  /* Return a new iterator pointing to the first non-debug statement in
>     basic block BB.  */
>
> -static inline gimple_stmt_iterator
> +inline gimple_stmt_iterator
>  gsi_start_nondebug_bb (basic_block bb)
>  {
>    gimple_stmt_iterator i = gsi_start_bb (bb);
> @@ -301,7 +301,7 @@ gsi_start_nondebug_bb (basic_block bb)
>  /* Return a new iterator pointing to the first non-debug non-label statement in
>     basic block BB.  */
>
> -static inline gimple_stmt_iterator
> +inline gimple_stmt_iterator
>  gsi_start_nondebug_after_labels_bb (basic_block bb)
>  {
>    gimple_stmt_iterator i = gsi_after_labels (bb);
> @@ -315,7 +315,7 @@ gsi_start_nondebug_after_labels_bb (basic_block bb)
>  /* Return a new iterator pointing to the last non-debug statement in
>     basic block BB.  */
>
> -static inline gimple_stmt_iterator
> +inline gimple_stmt_iterator
>  gsi_last_nondebug_bb (basic_block bb)
>  {
>    gimple_stmt_iterator i = gsi_last_bb (bb);
> @@ -329,7 +329,7 @@ gsi_last_nondebug_bb (basic_block bb)
>  /* Return true if I is followed only by debug statements in its
>     sequence.  */
>
> -static inline bool
> +inline bool
>  gsi_one_nondebug_before_end_p (gimple_stmt_iterator i)
>  {
>    if (gsi_one_before_end_p (i))
> @@ -343,7 +343,7 @@ gsi_one_nondebug_before_end_p (gimple_stmt_iterator i)
>  /* Advance I statement iterator to the next non-virtual GIMPLE_PHI
>     statement.  */
>
> -static inline void
> +inline void
>  gsi_next_nonvirtual_phi (gphi_iterator *i)
>  {
>    do
> @@ -356,7 +356,7 @@ gsi_next_nonvirtual_phi (gphi_iterator *i)
>  /* Return a new iterator pointing to the first non-virtual phi statement in
>     basic block BB.  */
>
> -static inline gphi_iterator
> +inline gphi_iterator
>  gsi_start_nonvirtual_phis (basic_block bb)
>  {
>    gphi_iterator i = gsi_start_phis (bb);
> @@ -369,7 +369,7 @@ gsi_start_nonvirtual_phis (basic_block bb)
>
>  /* Return the basic block associated with this iterator.  */
>
> -static inline basic_block
> +inline basic_block
>  gsi_bb (gimple_stmt_iterator i)
>  {
>    return i.bb;
> @@ -377,7 +377,7 @@ gsi_bb (gimple_stmt_iterator i)
>
>  /* Return the sequence associated with this iterator.  */
>
> -static inline gimple_seq
> +inline gimple_seq
>  gsi_seq (gimple_stmt_iterator i)
>  {
>    return *i.seq;
> @@ -385,7 +385,7 @@ gsi_seq (gimple_stmt_iterator i)
>
>  /* Determine whether SEQ is a nondebug singleton.  */
>
> -static inline bool
> +inline bool
>  gimple_seq_nondebug_singleton_p (gimple_seq seq)
>  {
>    gimple_stmt_iterator gsi;
> diff --git a/gcc/gimple-predict.h b/gcc/gimple-predict.h
> index c557b76f17b..6c085a93ea7 100644
> --- a/gcc/gimple-predict.h
> +++ b/gcc/gimple-predict.h
> @@ -25,7 +25,7 @@ along with GCC; see the file COPYING3.  If not see
>
>  /* Return the predictor of GIMPLE_PREDICT statement GS.  */
>
> -static inline enum br_predictor
> +inline enum br_predictor
>  gimple_predict_predictor (const gimple *gs)
>  {
>    GIMPLE_CHECK (gs, GIMPLE_PREDICT);
> @@ -35,7 +35,7 @@ gimple_predict_predictor (const gimple *gs)
>
>  /* Set the predictor of GIMPLE_PREDICT statement GS to PREDICT.  */
>
> -static inline void
> +inline void
>  gimple_predict_set_predictor (gimple *gs, enum br_predictor predictor)
>  {
>    GIMPLE_CHECK (gs, GIMPLE_PREDICT);
> @@ -46,7 +46,7 @@ gimple_predict_set_predictor (gimple *gs, enum br_predictor predictor)
>
>  /* Return the outcome of GIMPLE_PREDICT statement GS.  */
>
> -static inline enum prediction
> +inline enum prediction
>  gimple_predict_outcome (const gimple *gs)
>  {
>    GIMPLE_CHECK (gs, GIMPLE_PREDICT);
> @@ -56,7 +56,7 @@ gimple_predict_outcome (const gimple *gs)
>
>  /* Set the outcome of GIMPLE_PREDICT statement GS to OUTCOME.  */
>
> -static inline void
> +inline void
>  gimple_predict_set_outcome (gimple *gs, enum prediction outcome)
>  {
>    GIMPLE_CHECK (gs, GIMPLE_PREDICT);
> @@ -82,7 +82,7 @@ gimple_build_predict (enum br_predictor predictor, enum prediction outcome)
>
>  /* Return true if GS is a GIMPLE_PREDICT statement.  */
>
> -static inline bool
> +inline bool
>  is_gimple_predict (const gimple *gs)
>  {
>    return gimple_code (gs) == GIMPLE_PREDICT;
> diff --git a/gcc/gimple-range-fold.h b/gcc/gimple-range-fold.h
> index b7098c22b7b..10b5c18b858 100644
> --- a/gcc/gimple-range-fold.h
> +++ b/gcc/gimple-range-fold.h
> @@ -44,7 +44,7 @@ bool fold_range (vrange &r, gimple *s, unsigned num_elements, vrange **vector);
>  // Return the type of range which statement S calculates.  If the type is
>  // unsupported or no type can be determined, return NULL_TREE.
>
> -static inline tree
> +inline tree
>  gimple_range_type (const gimple *s)
>  {
>    tree lhs = gimple_get_lhs (s);
> @@ -73,7 +73,7 @@ gimple_range_type (const gimple *s)
>
>  // Return EXP if it is an SSA_NAME with a type supported by gimple ranges.
>
> -static inline tree
> +inline tree
>  gimple_range_ssa_p (tree exp)
>  {
>    if (exp && TREE_CODE (exp) == SSA_NAME &&
> @@ -86,7 +86,7 @@ gimple_range_ssa_p (tree exp)
>
>  // Return true if TYPE1 and TYPE2 are compatible range types.
>
> -static inline bool
> +inline bool
>  range_compatible_p (tree type1, tree type2)
>  {
>    // types_compatible_p requires conversion in both directions to be useless.
> diff --git a/gcc/gimple-ssa.h b/gcc/gimple-ssa.h
> index 98d5bc6d47d..604af8b96b7 100644
> --- a/gcc/gimple-ssa.h
> +++ b/gcc/gimple-ssa.h
> @@ -119,14 +119,14 @@ struct GTY(()) gimple_df {
>     gimple_in_ssa_p is queried by gimplifier in various early stages before SSA
>     infrastructure is initialized.  Check for presence of the datastructures
>     at first place.  */
> -static inline bool
> +inline bool
>  gimple_in_ssa_p (const struct function *fun)
>  {
>    return fun && fun->gimple_df && fun->gimple_df->in_ssa_p;
>  }
>
>  /* Artificial variable used for the virtual operand FUD chain.  */
> -static inline tree
> +inline tree
>  gimple_vop (const struct function *fun)
>  {
>    gcc_checking_assert (fun && fun->gimple_df);
> @@ -135,7 +135,7 @@ gimple_vop (const struct function *fun)
>
>  /* Return the set of VUSE operand for statement G.  */
>
> -static inline use_operand_p
> +inline use_operand_p
>  gimple_vuse_op (const gimple *g)
>  {
>    struct use_optype_d *ops;
> @@ -152,7 +152,7 @@ gimple_vuse_op (const gimple *g)
>
>  /* Return the set of VDEF operand for statement G.  */
>
> -static inline def_operand_p
> +inline def_operand_p
>  gimple_vdef_op (gimple *g)
>  {
>    gimple_statement_with_memory_ops *mem_ops_stmt =
> @@ -166,7 +166,7 @@ gimple_vdef_op (gimple *g)
>
>  /* Mark statement S as modified, and update it.  */
>
> -static inline void
> +inline void
>  update_stmt (gimple *s)
>  {
>    if (gimple_has_ops (s))
> @@ -178,7 +178,7 @@ update_stmt (gimple *s)
>
>  /* Update statement S if it has been optimized.  */
>
> -static inline void
> +inline void
>  update_stmt_if_modified (gimple *s)
>  {
>    if (gimple_modified_p (s))
> @@ -187,7 +187,7 @@ update_stmt_if_modified (gimple *s)
>
>  /* Mark statement S as modified, and update it.  */
>
> -static inline void
> +inline void
>  update_stmt_fn (struct function *fn, gimple *s)
>  {
>    if (gimple_has_ops (s))
> diff --git a/gcc/gimple.h b/gcc/gimple.h
> index ddb9a4c0f5f..081d18e425a 100644
> --- a/gcc/gimple.h
> +++ b/gcc/gimple.h
> @@ -57,7 +57,7 @@ extern void gimple_check_failed (const gimple *, const char *, int,        \
>                            (CODE), ERROR_MARK);                         \
>    } while (0)
>  template <typename T>
> -static inline T
> +inline T
>  GIMPLE_CHECK2(const gimple *gs,
>  #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)
>               const char *file = __builtin_FILE (),
> @@ -76,7 +76,7 @@ GIMPLE_CHECK2(const gimple *gs,
>    return ret;
>  }
>  template <typename T>
> -static inline T
> +inline T
>  GIMPLE_CHECK2(gimple *gs,
>  #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)
>               const char *file = __builtin_FILE (),
> @@ -98,13 +98,13 @@ GIMPLE_CHECK2(gimple *gs,
>  #define gcc_gimple_checking_assert(EXPR) ((void)(0 && (EXPR)))
>  #define GIMPLE_CHECK(GS, CODE)                 (void)0
>  template <typename T>
> -static inline T
> +inline T
>  GIMPLE_CHECK2(gimple *gs)
>  {
>    return as_a <T> (gs);
>  }
>  template <typename T>
> -static inline T
> +inline T
>  GIMPLE_CHECK2(const gimple *gs)
>  {
>    return as_a <T> (gs);
> @@ -1701,21 +1701,21 @@ typedef struct gimple_temp_hash_elt
>  } elt_t;
>
>  /* Get the number of the next statement uid to be allocated.  */
> -static inline unsigned int
> +inline unsigned int
>  gimple_stmt_max_uid (struct function *fn)
>  {
>    return fn->last_stmt_uid;
>  }
>
>  /* Set the number of the next statement uid to be allocated.  */
> -static inline void
> +inline void
>  set_gimple_stmt_max_uid (struct function *fn, unsigned int maxid)
>  {
>    fn->last_stmt_uid = maxid;
>  }
>
>  /* Set the number of the next statement uid to be allocated.  */
> -static inline unsigned int
> +inline unsigned int
>  inc_gimple_stmt_max_uid (struct function *fn)
>  {
>    return fn->last_stmt_uid++;
> @@ -1723,7 +1723,7 @@ inc_gimple_stmt_max_uid (struct function *fn)
>
>  /* Return the first node in GIMPLE sequence S.  */
>
> -static inline gimple_seq_node
> +inline gimple_seq_node
>  gimple_seq_first (gimple_seq s)
>  {
>    return s;
> @@ -1732,7 +1732,7 @@ gimple_seq_first (gimple_seq s)
>
>  /* Return the first statement in GIMPLE sequence S.  */
>
> -static inline gimple *
> +inline gimple *
>  gimple_seq_first_stmt (gimple_seq s)
>  {
>    gimple_seq_node n = gimple_seq_first (s);
> @@ -1742,7 +1742,7 @@ gimple_seq_first_stmt (gimple_seq s)
>  /* Return the first statement in GIMPLE sequence S as a gbind *,
>     verifying that it has code GIMPLE_BIND in a checked build.  */
>
> -static inline gbind *
> +inline gbind *
>  gimple_seq_first_stmt_as_a_bind (gimple_seq s)
>  {
>    gimple_seq_node n = gimple_seq_first (s);
> @@ -1752,7 +1752,7 @@ gimple_seq_first_stmt_as_a_bind (gimple_seq s)
>
>  /* Return the last node in GIMPLE sequence S.  */
>
> -static inline gimple_seq_node
> +inline gimple_seq_node
>  gimple_seq_last (gimple_seq s)
>  {
>    return s ? s->prev : NULL;
> @@ -1761,7 +1761,7 @@ gimple_seq_last (gimple_seq s)
>
>  /* Return the last statement in GIMPLE sequence S.  */
>
> -static inline gimple *
> +inline gimple *
>  gimple_seq_last_stmt (gimple_seq s)
>  {
>    gimple_seq_node n = gimple_seq_last (s);
> @@ -1771,7 +1771,7 @@ gimple_seq_last_stmt (gimple_seq s)
>
>  /* Set the last node in GIMPLE sequence *PS to LAST.  */
>
> -static inline void
> +inline void
>  gimple_seq_set_last (gimple_seq *ps, gimple_seq_node last)
>  {
>    (*ps)->prev = last;
> @@ -1780,7 +1780,7 @@ gimple_seq_set_last (gimple_seq *ps, gimple_seq_node last)
>
>  /* Set the first node in GIMPLE sequence *PS to FIRST.  */
>
> -static inline void
> +inline void
>  gimple_seq_set_first (gimple_seq *ps, gimple_seq_node first)
>  {
>    *ps = first;
> @@ -1789,7 +1789,7 @@ gimple_seq_set_first (gimple_seq *ps, gimple_seq_node first)
>
>  /* Return true if GIMPLE sequence S is empty.  */
>
> -static inline bool
> +inline bool
>  gimple_seq_empty_p (gimple_seq s)
>  {
>    return s == NULL;
> @@ -1797,7 +1797,7 @@ gimple_seq_empty_p (gimple_seq s)
>
>  /* Allocate a new sequence and initialize its first element with STMT.  */
>
> -static inline gimple_seq
> +inline gimple_seq
>  gimple_seq_alloc_with_stmt (gimple *stmt)
>  {
>    gimple_seq seq = NULL;
> @@ -1808,13 +1808,13 @@ gimple_seq_alloc_with_stmt (gimple *stmt)
>
>  /* Returns the sequence of statements in BB.  */
>
> -static inline gimple_seq
> +inline gimple_seq
>  bb_seq (const_basic_block bb)
>  {
>    return (!(bb->flags & BB_RTL)) ? bb->il.gimple.seq : NULL;
>  }
>
> -static inline gimple_seq *
> +inline gimple_seq *
>  bb_seq_addr (basic_block bb)
>  {
>    return (!(bb->flags & BB_RTL)) ? &bb->il.gimple.seq : NULL;
> @@ -1822,7 +1822,7 @@ bb_seq_addr (basic_block bb)
>
>  /* Sets the sequence of statements in BB to SEQ.  */
>
> -static inline void
> +inline void
>  set_bb_seq (basic_block bb, gimple_seq seq)
>  {
>    gcc_checking_assert (!(bb->flags & BB_RTL));
> @@ -1832,7 +1832,7 @@ set_bb_seq (basic_block bb, gimple_seq seq)
>
>  /* Return the code for GIMPLE statement G.  */
>
> -static inline enum gimple_code
> +inline enum gimple_code
>  gimple_code (const gimple *g)
>  {
>    return g->code;
> @@ -1841,7 +1841,7 @@ gimple_code (const gimple *g)
>
>  /* Return the GSS code used by a GIMPLE code.  */
>
> -static inline enum gimple_statement_structure_enum
> +inline enum gimple_statement_structure_enum
>  gss_for_code (enum gimple_code code)
>  {
>    gcc_gimple_checking_assert ((unsigned int)code < LAST_AND_UNUSED_GIMPLE_CODE);
> @@ -1851,7 +1851,7 @@ gss_for_code (enum gimple_code code)
>
>  /* Return which GSS code is used by GS.  */
>
> -static inline enum gimple_statement_structure_enum
> +inline enum gimple_statement_structure_enum
>  gimple_statement_structure (gimple *gs)
>  {
>    return gss_for_code (gimple_code (gs));
> @@ -1861,7 +1861,7 @@ gimple_statement_structure (gimple *gs)
>  /* Return true if statement G has sub-statements.  This is only true for
>     High GIMPLE statements.  */
>
> -static inline bool
> +inline bool
>  gimple_has_substatements (gimple *g)
>  {
>    switch (gimple_code (g))
> @@ -1898,7 +1898,7 @@ gimple_has_substatements (gimple *g)
>
>  /* Return the basic block holding statement G.  */
>
> -static inline basic_block
> +inline basic_block
>  gimple_bb (const gimple *g)
>  {
>    return g->bb;
> @@ -1907,18 +1907,18 @@ gimple_bb (const gimple *g)
>
>  /* Return the lexical scope block holding statement G.  */
>
> -static inline tree
> +inline tree
>  gimple_block (const gimple *g)
>  {
>    return LOCATION_BLOCK (g->location);
>  }
>
>  /* Forward declare.  */
> -static inline void gimple_set_location (gimple *, location_t);
> +inline void gimple_set_location (gimple *, location_t);
>
>  /* Set BLOCK to be the lexical scope block holding statement G.  */
>
> -static inline void
> +inline void
>  gimple_set_block (gimple *g, tree block)
>  {
>    gimple_set_location (g, set_block (g->location, block));
> @@ -1926,7 +1926,7 @@ gimple_set_block (gimple *g, tree block)
>
>  /* Return location information for statement G.  */
>
> -static inline location_t
> +inline location_t
>  gimple_location (const gimple *g)
>  {
>    return g->location;
> @@ -1935,7 +1935,7 @@ gimple_location (const gimple *g)
>  /* Return location information for statement G if g is not NULL.
>     Otherwise, UNKNOWN_LOCATION is returned.  */
>
> -static inline location_t
> +inline location_t
>  gimple_location_safe (const gimple *g)
>  {
>    return g ? gimple_location (g) : UNKNOWN_LOCATION;
> @@ -1943,7 +1943,7 @@ gimple_location_safe (const gimple *g)
>
>  /* Set location information for statement G.  */
>
> -static inline void
> +inline void
>  gimple_set_location (gimple *g, location_t location)
>  {
>    /* Copy the no-warning data to the statement location.  */
> @@ -1954,7 +1954,7 @@ gimple_set_location (gimple *g, location_t location)
>
>  /* Return address of the location information for statement G.  */
>
> -static inline location_t *
> +inline location_t *
>  gimple_location_ptr (gimple *g)
>  {
>    return &g->location;
> @@ -1963,7 +1963,7 @@ gimple_location_ptr (gimple *g)
>
>  /* Return true if G contains location information.  */
>
> -static inline bool
> +inline bool
>  gimple_has_location (const gimple *g)
>  {
>    return LOCATION_LOCUS (gimple_location (g)) != UNKNOWN_LOCATION;
> @@ -1972,7 +1972,7 @@ gimple_has_location (const gimple *g)
>
>  /* Return non-artificial location information for statement G.  */
>
> -static inline location_t
> +inline location_t
>  gimple_nonartificial_location (const gimple *g)
>  {
>    location_t *ploc = NULL;
> @@ -1986,7 +1986,7 @@ gimple_nonartificial_location (const gimple *g)
>
>  /* Return the file name of the location of STMT.  */
>
> -static inline const char *
> +inline const char *
>  gimple_filename (const gimple *stmt)
>  {
>    return LOCATION_FILE (gimple_location (stmt));
> @@ -1995,7 +1995,7 @@ gimple_filename (const gimple *stmt)
>
>  /* Return the line number of the location of STMT.  */
>
> -static inline int
> +inline int
>  gimple_lineno (const gimple *stmt)
>  {
>    return LOCATION_LINE (gimple_location (stmt));
> @@ -2004,7 +2004,7 @@ gimple_lineno (const gimple *stmt)
>
>  /* Determine whether SEQ is a singleton. */
>
> -static inline bool
> +inline bool
>  gimple_seq_singleton_p (gimple_seq seq)
>  {
>    return ((gimple_seq_first (seq) != NULL)
> @@ -2013,7 +2013,7 @@ gimple_seq_singleton_p (gimple_seq seq)
>
>  /* Return true if no warnings should be emitted for statement STMT.  */
>
> -static inline bool
> +inline bool
>  gimple_no_warning_p (const gimple *stmt)
>  {
>    return stmt->no_warning;
> @@ -2021,7 +2021,7 @@ gimple_no_warning_p (const gimple *stmt)
>
>  /* Set the no_warning flag of STMT to NO_WARNING.  */
>
> -static inline void
> +inline void
>  gimple_set_no_warning (gimple *stmt, bool no_warning)
>  {
>    stmt->no_warning = (unsigned) no_warning;
> @@ -2039,7 +2039,7 @@ gimple_set_no_warning (gimple *stmt, bool no_warning)
>     struct gimple.
>   */
>
> -static inline void
> +inline void
>  gimple_set_visited (gimple *stmt, bool visited_p)
>  {
>    stmt->visited = (unsigned) visited_p;
> @@ -2057,7 +2057,7 @@ gimple_set_visited (gimple *stmt, bool visited_p)
>     statement by reading the comments of the 'visited' data member of
>     struct gimple.  */
>
> -static inline bool
> +inline bool
>  gimple_visited_p (gimple *stmt)
>  {
>    return stmt->visited;
> @@ -2074,7 +2074,7 @@ gimple_visited_p (gimple *stmt)
>     You can learn more about the PLF property by reading the comment of
>     the 'plf' data member of struct gimple_statement_structure.  */
>
> -static inline void
> +inline void
>  gimple_set_plf (gimple *stmt, enum plf_mask plf, bool val_p)
>  {
>    if (val_p)
> @@ -2094,7 +2094,7 @@ gimple_set_plf (gimple *stmt, enum plf_mask plf, bool val_p)
>     You can learn more about the plf property by reading the comment of
>     the 'plf' data member of struct gimple_statement_structure.  */
>
> -static inline unsigned int
> +inline unsigned int
>  gimple_plf (gimple *stmt, enum plf_mask plf)
>  {
>    return stmt->plf & ((unsigned int) plf);
> @@ -2108,7 +2108,7 @@ gimple_plf (gimple *stmt, enum plf_mask plf)
>     contains any useful value when the pass starts and thus can set it
>     to any value it sees fit.  */
>
> -static inline void
> +inline void
>  gimple_set_uid (gimple *g, unsigned uid)
>  {
>    g->uid = uid;
> @@ -2122,7 +2122,7 @@ gimple_set_uid (gimple *g, unsigned uid)
>     contains any useful value when the pass starts and thus can set it
>     to any value it sees fit.  */
>
> -static inline unsigned
> +inline unsigned
>  gimple_uid (const gimple *g)
>  {
>    return g->uid;
> @@ -2131,7 +2131,7 @@ gimple_uid (const gimple *g)
>
>  /* Make statement G a singleton sequence.  */
>
> -static inline void
> +inline void
>  gimple_init_singleton (gimple *g)
>  {
>    g->next = NULL;
> @@ -2141,7 +2141,7 @@ gimple_init_singleton (gimple *g)
>
>  /* Return true if GIMPLE statement G has register or memory operands.  */
>
> -static inline bool
> +inline bool
>  gimple_has_ops (const gimple *g)
>  {
>    return gimple_code (g) >= GIMPLE_COND && gimple_code (g) <= GIMPLE_RETURN;
> @@ -2165,7 +2165,7 @@ is_a_helper <gimple_statement_with_ops *>::test (gimple *gs)
>
>  /* Return true if GIMPLE statement G has memory operands.  */
>
> -static inline bool
> +inline bool
>  gimple_has_mem_ops (const gimple *g)
>  {
>    return gimple_code (g) >= GIMPLE_ASSIGN && gimple_code (g) <= GIMPLE_RETURN;
> @@ -2189,7 +2189,7 @@ is_a_helper <gimple_statement_with_memory_ops *>::test (gimple *gs)
>
>  /* Return the set of USE operands for statement G.  */
>
> -static inline struct use_optype_d *
> +inline struct use_optype_d *
>  gimple_use_ops (const gimple *g)
>  {
>    const gimple_statement_with_ops *ops_stmt =
> @@ -2202,7 +2202,7 @@ gimple_use_ops (const gimple *g)
>
>  /* Set USE to be the set of USE operands for statement G.  */
>
> -static inline void
> +inline void
>  gimple_set_use_ops (gimple *g, struct use_optype_d *use)
>  {
>    gimple_statement_with_ops *ops_stmt =
> @@ -2213,7 +2213,7 @@ gimple_set_use_ops (gimple *g, struct use_optype_d *use)
>
>  /* Return the single VUSE operand of the statement G.  */
>
> -static inline tree
> +inline tree
>  gimple_vuse (const gimple *g)
>  {
>    const gimple_statement_with_memory_ops *mem_ops_stmt =
> @@ -2225,7 +2225,7 @@ gimple_vuse (const gimple *g)
>
>  /* Return the single VDEF operand of the statement G.  */
>
> -static inline tree
> +inline tree
>  gimple_vdef (const gimple *g)
>  {
>    const gimple_statement_with_memory_ops *mem_ops_stmt =
> @@ -2237,7 +2237,7 @@ gimple_vdef (const gimple *g)
>
>  /* Return the single VUSE operand of the statement G.  */
>
> -static inline tree *
> +inline tree *
>  gimple_vuse_ptr (gimple *g)
>  {
>    gimple_statement_with_memory_ops *mem_ops_stmt =
> @@ -2249,7 +2249,7 @@ gimple_vuse_ptr (gimple *g)
>
>  /* Return the single VDEF operand of the statement G.  */
>
> -static inline tree *
> +inline tree *
>  gimple_vdef_ptr (gimple *g)
>  {
>    gimple_statement_with_memory_ops *mem_ops_stmt =
> @@ -2261,7 +2261,7 @@ gimple_vdef_ptr (gimple *g)
>
>  /* Set the single VUSE operand of the statement G.  */
>
> -static inline void
> +inline void
>  gimple_set_vuse (gimple *g, tree vuse)
>  {
>    gimple_statement_with_memory_ops *mem_ops_stmt =
> @@ -2271,7 +2271,7 @@ gimple_set_vuse (gimple *g, tree vuse)
>
>  /* Set the single VDEF operand of the statement G.  */
>
> -static inline void
> +inline void
>  gimple_set_vdef (gimple *g, tree vdef)
>  {
>    gimple_statement_with_memory_ops *mem_ops_stmt =
> @@ -2283,7 +2283,7 @@ gimple_set_vdef (gimple *g, tree vdef)
>  /* Return true if statement G has operands and the modified field has
>     been set.  */
>
> -static inline bool
> +inline bool
>  gimple_modified_p (const gimple *g)
>  {
>    return (gimple_has_ops (g)) ? (bool) g->modified : false;
> @@ -2293,7 +2293,7 @@ gimple_modified_p (const gimple *g)
>  /* Set the MODIFIED flag to MODIFIEDP, iff the gimple statement G has
>     a MODIFIED field.  */
>
> -static inline void
> +inline void
>  gimple_set_modified (gimple *s, bool modifiedp)
>  {
>    if (gimple_has_ops (s))
> @@ -2303,7 +2303,7 @@ gimple_set_modified (gimple *s, bool modifiedp)
>
>  /* Return true if statement STMT contains volatile operands.  */
>
> -static inline bool
> +inline bool
>  gimple_has_volatile_ops (const gimple *stmt)
>  {
>    if (gimple_has_mem_ops (stmt))
> @@ -2315,7 +2315,7 @@ gimple_has_volatile_ops (const gimple *stmt)
>
>  /* Set the HAS_VOLATILE_OPS flag to VOLATILEP.  */
>
> -static inline void
> +inline void
>  gimple_set_has_volatile_ops (gimple *stmt, bool volatilep)
>  {
>    if (gimple_has_mem_ops (stmt))
> @@ -2324,7 +2324,7 @@ gimple_set_has_volatile_ops (gimple *stmt, bool volatilep)
>
>  /* Return true if STMT is in a transaction.  */
>
> -static inline bool
> +inline bool
>  gimple_in_transaction (const gimple *stmt)
>  {
>    return bb_in_transaction (gimple_bb (stmt));
> @@ -2332,7 +2332,7 @@ gimple_in_transaction (const gimple *stmt)
>
>  /* Return true if statement STMT may access memory.  */
>
> -static inline bool
> +inline bool
>  gimple_references_memory_p (gimple *stmt)
>  {
>    return gimple_has_mem_ops (stmt) && gimple_vuse (stmt);
> @@ -2341,7 +2341,7 @@ gimple_references_memory_p (gimple *stmt)
>
>  /* Return the subcode for OMP statement S.  */
>
> -static inline unsigned
> +inline unsigned
>  gimple_omp_subcode (const gimple *s)
>  {
>    gcc_gimple_checking_assert (gimple_code (s) >= GIMPLE_OMP_ATOMIC_LOAD
> @@ -2351,7 +2351,7 @@ gimple_omp_subcode (const gimple *s)
>
>  /* Set the subcode for OMP statement S to SUBCODE.  */
>
> -static inline void
> +inline void
>  gimple_omp_set_subcode (gimple *s, unsigned int subcode)
>  {
>    /* We only have 16 bits for the subcode.  Assert that we are not
> @@ -2362,7 +2362,7 @@ gimple_omp_set_subcode (gimple *s, unsigned int subcode)
>
>  /* Set the nowait flag on OMP_RETURN statement S.  */
>
> -static inline void
> +inline void
>  gimple_omp_return_set_nowait (gimple *s)
>  {
>    GIMPLE_CHECK (s, GIMPLE_OMP_RETURN);
> @@ -2373,7 +2373,7 @@ gimple_omp_return_set_nowait (gimple *s)
>  /* Return true if OMP return statement G has the GF_OMP_RETURN_NOWAIT
>     flag set.  */
>
> -static inline bool
> +inline bool
>  gimple_omp_return_nowait_p (const gimple *g)
>  {
>    GIMPLE_CHECK (g, GIMPLE_OMP_RETURN);
> @@ -2383,7 +2383,7 @@ gimple_omp_return_nowait_p (const gimple *g)
>
>  /* Set the LHS of OMP return.  */
>
> -static inline void
> +inline void
>  gimple_omp_return_set_lhs (gimple *g, tree lhs)
>  {
>    gimple_statement_omp_return *omp_return_stmt =
> @@ -2394,7 +2394,7 @@ gimple_omp_return_set_lhs (gimple *g, tree lhs)
>
>  /* Get the LHS of OMP return.  */
>
> -static inline tree
> +inline tree
>  gimple_omp_return_lhs (const gimple *g)
>  {
>    const gimple_statement_omp_return *omp_return_stmt =
> @@ -2405,7 +2405,7 @@ gimple_omp_return_lhs (const gimple *g)
>
>  /* Return a pointer to the LHS of OMP return.  */
>
> -static inline tree *
> +inline tree *
>  gimple_omp_return_lhs_ptr (gimple *g)
>  {
>    gimple_statement_omp_return *omp_return_stmt =
> @@ -2417,7 +2417,7 @@ gimple_omp_return_lhs_ptr (gimple *g)
>  /* Return true if OMP section statement G has the GF_OMP_SECTION_LAST
>     flag set.  */
>
> -static inline bool
> +inline bool
>  gimple_omp_section_last_p (const gimple *g)
>  {
>    GIMPLE_CHECK (g, GIMPLE_OMP_SECTION);
> @@ -2427,7 +2427,7 @@ gimple_omp_section_last_p (const gimple *g)
>
>  /* Set the GF_OMP_SECTION_LAST flag on G.  */
>
> -static inline void
> +inline void
>  gimple_omp_section_set_last (gimple *g)
>  {
>    GIMPLE_CHECK (g, GIMPLE_OMP_SECTION);
> @@ -2438,7 +2438,7 @@ gimple_omp_section_set_last (gimple *g)
>  /* Return true if OMP ordered construct is stand-alone
>     (G has the GF_OMP_ORDERED_STANDALONE flag set).  */
>
> -static inline bool
> +inline bool
>  gimple_omp_ordered_standalone_p (const gimple *g)
>  {
>    GIMPLE_CHECK (g, GIMPLE_OMP_ORDERED);
> @@ -2448,7 +2448,7 @@ gimple_omp_ordered_standalone_p (const gimple *g)
>
>  /* Set the GF_OMP_ORDERED_STANDALONE flag on G.  */
>
> -static inline void
> +inline void
>  gimple_omp_ordered_standalone (gimple *g)
>  {
>    GIMPLE_CHECK (g, GIMPLE_OMP_ORDERED);
> @@ -2459,7 +2459,7 @@ gimple_omp_ordered_standalone (gimple *g)
>  /* Return true if OMP parallel statement G has the
>     GF_OMP_PARALLEL_COMBINED flag set.  */
>
> -static inline bool
> +inline bool
>  gimple_omp_parallel_combined_p (const gimple *g)
>  {
>    GIMPLE_CHECK (g, GIMPLE_OMP_PARALLEL);
> @@ -2470,7 +2470,7 @@ gimple_omp_parallel_combined_p (const gimple *g)
>  /* Set the GF_OMP_PARALLEL_COMBINED field in G depending on the boolean
>     value of COMBINED_P.  */
>
> -static inline void
> +inline void
>  gimple_omp_parallel_set_combined_p (gimple *g, bool combined_p)
>  {
>    GIMPLE_CHECK (g, GIMPLE_OMP_PARALLEL);
> @@ -2484,7 +2484,7 @@ gimple_omp_parallel_set_combined_p (gimple *g, bool combined_p)
>  /* Return true if OMP atomic load/store statement G has the
>     GF_OMP_ATOMIC_NEED_VALUE flag set.  */
>
> -static inline bool
> +inline bool
>  gimple_omp_atomic_need_value_p (const gimple *g)
>  {
>    if (gimple_code (g) != GIMPLE_OMP_ATOMIC_LOAD)
> @@ -2495,7 +2495,7 @@ gimple_omp_atomic_need_value_p (const gimple *g)
>
>  /* Set the GF_OMP_ATOMIC_NEED_VALUE flag on G.  */
>
> -static inline void
> +inline void
>  gimple_omp_atomic_set_need_value (gimple *g)
>  {
>    if (gimple_code (g) != GIMPLE_OMP_ATOMIC_LOAD)
> @@ -2507,7 +2507,7 @@ gimple_omp_atomic_set_need_value (gimple *g)
>  /* Return true if OMP atomic load/store statement G has the
>     GF_OMP_ATOMIC_WEAK flag set.  */
>
> -static inline bool
> +inline bool
>  gimple_omp_atomic_weak_p (const gimple *g)
>  {
>    if (gimple_code (g) != GIMPLE_OMP_ATOMIC_LOAD)
> @@ -2518,7 +2518,7 @@ gimple_omp_atomic_weak_p (const gimple *g)
>
>  /* Set the GF_OMP_ATOMIC_WEAK flag on G.  */
>
> -static inline void
> +inline void
>  gimple_omp_atomic_set_weak (gimple *g)
>  {
>    if (gimple_code (g) != GIMPLE_OMP_ATOMIC_LOAD)
> @@ -2529,7 +2529,7 @@ gimple_omp_atomic_set_weak (gimple *g)
>
>  /* Return the memory order of the OMP atomic load/store statement G.  */
>
> -static inline enum omp_memory_order
> +inline enum omp_memory_order
>  gimple_omp_atomic_memory_order (const gimple *g)
>  {
>    if (gimple_code (g) != GIMPLE_OMP_ATOMIC_LOAD)
> @@ -2541,7 +2541,7 @@ gimple_omp_atomic_memory_order (const gimple *g)
>
>  /* Set the memory order on G.  */
>
> -static inline void
> +inline void
>  gimple_omp_atomic_set_memory_order (gimple *g, enum omp_memory_order mo)
>  {
>    if (gimple_code (g) != GIMPLE_OMP_ATOMIC_LOAD)
> @@ -2553,7 +2553,7 @@ gimple_omp_atomic_set_memory_order (gimple *g, enum omp_memory_order mo)
>
>  /* Return the number of operands for statement GS.  */
>
> -static inline unsigned
> +inline unsigned
>  gimple_num_ops (const gimple *gs)
>  {
>    return gs->num_ops;
> @@ -2562,7 +2562,7 @@ gimple_num_ops (const gimple *gs)
>
>  /* Set the number of operands for statement GS.  */
>
> -static inline void
> +inline void
>  gimple_set_num_ops (gimple *gs, unsigned num_ops)
>  {
>    gs->num_ops = num_ops;
> @@ -2571,7 +2571,7 @@ gimple_set_num_ops (gimple *gs, unsigned num_ops)
>
>  /* Return the array of operands for statement GS.  */
>
> -static inline tree *
> +inline tree *
>  gimple_ops (gimple *gs)
>  {
>    size_t off;
> @@ -2588,7 +2588,7 @@ gimple_ops (gimple *gs)
>
>  /* Return operand I for statement GS.  */
>
> -static inline tree
> +inline tree
>  gimple_op (const gimple *gs, unsigned i)
>  {
>    if (gimple_has_ops (gs))
> @@ -2602,7 +2602,7 @@ gimple_op (const gimple *gs, unsigned i)
>
>  /* Return a pointer to operand I for statement GS.  */
>
> -static inline tree *
> +inline tree *
>  gimple_op_ptr (gimple *gs, unsigned i)
>  {
>    if (gimple_has_ops (gs))
> @@ -2616,7 +2616,7 @@ gimple_op_ptr (gimple *gs, unsigned i)
>
>  /* Set operand I of statement GS to OP.  */
>
> -static inline void
> +inline void
>  gimple_set_op (gimple *gs, unsigned i, tree op)
>  {
>    gcc_gimple_checking_assert (gimple_has_ops (gs) && i < gimple_num_ops (gs));
> @@ -2630,7 +2630,7 @@ gimple_set_op (gimple *gs, unsigned i, tree op)
>
>  /* Return true if GS is a GIMPLE_ASSIGN.  */
>
> -static inline bool
> +inline bool
>  is_gimple_assign (const gimple *gs)
>  {
>    return gimple_code (gs) == GIMPLE_ASSIGN;
> @@ -2639,7 +2639,7 @@ is_gimple_assign (const gimple *gs)
>  /* Determine if expression CODE is one of the valid expressions that can
>     be used on the RHS of GIMPLE assignments.  */
>
> -static inline enum gimple_rhs_class
> +inline enum gimple_rhs_class
>  get_gimple_rhs_class (enum tree_code code)
>  {
>    return (enum gimple_rhs_class) gimple_rhs_class_table[(int) code];
> @@ -2647,13 +2647,13 @@ get_gimple_rhs_class (enum tree_code code)
>
>  /* Return the LHS of assignment statement GS.  */
>
> -static inline tree
> +inline tree
>  gimple_assign_lhs (const gassign *gs)
>  {
>    return gs->op[0];
>  }
>
> -static inline tree
> +inline tree
>  gimple_assign_lhs (const gimple *gs)
>  {
>    const gassign *ass = GIMPLE_CHECK2<const gassign *> (gs);
> @@ -2663,13 +2663,13 @@ gimple_assign_lhs (const gimple *gs)
>
>  /* Return a pointer to the LHS of assignment statement GS.  */
>
> -static inline tree *
> +inline tree *
>  gimple_assign_lhs_ptr (gassign *gs)
>  {
>    return &gs->op[0];
>  }
>
> -static inline tree *
> +inline tree *
>  gimple_assign_lhs_ptr (gimple *gs)
>  {
>    gassign *ass = GIMPLE_CHECK2<gassign *> (gs);
> @@ -2679,7 +2679,7 @@ gimple_assign_lhs_ptr (gimple *gs)
>
>  /* Set LHS to be the LHS operand of assignment statement GS.  */
>
> -static inline void
> +inline void
>  gimple_assign_set_lhs (gassign *gs, tree lhs)
>  {
>    gs->op[0] = lhs;
> @@ -2688,7 +2688,7 @@ gimple_assign_set_lhs (gassign *gs, tree lhs)
>      SSA_NAME_DEF_STMT (lhs) = gs;
>  }
>
> -static inline void
> +inline void
>  gimple_assign_set_lhs (gimple *gs, tree lhs)
>  {
>    gassign *ass = GIMPLE_CHECK2<gassign *> (gs);
> @@ -2698,13 +2698,13 @@ gimple_assign_set_lhs (gimple *gs, tree lhs)
>
>  /* Return the first operand on the RHS of assignment statement GS.  */
>
> -static inline tree
> +inline tree
>  gimple_assign_rhs1 (const gassign *gs)
>  {
>    return gs->op[1];
>  }
>
> -static inline tree
> +inline tree
>  gimple_assign_rhs1 (const gimple *gs)
>  {
>    const gassign *ass = GIMPLE_CHECK2<const gassign *> (gs);
> @@ -2715,13 +2715,13 @@ gimple_assign_rhs1 (const gimple *gs)
>  /* Return a pointer to the first operand on the RHS of assignment
>     statement GS.  */
>
> -static inline tree *
> +inline tree *
>  gimple_assign_rhs1_ptr (gassign *gs)
>  {
>    return &gs->op[1];
>  }
>
> -static inline tree *
> +inline tree *
>  gimple_assign_rhs1_ptr (gimple *gs)
>  {
>    gassign *ass = GIMPLE_CHECK2<gassign *> (gs);
> @@ -2730,13 +2730,13 @@ gimple_assign_rhs1_ptr (gimple *gs)
>
>  /* Set RHS to be the first operand on the RHS of assignment statement GS.  */
>
> -static inline void
> +inline void
>  gimple_assign_set_rhs1 (gassign *gs, tree rhs)
>  {
>    gs->op[1] = rhs;
>  }
>
> -static inline void
> +inline void
>  gimple_assign_set_rhs1 (gimple *gs, tree rhs)
>  {
>    gassign *ass = GIMPLE_CHECK2<gassign *> (gs);
> @@ -2747,7 +2747,7 @@ gimple_assign_set_rhs1 (gimple *gs, tree rhs)
>  /* Return the second operand on the RHS of assignment statement GS.
>     If GS does not have two operands, NULL is returned instead.  */
>
> -static inline tree
> +inline tree
>  gimple_assign_rhs2 (const gassign *gs)
>  {
>    if (gimple_num_ops (gs) >= 3)
> @@ -2756,7 +2756,7 @@ gimple_assign_rhs2 (const gassign *gs)
>      return NULL_TREE;
>  }
>
> -static inline tree
> +inline tree
>  gimple_assign_rhs2 (const gimple *gs)
>  {
>    const gassign *ass = GIMPLE_CHECK2<const gassign *> (gs);
> @@ -2767,14 +2767,14 @@ gimple_assign_rhs2 (const gimple *gs)
>  /* Return a pointer to the second operand on the RHS of assignment
>     statement GS.  */
>
> -static inline tree *
> +inline tree *
>  gimple_assign_rhs2_ptr (gassign *gs)
>  {
>    gcc_gimple_checking_assert (gimple_num_ops (gs) >= 3);
>    return &gs->op[2];
>  }
>
> -static inline tree *
> +inline tree *
>  gimple_assign_rhs2_ptr (gimple *gs)
>  {
>    gassign *ass = GIMPLE_CHECK2<gassign *> (gs);
> @@ -2784,14 +2784,14 @@ gimple_assign_rhs2_ptr (gimple *gs)
>
>  /* Set RHS to be the second operand on the RHS of assignment statement GS.  */
>
> -static inline void
> +inline void
>  gimple_assign_set_rhs2 (gassign *gs, tree rhs)
>  {
>    gcc_gimple_checking_assert (gimple_num_ops (gs) >= 3);
>    gs->op[2] = rhs;
>  }
>
> -static inline void
> +inline void
>  gimple_assign_set_rhs2 (gimple *gs, tree rhs)
>  {
>    gassign *ass = GIMPLE_CHECK2<gassign *> (gs);
> @@ -2801,7 +2801,7 @@ gimple_assign_set_rhs2 (gimple *gs, tree rhs)
>  /* Return the third operand on the RHS of assignment statement GS.
>     If GS does not have two operands, NULL is returned instead.  */
>
> -static inline tree
> +inline tree
>  gimple_assign_rhs3 (const gassign *gs)
>  {
>    if (gimple_num_ops (gs) >= 4)
> @@ -2810,7 +2810,7 @@ gimple_assign_rhs3 (const gassign *gs)
>      return NULL_TREE;
>  }
>
> -static inline tree
> +inline tree
>  gimple_assign_rhs3 (const gimple *gs)
>  {
>    const gassign *ass = GIMPLE_CHECK2<const gassign *> (gs);
> @@ -2820,7 +2820,7 @@ gimple_assign_rhs3 (const gimple *gs)
>  /* Return a pointer to the third operand on the RHS of assignment
>     statement GS.  */
>
> -static inline tree *
> +inline tree *
>  gimple_assign_rhs3_ptr (gimple *gs)
>  {
>    gassign *ass = GIMPLE_CHECK2<gassign *> (gs);
> @@ -2831,14 +2831,14 @@ gimple_assign_rhs3_ptr (gimple *gs)
>
>  /* Set RHS to be the third operand on the RHS of assignment statement GS.  */
>
> -static inline void
> +inline void
>  gimple_assign_set_rhs3 (gassign *gs, tree rhs)
>  {
>    gcc_gimple_checking_assert (gimple_num_ops (gs) >= 4);
>    gs->op[3] = rhs;
>  }
>
> -static inline void
> +inline void
>  gimple_assign_set_rhs3 (gimple *gs, tree rhs)
>  {
>    gassign *ass = GIMPLE_CHECK2<gassign *> (gs);
> @@ -2849,7 +2849,7 @@ gimple_assign_set_rhs3 (gimple *gs, tree rhs)
>  /* A wrapper around 3 operand gimple_assign_set_rhs_with_ops, for callers
>     which expect to see only two operands.  */
>
> -static inline void
> +inline void
>  gimple_assign_set_rhs_with_ops (gimple_stmt_iterator *gsi, enum tree_code code,
>                                 tree op1, tree op2)
>  {
> @@ -2859,7 +2859,7 @@ gimple_assign_set_rhs_with_ops (gimple_stmt_iterator *gsi, enum tree_code code,
>  /* A wrapper around 3 operand gimple_assign_set_rhs_with_ops, for callers
>     which expect to see only one operands.  */
>
> -static inline void
> +inline void
>  gimple_assign_set_rhs_with_ops (gimple_stmt_iterator *gsi, enum tree_code code,
>                                 tree op1)
>  {
> @@ -2868,7 +2868,7 @@ gimple_assign_set_rhs_with_ops (gimple_stmt_iterator *gsi, enum tree_code code,
>
>  /* Returns true if GS is a nontemporal move.  */
>
> -static inline bool
> +inline bool
>  gimple_assign_nontemporal_move_p (const gassign *gs)
>  {
>    return gs->nontemporal_move;
> @@ -2876,7 +2876,7 @@ gimple_assign_nontemporal_move_p (const gassign *gs)
>
>  /* Sets nontemporal move flag of GS to NONTEMPORAL.  */
>
> -static inline void
> +inline void
>  gimple_assign_set_nontemporal_move (gimple *gs, bool nontemporal)
>  {
>    GIMPLE_CHECK (gs, GIMPLE_ASSIGN);
> @@ -2888,7 +2888,7 @@ gimple_assign_set_nontemporal_move (gimple *gs, bool nontemporal)
>     statement GS.  In case that the RHS is a single object, returns the
>     tree code of the object.  */
>
> -static inline enum tree_code
> +inline enum tree_code
>  gimple_assign_rhs_code (const gassign *gs)
>  {
>    enum tree_code code = (enum tree_code) gs->subcode;
> @@ -2901,7 +2901,7 @@ gimple_assign_rhs_code (const gassign *gs)
>    return code;
>  }
>
> -static inline enum tree_code
> +inline enum tree_code
>  gimple_assign_rhs_code (const gimple *gs)
>  {
>    const gassign *ass = GIMPLE_CHECK2<const gassign *> (gs);
> @@ -2912,7 +2912,7 @@ gimple_assign_rhs_code (const gimple *gs)
>  /* Set CODE to be the code for the expression computed on the RHS of
>     assignment S.  */
>
> -static inline void
> +inline void
>  gimple_assign_set_rhs_code (gimple *s, enum tree_code code)
>  {
>    GIMPLE_CHECK (s, GIMPLE_ASSIGN);
> @@ -2924,7 +2924,7 @@ gimple_assign_set_rhs_code (gimple *s, enum tree_code code)
>     the rhs of assignment statement GS.
>     This will never return GIMPLE_INVALID_RHS.  */
>
> -static inline enum gimple_rhs_class
> +inline enum gimple_rhs_class
>  gimple_assign_rhs_class (const gimple *gs)
>  {
>    return get_gimple_rhs_class (gimple_assign_rhs_code (gs));
> @@ -2936,7 +2936,7 @@ gimple_assign_rhs_class (const gimple *gs)
>     any RHS operand, including those that perform an operation
>     and do not have the semantics of a copy, such as COND_EXPR.  */
>
> -static inline bool
> +inline bool
>  gimple_assign_single_p (const gimple *gs)
>  {
>    return (is_gimple_assign (gs)
> @@ -2945,7 +2945,7 @@ gimple_assign_single_p (const gimple *gs)
>
>  /* Return true if GS performs a store to its lhs.  */
>
> -static inline bool
> +inline bool
>  gimple_store_p (const gimple *gs)
>  {
>    tree lhs = gimple_get_lhs (gs);
> @@ -2954,7 +2954,7 @@ gimple_store_p (const gimple *gs)
>
>  /* Return true if GS is an assignment that loads from its rhs1.  */
>
> -static inline bool
> +inline bool
>  gimple_assign_load_p (const gimple *gs)
>  {
>    tree rhs;
> @@ -2971,7 +2971,7 @@ gimple_assign_load_p (const gimple *gs)
>
>  /* Return true if S is a type-cast assignment.  */
>
> -static inline bool
> +inline bool
>  gimple_assign_cast_p (const gimple *s)
>  {
>    if (is_gimple_assign (s))
> @@ -2987,7 +2987,7 @@ gimple_assign_cast_p (const gimple *s)
>
>  /* Return true if S is a clobber statement.  */
>
> -static inline bool
> +inline bool
>  gimple_clobber_p (const gimple *s)
>  {
>    return gimple_assign_single_p (s)
> @@ -2996,7 +2996,7 @@ gimple_clobber_p (const gimple *s)
>
>  /* Return true if S is a clobber statement.  */
>
> -static inline bool
> +inline bool
>  gimple_clobber_p (const gimple *s, enum clobber_kind kind)
>  {
>    return gimple_clobber_p (s)
> @@ -3005,7 +3005,7 @@ gimple_clobber_p (const gimple *s, enum clobber_kind kind)
>
>  /* Return true if GS is a GIMPLE_CALL.  */
>
> -static inline bool
> +inline bool
>  is_gimple_call (const gimple *gs)
>  {
>    return gimple_code (gs) == GIMPLE_CALL;
> @@ -3013,13 +3013,13 @@ is_gimple_call (const gimple *gs)
>
>  /* Return the LHS of call statement GS.  */
>
> -static inline tree
> +inline tree
>  gimple_call_lhs (const gcall *gs)
>  {
>    return gs->op[0];
>  }
>
> -static inline tree
> +inline tree
>  gimple_call_lhs (const gimple *gs)
>  {
>    const gcall *gc = GIMPLE_CHECK2<const gcall *> (gs);
> @@ -3029,13 +3029,13 @@ gimple_call_lhs (const gimple *gs)
>
>  /* Return a pointer to the LHS of call statement GS.  */
>
> -static inline tree *
> +inline tree *
>  gimple_call_lhs_ptr (gcall *gs)
>  {
>    return &gs->op[0];
>  }
>
> -static inline tree *
> +inline tree *
>  gimple_call_lhs_ptr (gimple *gs)
>  {
>    gcall *gc = GIMPLE_CHECK2<gcall *> (gs);
> @@ -3045,7 +3045,7 @@ gimple_call_lhs_ptr (gimple *gs)
>
>  /* Set LHS to be the LHS operand of call statement GS.  */
>
> -static inline void
> +inline void
>  gimple_call_set_lhs (gcall *gs, tree lhs)
>  {
>    gs->op[0] = lhs;
> @@ -3053,7 +3053,7 @@ gimple_call_set_lhs (gcall *gs, tree lhs)
>      SSA_NAME_DEF_STMT (lhs) = gs;
>  }
>
> -static inline void
> +inline void
>  gimple_call_set_lhs (gimple *gs, tree lhs)
>  {
>    gcall *gc = GIMPLE_CHECK2<gcall *> (gs);
> @@ -3064,13 +3064,13 @@ gimple_call_set_lhs (gimple *gs, tree lhs)
>  /* Return true if call GS calls an internal-only function, as enumerated
>     by internal_fn.  */
>
> -static inline bool
> +inline bool
>  gimple_call_internal_p (const gcall *gs)
>  {
>    return (gs->subcode & GF_CALL_INTERNAL) != 0;
>  }
>
> -static inline bool
> +inline bool
>  gimple_call_internal_p (const gimple *gs)
>  {
>    const gcall *gc = GIMPLE_CHECK2<const gcall *> (gs);
> @@ -3079,7 +3079,7 @@ gimple_call_internal_p (const gimple *gs)
>
>  /* Return true if call GS is marked as nocf_check.  */
>
> -static inline bool
> +inline bool
>  gimple_call_nocf_check_p (const gcall *gs)
>  {
>    return (gs->subcode & GF_CALL_NOCF_CHECK) != 0;
> @@ -3087,7 +3087,7 @@ gimple_call_nocf_check_p (const gcall *gs)
>
>  /* Mark statement GS as nocf_check call.  */
>
> -static inline void
> +inline void
>  gimple_call_set_nocf_check (gcall *gs, bool nocf_check)
>  {
>    if (nocf_check)
> @@ -3098,14 +3098,14 @@ gimple_call_set_nocf_check (gcall *gs, bool nocf_check)
>
>  /* Return the target of internal call GS.  */
>
> -static inline enum internal_fn
> +inline enum internal_fn
>  gimple_call_internal_fn (const gcall *gs)
>  {
>    gcc_gimple_checking_assert (gimple_call_internal_p (gs));
>    return gs->u.internal_fn;
>  }
>
> -static inline enum internal_fn
> +inline enum internal_fn
>  gimple_call_internal_fn (const gimple *gs)
>  {
>    const gcall *gc = GIMPLE_CHECK2<const gcall *> (gs);
> @@ -3114,13 +3114,13 @@ gimple_call_internal_fn (const gimple *gs)
>
>  /* Return true, if this internal gimple call is unique.  */
>
> -static inline bool
> +inline bool
>  gimple_call_internal_unique_p (const gcall *gs)
>  {
>    return gimple_call_internal_fn (gs) == IFN_UNIQUE;
>  }
>
> -static inline bool
> +inline bool
>  gimple_call_internal_unique_p (const gimple *gs)
>  {
>    const gcall *gc = GIMPLE_CHECK2<const gcall *> (gs);
> @@ -3129,7 +3129,7 @@ gimple_call_internal_unique_p (const gimple *gs)
>
>  /* Return true if GS is an internal function FN.  */
>
> -static inline bool
> +inline bool
>  gimple_call_internal_p (const gimple *gs, internal_fn fn)
>  {
>    return (is_gimple_call (gs)
> @@ -3140,7 +3140,7 @@ gimple_call_internal_p (const gimple *gs, internal_fn fn)
>  /* If CTRL_ALTERING_P is true, mark GIMPLE_CALL S to be a stmt
>     that could alter control flow.  */
>
> -static inline void
> +inline void
>  gimple_call_set_ctrl_altering (gcall *s, bool ctrl_altering_p)
>  {
>    if (ctrl_altering_p)
> @@ -3149,7 +3149,7 @@ gimple_call_set_ctrl_altering (gcall *s, bool ctrl_altering_p)
>      s->subcode &= ~GF_CALL_CTRL_ALTERING;
>  }
>
> -static inline void
> +inline void
>  gimple_call_set_ctrl_altering (gimple *s, bool ctrl_altering_p)
>  {
>    gcall *gc = GIMPLE_CHECK2<gcall *> (s);
> @@ -3159,13 +3159,13 @@ gimple_call_set_ctrl_altering (gimple *s, bool ctrl_altering_p)
>  /* Return true if call GS calls an func whose GF_CALL_CTRL_ALTERING
>     flag is set. Such call could not be a stmt in the middle of a bb.  */
>
> -static inline bool
> +inline bool
>  gimple_call_ctrl_altering_p (const gcall *gs)
>  {
>    return (gs->subcode & GF_CALL_CTRL_ALTERING) != 0;
>  }
>
> -static inline bool
> +inline bool
>  gimple_call_ctrl_altering_p (const gimple *gs)
>  {
>    const gcall *gc = GIMPLE_CHECK2<const gcall *> (gs);
> @@ -3175,7 +3175,7 @@ gimple_call_ctrl_altering_p (const gimple *gs)
>
>  /* Return the function type of the function called by GS.  */
>
> -static inline tree
> +inline tree
>  gimple_call_fntype (const gcall *gs)
>  {
>    if (gimple_call_internal_p (gs))
> @@ -3183,7 +3183,7 @@ gimple_call_fntype (const gcall *gs)
>    return gs->u.fntype;
>  }
>
> -static inline tree
> +inline tree
>  gimple_call_fntype (const gimple *gs)
>  {
>    const gcall *call_stmt = GIMPLE_CHECK2<const gcall *> (gs);
> @@ -3192,7 +3192,7 @@ gimple_call_fntype (const gimple *gs)
>
>  /* Set the type of the function called by CALL_STMT to FNTYPE.  */
>
> -static inline void
> +inline void
>  gimple_call_set_fntype (gcall *call_stmt, tree fntype)
>  {
>    gcc_gimple_checking_assert (!gimple_call_internal_p (call_stmt));
> @@ -3203,13 +3203,13 @@ gimple_call_set_fntype (gcall *call_stmt, tree fntype)
>  /* Return the tree node representing the function called by call
>     statement GS.  */
>
> -static inline tree
> +inline tree
>  gimple_call_fn (const gcall *gs)
>  {
>    return gs->op[1];
>  }
>
> -static inline tree
> +inline tree
>  gimple_call_fn (const gimple *gs)
>  {
>    const gcall *gc = GIMPLE_CHECK2<const gcall *> (gs);
> @@ -3219,13 +3219,13 @@ gimple_call_fn (const gimple *gs)
>  /* Return a pointer to the tree node representing the function called by call
>     statement GS.  */
>
> -static inline tree *
> +inline tree *
>  gimple_call_fn_ptr (gcall *gs)
>  {
>    return &gs->op[1];
>  }
>
> -static inline tree *
> +inline tree *
>  gimple_call_fn_ptr (gimple *gs)
>  {
>    gcall *gc = GIMPLE_CHECK2<gcall *> (gs);
> @@ -3235,7 +3235,7 @@ gimple_call_fn_ptr (gimple *gs)
>
>  /* Set FN to be the function called by call statement GS.  */
>
> -static inline void
> +inline void
>  gimple_call_set_fn (gcall *gs, tree fn)
>  {
>    gcc_gimple_checking_assert (!gimple_call_internal_p (gs));
> @@ -3245,7 +3245,7 @@ gimple_call_set_fn (gcall *gs, tree fn)
>
>  /* Set FNDECL to be the function called by call statement GS.  */
>
> -static inline void
> +inline void
>  gimple_call_set_fndecl (gcall *gs, tree decl)
>  {
>    gcc_gimple_checking_assert (!gimple_call_internal_p (gs));
> @@ -3253,7 +3253,7 @@ gimple_call_set_fndecl (gcall *gs, tree decl)
>                           build_pointer_type (TREE_TYPE (decl)), decl);
>  }
>
> -static inline void
> +inline void
>  gimple_call_set_fndecl (gimple *gs, tree decl)
>  {
>    gcall *gc = GIMPLE_CHECK2<gcall *> (gs);
> @@ -3263,7 +3263,7 @@ gimple_call_set_fndecl (gimple *gs, tree decl)
>
>  /* Set internal function FN to be the function called by call statement CALL_STMT.  */
>
> -static inline void
> +inline void
>  gimple_call_set_internal_fn (gcall *call_stmt, enum internal_fn fn)
>  {
>    gcc_gimple_checking_assert (gimple_call_internal_p (call_stmt));
> @@ -3275,13 +3275,13 @@ gimple_call_set_internal_fn (gcall *call_stmt, enum internal_fn fn)
>     Otherwise return NULL.  This function is analogous to
>     get_callee_fndecl in tree land.  */
>
> -static inline tree
> +inline tree
>  gimple_call_fndecl (const gcall *gs)
>  {
>    return gimple_call_addr_fndecl (gimple_call_fn (gs));
>  }
>
> -static inline tree
> +inline tree
>  gimple_call_fndecl (const gimple *gs)
>  {
>    const gcall *gc = GIMPLE_CHECK2<const gcall *> (gs);
> @@ -3291,7 +3291,7 @@ gimple_call_fndecl (const gimple *gs)
>
>  /* Return the type returned by call statement GS.  */
>
> -static inline tree
> +inline tree
>  gimple_call_return_type (const gcall *gs)
>  {
>    tree type = gimple_call_fntype (gs);
> @@ -3307,13 +3307,13 @@ gimple_call_return_type (const gcall *gs)
>
>  /* Return the static chain for call statement GS.  */
>
> -static inline tree
> +inline tree
>  gimple_call_chain (const gcall *gs)
>  {
>    return gs->op[2];
>  }
>
> -static inline tree
> +inline tree
>  gimple_call_chain (const gimple *gs)
>  {
>    const gcall *gc = GIMPLE_CHECK2<const gcall *> (gs);
> @@ -3323,7 +3323,7 @@ gimple_call_chain (const gimple *gs)
>
>  /* Return a pointer to the static chain for call statement CALL_STMT.  */
>
> -static inline tree *
> +inline tree *
>  gimple_call_chain_ptr (gcall *call_stmt)
>  {
>    return &call_stmt->op[2];
> @@ -3331,7 +3331,7 @@ gimple_call_chain_ptr (gcall *call_stmt)
>
>  /* Set CHAIN to be the static chain for call statement CALL_STMT.  */
>
> -static inline void
> +inline void
>  gimple_call_set_chain (gcall *call_stmt, tree chain)
>  {
>    call_stmt->op[2] = chain;
> @@ -3340,13 +3340,13 @@ gimple_call_set_chain (gcall *call_stmt, tree chain)
>
>  /* Return the number of arguments used by call statement GS.  */
>
> -static inline unsigned
> +inline unsigned
>  gimple_call_num_args (const gcall *gs)
>  {
>    return gimple_num_ops (gs) - 3;
>  }
>
> -static inline unsigned
> +inline unsigned
>  gimple_call_num_args (const gimple *gs)
>  {
>    const gcall *gc = GIMPLE_CHECK2<const gcall *> (gs);
> @@ -3356,14 +3356,14 @@ gimple_call_num_args (const gimple *gs)
>
>  /* Return the argument at position INDEX for call statement GS.  */
>
> -static inline tree
> +inline tree
>  gimple_call_arg (const gcall *gs, unsigned index)
>  {
>    gcc_gimple_checking_assert (gimple_num_ops (gs) > index + 3);
>    return gs->op[index + 3];
>  }
>
> -static inline tree
> +inline tree
>  gimple_call_arg (const gimple *gs, unsigned index)
>  {
>    const gcall *gc = GIMPLE_CHECK2<const gcall *> (gs);
> @@ -3374,14 +3374,14 @@ gimple_call_arg (const gimple *gs, unsigned index)
>  /* Return a pointer to the argument at position INDEX for call
>     statement GS.  */
>
> -static inline tree *
> +inline tree *
>  gimple_call_arg_ptr (gcall *gs, unsigned index)
>  {
>    gcc_gimple_checking_assert (gimple_num_ops (gs) > index + 3);
>    return &gs->op[index + 3];
>  }
>
> -static inline tree *
> +inline tree *
>  gimple_call_arg_ptr (gimple *gs, unsigned index)
>  {
>    gcall *gc = GIMPLE_CHECK2<gcall *> (gs);
> @@ -3391,14 +3391,14 @@ gimple_call_arg_ptr (gimple *gs, unsigned index)
>
>  /* Set ARG to be the argument at position INDEX for call statement GS.  */
>
> -static inline void
> +inline void
>  gimple_call_set_arg (gcall *gs, unsigned index, tree arg)
>  {
>    gcc_gimple_checking_assert (gimple_num_ops (gs) > index + 3);
>    gs->op[index + 3] = arg;
>  }
>
> -static inline void
> +inline void
>  gimple_call_set_arg (gimple *gs, unsigned index, tree arg)
>  {
>    gcall *gc = GIMPLE_CHECK2<gcall *> (gs);
> @@ -3410,7 +3410,7 @@ gimple_call_set_arg (gimple *gs, unsigned index, tree arg)
>     (i.e., a call just before the exit of a function).  These calls are
>     candidate for tail call optimization.  */
>
> -static inline void
> +inline void
>  gimple_call_set_tail (gcall *s, bool tail_p)
>  {
>    if (tail_p)
> @@ -3422,7 +3422,7 @@ gimple_call_set_tail (gcall *s, bool tail_p)
>
>  /* Return true if GIMPLE_CALL S is marked as a tail call.  */
>
> -static inline bool
> +inline bool
>  gimple_call_tail_p (const gcall *s)
>  {
>    return (s->subcode & GF_CALL_TAILCALL) != 0;
> @@ -3430,7 +3430,7 @@ gimple_call_tail_p (const gcall *s)
>
>  /* Mark (or clear) call statement S as requiring tail call optimization.  */
>
> -static inline void
> +inline void
>  gimple_call_set_must_tail (gcall *s, bool must_tail_p)
>  {
>    if (must_tail_p)
> @@ -3442,7 +3442,7 @@ gimple_call_set_must_tail (gcall *s, bool must_tail_p)
>  /* Return true if call statement has been marked as requiring
>     tail call optimization.  */
>
> -static inline bool
> +inline bool
>  gimple_call_must_tail_p (const gcall *s)
>  {
>    return (s->subcode & GF_CALL_MUST_TAIL_CALL) != 0;
> @@ -3452,7 +3452,7 @@ gimple_call_must_tail_p (const gcall *s)
>     slot optimization.  This transformation uses the target of the call
>     expansion as the return slot for calls that return in memory.  */
>
> -static inline void
> +inline void
>  gimple_call_set_return_slot_opt (gcall *s, bool return_slot_opt_p)
>  {
>    if (return_slot_opt_p)
> @@ -3464,7 +3464,7 @@ gimple_call_set_return_slot_opt (gcall *s, bool return_slot_opt_p)
>
>  /* Return true if S is marked for return slot optimization.  */
>
> -static inline bool
> +inline bool
>  gimple_call_return_slot_opt_p (const gcall *s)
>  {
>    return (s->subcode & GF_CALL_RETURN_SLOT_OPT) != 0;
> @@ -3474,7 +3474,7 @@ gimple_call_return_slot_opt_p (const gcall *s)
>  /* If FROM_THUNK_P is true, mark GIMPLE_CALL S as being the jump from a
>     thunk to the thunked-to function.  */
>
> -static inline void
> +inline void
>  gimple_call_set_from_thunk (gcall *s, bool from_thunk_p)
>  {
>    if (from_thunk_p)
> @@ -3486,7 +3486,7 @@ gimple_call_set_from_thunk (gcall *s, bool from_thunk_p)
>
>  /* Return true if GIMPLE_CALL S is a jump from a thunk.  */
>
> -static inline bool
> +inline bool
>  gimple_call_from_thunk_p (gcall *s)
>  {
>    return (s->subcode & GF_CALL_FROM_THUNK) != 0;
> @@ -3496,7 +3496,7 @@ gimple_call_from_thunk_p (gcall *s)
>  /* If FROM_NEW_OR_DELETE_P is true, mark GIMPLE_CALL S as being a call
>     to operator new or delete created from a new or delete expression.  */
>
> -static inline void
> +inline void
>  gimple_call_set_from_new_or_delete (gcall *s, bool from_new_or_delete_p)
>  {
>    if (from_new_or_delete_p)
> @@ -3509,7 +3509,7 @@ gimple_call_set_from_new_or_delete (gcall *s, bool from_new_or_delete_p)
>  /* Return true if GIMPLE_CALL S is a call to operator new or delete from
>     from a new or delete expression.  */
>
> -static inline bool
> +inline bool
>  gimple_call_from_new_or_delete (const gcall *s)
>  {
>    return (s->subcode & GF_CALL_FROM_NEW_OR_DELETE) != 0;
> @@ -3519,7 +3519,7 @@ gimple_call_from_new_or_delete (const gcall *s)
>  /* If PASS_ARG_PACK_P is true, GIMPLE_CALL S is a stdarg call that needs the
>     argument pack in its argument list.  */
>
> -static inline void
> +inline void
>  gimple_call_set_va_arg_pack (gcall *s, bool pass_arg_pack_p)
>  {
>    if (pass_arg_pack_p)
> @@ -3532,7 +3532,7 @@ gimple_call_set_va_arg_pack (gcall *s, bool pass_arg_pack_p)
>  /* Return true if GIMPLE_CALL S is a stdarg call that needs the
>     argument pack in its argument list.  */
>
> -static inline bool
> +inline bool
>  gimple_call_va_arg_pack_p (const gcall *s)
>  {
>    return (s->subcode & GF_CALL_VA_ARG_PACK) != 0;
> @@ -3541,13 +3541,13 @@ gimple_call_va_arg_pack_p (const gcall *s)
>
>  /* Return true if S is a noreturn call.  */
>
> -static inline bool
> +inline bool
>  gimple_call_noreturn_p (const gcall *s)
>  {
>    return (gimple_call_flags (s) & ECF_NORETURN) != 0;
>  }
>
> -static inline bool
> +inline bool
>  gimple_call_noreturn_p (const gimple *s)
>  {
>    const gcall *gc = GIMPLE_CHECK2<const gcall *> (s);
> @@ -3558,7 +3558,7 @@ gimple_call_noreturn_p (const gimple *s)
>  /* If NOTHROW_P is true, GIMPLE_CALL S is a call that is known to not throw
>     even if the called function can throw in other cases.  */
>
> -static inline void
> +inline void
>  gimple_call_set_nothrow (gcall *s, bool nothrow_p)
>  {
>    if (nothrow_p)
> @@ -3569,7 +3569,7 @@ gimple_call_set_nothrow (gcall *s, bool nothrow_p)
>
>  /* Return true if S is a nothrow call.  */
>
> -static inline bool
> +inline bool
>  gimple_call_nothrow_p (gcall *s)
>  {
>    return (gimple_call_flags (s) & ECF_NOTHROW) != 0;
> @@ -3580,7 +3580,7 @@ gimple_call_nothrow_p (gcall *s)
>     stack_save/stack_restore calls and hence can't lead to unbounded
>     stack growth even when they occur in loops.  */
>
> -static inline void
> +inline void
>  gimple_call_set_alloca_for_var (gcall *s, bool for_var)
>  {
>    if (for_var)
> @@ -3591,13 +3591,13 @@ gimple_call_set_alloca_for_var (gcall *s, bool for_var)
>
>  /* Return true of S is a call to builtin_alloca emitted for VLA objects.  */
>
> -static inline bool
> +inline bool
>  gimple_call_alloca_for_var_p (gcall *s)
>  {
>    return (s->subcode & GF_CALL_ALLOCA_FOR_VAR) != 0;
>  }
>
> -static inline bool
> +inline bool
>  gimple_call_alloca_for_var_p (gimple *s)
>  {
>    const gcall *gc = GIMPLE_CHECK2<gcall *> (s);
> @@ -3607,7 +3607,7 @@ gimple_call_alloca_for_var_p (gimple *s)
>  /* If BY_DESCRIPTOR_P is true, GIMPLE_CALL S is an indirect call for which
>     pointers to nested function are descriptors instead of trampolines.  */
>
> -static inline void
> +inline void
>  gimple_call_set_by_descriptor (gcall  *s, bool by_descriptor_p)
>  {
>    if (by_descriptor_p)
> @@ -3618,7 +3618,7 @@ gimple_call_set_by_descriptor (gcall  *s, bool by_descriptor_p)
>
>  /* Return true if S is a by-descriptor call.  */
>
> -static inline bool
> +inline bool
>  gimple_call_by_descriptor_p (gcall *s)
>  {
>    return (s->subcode & GF_CALL_BY_DESCRIPTOR) != 0;
> @@ -3626,7 +3626,7 @@ gimple_call_by_descriptor_p (gcall *s)
>
>  /* Copy all the GF_CALL_* flags from ORIG_CALL to DEST_CALL.  */
>
> -static inline void
> +inline void
>  gimple_call_copy_flags (gcall *dest_call, gcall *orig_call)
>  {
>    dest_call->subcode = orig_call->subcode;
> @@ -3636,7 +3636,7 @@ gimple_call_copy_flags (gcall *dest_call, gcall *orig_call)
>  /* Return a pointer to the points-to solution for the set of call-used
>     variables of the call CALL_STMT.  */
>
> -static inline struct pt_solution *
> +inline struct pt_solution *
>  gimple_call_use_set (gcall *call_stmt)
>  {
>    return &call_stmt->call_used;
> @@ -3644,7 +3644,7 @@ gimple_call_use_set (gcall *call_stmt)
>
>  /* As above, but const.  */
>
> -static inline const pt_solution *
> +inline const pt_solution *
>  gimple_call_use_set (const gcall *call_stmt)
>  {
>    return &call_stmt->call_used;
> @@ -3653,7 +3653,7 @@ gimple_call_use_set (const gcall *call_stmt)
>  /* Return a pointer to the points-to solution for the set of call-used
>     variables of the call CALL_STMT.  */
>
> -static inline struct pt_solution *
> +inline struct pt_solution *
>  gimple_call_clobber_set (gcall *call_stmt)
>  {
>    return &call_stmt->call_clobbered;
> @@ -3661,7 +3661,7 @@ gimple_call_clobber_set (gcall *call_stmt)
>
>  /* As above, but const.  */
>
> -static inline const pt_solution *
> +inline const pt_solution *
>  gimple_call_clobber_set (const gcall *call_stmt)
>  {
>    return &call_stmt->call_clobbered;
> @@ -3671,7 +3671,7 @@ gimple_call_clobber_set (const gcall *call_stmt)
>  /* Returns true if this is a GIMPLE_ASSIGN or a GIMPLE_CALL with a
>     non-NULL lhs.  */
>
> -static inline bool
> +inline bool
>  gimple_has_lhs (const gimple *stmt)
>  {
>    if (is_gimple_assign (stmt))
> @@ -3684,13 +3684,13 @@ gimple_has_lhs (const gimple *stmt)
>
>  /* Return the code of the predicate computed by conditional statement GS.  */
>
> -static inline enum tree_code
> +inline enum tree_code
>  gimple_cond_code (const gcond *gs)
>  {
>    return (enum tree_code) gs->subcode;
>  }
>
> -static inline enum tree_code
> +inline enum tree_code
>  gimple_cond_code (const gimple *gs)
>  {
>    const gcond *gc = GIMPLE_CHECK2<const gcond *> (gs);
> @@ -3700,7 +3700,7 @@ gimple_cond_code (const gimple *gs)
>
>  /* Set CODE to be the predicate code for the conditional statement GS.  */
>
> -static inline void
> +inline void
>  gimple_cond_set_code (gcond *gs, enum tree_code code)
>  {
>    gs->subcode = code;
> @@ -3709,13 +3709,13 @@ gimple_cond_set_code (gcond *gs, enum tree_code code)
>
>  /* Return the LHS of the predicate computed by conditional statement GS.  */
>
> -static inline tree
> +inline tree
>  gimple_cond_lhs (const gcond *gs)
>  {
>    return gs->op[0];
>  }
>
> -static inline tree
> +inline tree
>  gimple_cond_lhs (const gimple *gs)
>  {
>    const gcond *gc = GIMPLE_CHECK2<const gcond *> (gs);
> @@ -3725,7 +3725,7 @@ gimple_cond_lhs (const gimple *gs)
>  /* Return the pointer to the LHS of the predicate computed by conditional
>     statement GS.  */
>
> -static inline tree *
> +inline tree *
>  gimple_cond_lhs_ptr (gcond *gs)
>  {
>    return &gs->op[0];
> @@ -3734,7 +3734,7 @@ gimple_cond_lhs_ptr (gcond *gs)
>  /* Set LHS to be the LHS operand of the predicate computed by
>     conditional statement GS.  */
>
> -static inline void
> +inline void
>  gimple_cond_set_lhs (gcond *gs, tree lhs)
>  {
>    gs->op[0] = lhs;
> @@ -3743,13 +3743,13 @@ gimple_cond_set_lhs (gcond *gs, tree lhs)
>
>  /* Return the RHS operand of the predicate computed by conditional GS.  */
>
> -static inline tree
> +inline tree
>  gimple_cond_rhs (const gcond *gs)
>  {
>    return gs->op[1];
>  }
>
> -static inline tree
> +inline tree
>  gimple_cond_rhs (const gimple *gs)
>  {
>    const gcond *gc = GIMPLE_CHECK2<const gcond *> (gs);
> @@ -3759,7 +3759,7 @@ gimple_cond_rhs (const gimple *gs)
>  /* Return the pointer to the RHS operand of the predicate computed by
>     conditional GS.  */
>
> -static inline tree *
> +inline tree *
>  gimple_cond_rhs_ptr (gcond *gs)
>  {
>    return &gs->op[1];
> @@ -3769,7 +3769,7 @@ gimple_cond_rhs_ptr (gcond *gs)
>  /* Set RHS to be the RHS operand of the predicate computed by
>     conditional statement GS.  */
>
> -static inline void
> +inline void
>  gimple_cond_set_rhs (gcond *gs, tree rhs)
>  {
>    gs->op[1] = rhs;
> @@ -3779,7 +3779,7 @@ gimple_cond_set_rhs (gcond *gs, tree rhs)
>  /* Return the label used by conditional statement GS when its
>     predicate evaluates to true.  */
>
> -static inline tree
> +inline tree
>  gimple_cond_true_label (const gcond *gs)
>  {
>    return gs->op[2];
> @@ -3789,7 +3789,7 @@ gimple_cond_true_label (const gcond *gs)
>  /* Set LABEL to be the label used by conditional statement GS when its
>     predicate evaluates to true.  */
>
> -static inline void
> +inline void
>  gimple_cond_set_true_label (gcond *gs, tree label)
>  {
>    gs->op[2] = label;
> @@ -3799,7 +3799,7 @@ gimple_cond_set_true_label (gcond *gs, tree label)
>  /* Set LABEL to be the label used by conditional statement GS when its
>     predicate evaluates to false.  */
>
> -static inline void
> +inline void
>  gimple_cond_set_false_label (gcond *gs, tree label)
>  {
>    gs->op[3] = label;
> @@ -3809,7 +3809,7 @@ gimple_cond_set_false_label (gcond *gs, tree label)
>  /* Return the label used by conditional statement GS when its
>     predicate evaluates to false.  */
>
> -static inline tree
> +inline tree
>  gimple_cond_false_label (const gcond *gs)
>  {
>    return gs->op[3];
> @@ -3818,7 +3818,7 @@ gimple_cond_false_label (const gcond *gs)
>
>  /* Set the conditional COND_STMT to be of the form 'if (1 == 0)'.  */
>
> -static inline void
> +inline void
>  gimple_cond_make_false (gcond *gs)
>  {
>    gimple_cond_set_lhs (gs, boolean_false_node);
> @@ -3829,7 +3829,7 @@ gimple_cond_make_false (gcond *gs)
>
>  /* Set the conditional COND_STMT to be of the form 'if (1 == 1)'.  */
>
> -static inline void
> +inline void
>  gimple_cond_make_true (gcond *gs)
>  {
>    gimple_cond_set_lhs (gs, boolean_true_node);
> @@ -3840,7 +3840,7 @@ gimple_cond_make_true (gcond *gs)
>  /* Check if conditional statemente GS is of the form 'if (1 == 1)',
>    'if (0 == 0)', 'if (1 != 0)' or 'if (0 != 1)' */
>
> -static inline bool
> +inline bool
>  gimple_cond_true_p (const gcond *gs)
>  {
>    tree lhs = gimple_cond_lhs (gs);
> @@ -3865,7 +3865,7 @@ gimple_cond_true_p (const gcond *gs)
>  /* Check if conditional statement GS is of the form 'if (1 != 1)',
>     'if (0 != 0)', 'if (1 == 0)' or 'if (0 == 1)' */
>
> -static inline bool
> +inline bool
>  gimple_cond_false_p (const gcond *gs)
>  {
>    tree lhs = gimple_cond_lhs (gs);
> @@ -3889,7 +3889,7 @@ gimple_cond_false_p (const gcond *gs)
>
>  /* Set the code, LHS and RHS of GIMPLE_COND STMT from CODE, LHS and RHS.  */
>
> -static inline void
> +inline void
>  gimple_cond_set_condition (gcond *stmt, enum tree_code code, tree lhs,
>                            tree rhs)
>  {
> @@ -3905,7 +3905,7 @@ gimple_cond_set_condition (gcond *stmt, enum tree_code code, tree lhs,
>     consistency.  This is useful when the caller needs to deal with the
>     three kinds of computation that GIMPLE supports.  */
>
> -static inline enum tree_code
> +inline enum tree_code
>  gimple_expr_code (const gimple *stmt)
>  {
>    if (const gassign *ass = dyn_cast<const gassign *> (stmt))
> @@ -3922,7 +3922,7 @@ gimple_expr_code (const gimple *stmt)
>
>  /* Return the LABEL_DECL node used by GIMPLE_LABEL statement GS.  */
>
> -static inline tree
> +inline tree
>  gimple_label_label (const glabel *gs)
>  {
>    return gs->op[0];
> @@ -3932,7 +3932,7 @@ gimple_label_label (const glabel *gs)
>  /* Set LABEL to be the LABEL_DECL node used by GIMPLE_LABEL statement
>     GS.  */
>
> -static inline void
> +inline void
>  gimple_label_set_label (glabel *gs, tree label)
>  {
>    gs->op[0] = label;
> @@ -3941,7 +3941,7 @@ gimple_label_set_label (glabel *gs, tree label)
>
>  /* Return the destination of the unconditional jump GS.  */
>
> -static inline tree
> +inline tree
>  gimple_goto_dest (const gimple *gs)
>  {
>    GIMPLE_CHECK (gs, GIMPLE_GOTO);
> @@ -3951,7 +3951,7 @@ gimple_goto_dest (const gimple *gs)
>
>  /* Set DEST to be the destination of the unconditonal jump GS.  */
>
> -static inline void
> +inline void
>  gimple_goto_set_dest (ggoto *gs, tree dest)
>  {
>    gs->op[0] = dest;
> @@ -3960,7 +3960,7 @@ gimple_goto_set_dest (ggoto *gs, tree dest)
>
>  /* Return the variables declared in the GIMPLE_BIND statement GS.  */
>
> -static inline tree
> +inline tree
>  gimple_bind_vars (const gbind *bind_stmt)
>  {
>    return bind_stmt->vars;
> @@ -3970,7 +3970,7 @@ gimple_bind_vars (const gbind *bind_stmt)
>  /* Set VARS to be the set of variables declared in the GIMPLE_BIND
>     statement GS.  */
>
> -static inline void
> +inline void
>  gimple_bind_set_vars (gbind *bind_stmt, tree vars)
>  {
>    bind_stmt->vars = vars;
> @@ -3980,14 +3980,14 @@ gimple_bind_set_vars (gbind *bind_stmt, tree vars)
>  /* Append VARS to the set of variables declared in the GIMPLE_BIND
>     statement GS.  */
>
> -static inline void
> +inline void
>  gimple_bind_append_vars (gbind *bind_stmt, tree vars)
>  {
>    bind_stmt->vars = chainon (bind_stmt->vars, vars);
>  }
>
>
> -static inline gimple_seq *
> +inline gimple_seq *
>  gimple_bind_body_ptr (gbind *bind_stmt)
>  {
>    return &bind_stmt->body;
> @@ -3995,7 +3995,7 @@ gimple_bind_body_ptr (gbind *bind_stmt)
>
>  /* Return the GIMPLE sequence contained in the GIMPLE_BIND statement GS.  */
>
> -static inline gimple_seq
> +inline gimple_seq
>  gimple_bind_body (const gbind *gs)
>  {
>    return *gimple_bind_body_ptr (const_cast <gbind *> (gs));
> @@ -4005,7 +4005,7 @@ gimple_bind_body (const gbind *gs)
>  /* Set SEQ to be the GIMPLE sequence contained in the GIMPLE_BIND
>     statement GS.  */
>
> -static inline void
> +inline void
>  gimple_bind_set_body (gbind *bind_stmt, gimple_seq seq)
>  {
>    bind_stmt->body = seq;
> @@ -4014,7 +4014,7 @@ gimple_bind_set_body (gbind *bind_stmt, gimple_seq seq)
>
>  /* Append a statement to the end of a GIMPLE_BIND's body.  */
>
> -static inline void
> +inline void
>  gimple_bind_add_stmt (gbind *bind_stmt, gimple *stmt)
>  {
>    gimple_seq_add_stmt (&bind_stmt->body, stmt);
> @@ -4023,7 +4023,7 @@ gimple_bind_add_stmt (gbind *bind_stmt, gimple *stmt)
>
>  /* Append a sequence of statements to the end of a GIMPLE_BIND's body.  */
>
> -static inline void
> +inline void
>  gimple_bind_add_seq (gbind *bind_stmt, gimple_seq seq)
>  {
>    gimple_seq_add_seq (&bind_stmt->body, seq);
> @@ -4033,7 +4033,7 @@ gimple_bind_add_seq (gbind *bind_stmt, gimple_seq seq)
>  /* Return the TREE_BLOCK node associated with GIMPLE_BIND statement
>     GS.  This is analogous to the BIND_EXPR_BLOCK field in trees.  */
>
> -static inline tree
> +inline tree
>  gimple_bind_block (const gbind *bind_stmt)
>  {
>    return bind_stmt->block;
> @@ -4043,7 +4043,7 @@ gimple_bind_block (const gbind *bind_stmt)
>  /* Set BLOCK to be the TREE_BLOCK node associated with GIMPLE_BIND
>     statement GS.  */
>
> -static inline void
> +inline void
>  gimple_bind_set_block (gbind *bind_stmt, tree block)
>  {
>    gcc_gimple_checking_assert (block == NULL_TREE
> @@ -4054,7 +4054,7 @@ gimple_bind_set_block (gbind *bind_stmt, tree block)
>
>  /* Return the number of input operands for GIMPLE_ASM ASM_STMT.  */
>
> -static inline unsigned
> +inline unsigned
>  gimple_asm_ninputs (const gasm *asm_stmt)
>  {
>    return asm_stmt->ni;
> @@ -4063,7 +4063,7 @@ gimple_asm_ninputs (const gasm *asm_stmt)
>
>  /* Return the number of output operands for GIMPLE_ASM ASM_STMT.  */
>
> -static inline unsigned
> +inline unsigned
>  gimple_asm_noutputs (const gasm *asm_stmt)
>  {
>    return asm_stmt->no;
> @@ -4072,7 +4072,7 @@ gimple_asm_noutputs (const gasm *asm_stmt)
>
>  /* Return the number of clobber operands for GIMPLE_ASM ASM_STMT.  */
>
> -static inline unsigned
> +inline unsigned
>  gimple_asm_nclobbers (const gasm *asm_stmt)
>  {
>    return asm_stmt->nc;
> @@ -4080,7 +4080,7 @@ gimple_asm_nclobbers (const gasm *asm_stmt)
>
>  /* Return the number of label operands for GIMPLE_ASM ASM_STMT.  */
>
> -static inline unsigned
> +inline unsigned
>  gimple_asm_nlabels (const gasm *asm_stmt)
>  {
>    return asm_stmt->nl;
> @@ -4088,7 +4088,7 @@ gimple_asm_nlabels (const gasm *asm_stmt)
>
>  /* Return input operand INDEX of GIMPLE_ASM ASM_STMT.  */
>
> -static inline tree
> +inline tree
>  gimple_asm_input_op (const gasm *asm_stmt, unsigned index)
>  {
>    gcc_gimple_checking_assert (index < asm_stmt->ni);
> @@ -4097,7 +4097,7 @@ gimple_asm_input_op (const gasm *asm_stmt, unsigned index)
>
>  /* Set IN_OP to be input operand INDEX in GIMPLE_ASM ASM_STMT.  */
>
> -static inline void
> +inline void
>  gimple_asm_set_input_op (gasm *asm_stmt, unsigned index, tree in_op)
>  {
>    gcc_gimple_checking_assert (index < asm_stmt->ni
> @@ -4108,7 +4108,7 @@ gimple_asm_set_input_op (gasm *asm_stmt, unsigned index, tree in_op)
>
>  /* Return output operand INDEX of GIMPLE_ASM ASM_STMT.  */
>
> -static inline tree
> +inline tree
>  gimple_asm_output_op (const gasm *asm_stmt, unsigned index)
>  {
>    gcc_gimple_checking_assert (index < asm_stmt->no);
> @@ -4117,7 +4117,7 @@ gimple_asm_output_op (const gasm *asm_stmt, unsigned index)
>
>  /* Set OUT_OP to be output operand INDEX in GIMPLE_ASM ASM_STMT.  */
>
> -static inline void
> +inline void
>  gimple_asm_set_output_op (gasm *asm_stmt, unsigned index, tree out_op)
>  {
>    gcc_gimple_checking_assert (index < asm_stmt->no
> @@ -4128,7 +4128,7 @@ gimple_asm_set_output_op (gasm *asm_stmt, unsigned index, tree out_op)
>
>  /* Return clobber operand INDEX of GIMPLE_ASM ASM_STMT.  */
>
> -static inline tree
> +inline tree
>  gimple_asm_clobber_op (const gasm *asm_stmt, unsigned index)
>  {
>    gcc_gimple_checking_assert (index < asm_stmt->nc);
> @@ -4138,7 +4138,7 @@ gimple_asm_clobber_op (const gasm *asm_stmt, unsigned index)
>
>  /* Set CLOBBER_OP to be clobber operand INDEX in GIMPLE_ASM ASM_STMT.  */
>
> -static inline void
> +inline void
>  gimple_asm_set_clobber_op (gasm *asm_stmt, unsigned index, tree clobber_op)
>  {
>    gcc_gimple_checking_assert (index < asm_stmt->nc
> @@ -4148,7 +4148,7 @@ gimple_asm_set_clobber_op (gasm *asm_stmt, unsigned index, tree clobber_op)
>
>  /* Return label operand INDEX of GIMPLE_ASM ASM_STMT.  */
>
> -static inline tree
> +inline tree
>  gimple_asm_label_op (const gasm *asm_stmt, unsigned index)
>  {
>    gcc_gimple_checking_assert (index < asm_stmt->nl);
> @@ -4157,7 +4157,7 @@ gimple_asm_label_op (const gasm *asm_stmt, unsigned index)
>
>  /* Set LABEL_OP to be label operand INDEX in GIMPLE_ASM ASM_STMT.  */
>
> -static inline void
> +inline void
>  gimple_asm_set_label_op (gasm *asm_stmt, unsigned index, tree label_op)
>  {
>    gcc_gimple_checking_assert (index < asm_stmt->nl
> @@ -4168,7 +4168,7 @@ gimple_asm_set_label_op (gasm *asm_stmt, unsigned index, tree label_op)
>  /* Return the string representing the assembly instruction in
>     GIMPLE_ASM ASM_STMT.  */
>
> -static inline const char *
> +inline const char *
>  gimple_asm_string (const gasm *asm_stmt)
>  {
>    return asm_stmt->string;
> @@ -4177,7 +4177,7 @@ gimple_asm_string (const gasm *asm_stmt)
>
>  /* Return true if ASM_STMT is marked volatile.  */
>
> -static inline bool
> +inline bool
>  gimple_asm_volatile_p (const gasm *asm_stmt)
>  {
>    return (asm_stmt->subcode & GF_ASM_VOLATILE) != 0;
> @@ -4186,7 +4186,7 @@ gimple_asm_volatile_p (const gasm *asm_stmt)
>
>  /* If VOLATILE_P is true, mark asm statement ASM_STMT as volatile.  */
>
> -static inline void
> +inline void
>  gimple_asm_set_volatile (gasm *asm_stmt, bool volatile_p)
>  {
>    if (volatile_p)
> @@ -4198,7 +4198,7 @@ gimple_asm_set_volatile (gasm *asm_stmt, bool volatile_p)
>
>  /* Return true if ASM_STMT is marked inline.  */
>
> -static inline bool
> +inline bool
>  gimple_asm_inline_p (const gasm *asm_stmt)
>  {
>    return (asm_stmt->subcode & GF_ASM_INLINE) != 0;
> @@ -4207,7 +4207,7 @@ gimple_asm_inline_p (const gasm *asm_stmt)
>
>  /* If INLINE_P is true, mark asm statement ASM_STMT as inline.  */
>
> -static inline void
> +inline void
>  gimple_asm_set_inline (gasm *asm_stmt, bool inline_p)
>  {
>    if (inline_p)
> @@ -4219,7 +4219,7 @@ gimple_asm_set_inline (gasm *asm_stmt, bool inline_p)
>
>  /* If INPUT_P is true, mark asm ASM_STMT as an ASM_INPUT.  */
>
> -static inline void
> +inline void
>  gimple_asm_set_input (gasm *asm_stmt, bool input_p)
>  {
>    if (input_p)
> @@ -4231,7 +4231,7 @@ gimple_asm_set_input (gasm *asm_stmt, bool input_p)
>
>  /* Return true if asm ASM_STMT is an ASM_INPUT.  */
>
> -static inline bool
> +inline bool
>  gimple_asm_input_p (const gasm *asm_stmt)
>  {
>    return (asm_stmt->subcode & GF_ASM_INPUT) != 0;
> @@ -4240,7 +4240,7 @@ gimple_asm_input_p (const gasm *asm_stmt)
>
>  /* Return the types handled by GIMPLE_CATCH statement CATCH_STMT.  */
>
> -static inline tree
> +inline tree
>  gimple_catch_types (const gcatch *catch_stmt)
>  {
>    return catch_stmt->types;
> @@ -4249,7 +4249,7 @@ gimple_catch_types (const gcatch *catch_stmt)
>
>  /* Return a pointer to the types handled by GIMPLE_CATCH statement CATCH_STMT.  */
>
> -static inline tree *
> +inline tree *
>  gimple_catch_types_ptr (gcatch *catch_stmt)
>  {
>    return &catch_stmt->types;
> @@ -4259,7 +4259,7 @@ gimple_catch_types_ptr (gcatch *catch_stmt)
>  /* Return a pointer to the GIMPLE sequence representing the body of
>     the handler of GIMPLE_CATCH statement CATCH_STMT.  */
>
> -static inline gimple_seq *
> +inline gimple_seq *
>  gimple_catch_handler_ptr (gcatch *catch_stmt)
>  {
>    return &catch_stmt->handler;
> @@ -4269,7 +4269,7 @@ gimple_catch_handler_ptr (gcatch *catch_stmt)
>  /* Return the GIMPLE sequence representing the body of the handler of
>     GIMPLE_CATCH statement CATCH_STMT.  */
>
> -static inline gimple_seq
> +inline gimple_seq
>  gimple_catch_handler (const gcatch *catch_stmt)
>  {
>    return *gimple_catch_handler_ptr (const_cast <gcatch *> (catch_stmt));
> @@ -4278,7 +4278,7 @@ gimple_catch_handler (const gcatch *catch_stmt)
>
>  /* Set T to be the set of types handled by GIMPLE_CATCH CATCH_STMT.  */
>
> -static inline void
> +inline void
>  gimple_catch_set_types (gcatch *catch_stmt, tree t)
>  {
>    catch_stmt->types = t;
> @@ -4287,7 +4287,7 @@ gimple_catch_set_types (gcatch *catch_stmt, tree t)
>
>  /* Set HANDLER to be the body of GIMPLE_CATCH CATCH_STMT.  */
>
> -static inline void
> +inline void
>  gimple_catch_set_handler (gcatch *catch_stmt, gimple_seq handler)
>  {
>    catch_stmt->handler = handler;
> @@ -4296,7 +4296,7 @@ gimple_catch_set_handler (gcatch *catch_stmt, gimple_seq handler)
>
>  /* Return the types handled by GIMPLE_EH_FILTER statement GS.  */
>
> -static inline tree
> +inline tree
>  gimple_eh_filter_types (const gimple *gs)
>  {
>    const geh_filter *eh_filter_stmt = as_a <const geh_filter *> (gs);
> @@ -4307,7 +4307,7 @@ gimple_eh_filter_types (const gimple *gs)
>  /* Return a pointer to the types handled by GIMPLE_EH_FILTER statement
>     GS.  */
>
> -static inline tree *
> +inline tree *
>  gimple_eh_filter_types_ptr (gimple *gs)
>  {
>    geh_filter *eh_filter_stmt = as_a <geh_filter *> (gs);
> @@ -4318,7 +4318,7 @@ gimple_eh_filter_types_ptr (gimple *gs)
>  /* Return a pointer to the sequence of statement to execute when
>     GIMPLE_EH_FILTER statement fails.  */
>
> -static inline gimple_seq *
> +inline gimple_seq *
>  gimple_eh_filter_failure_ptr (gimple *gs)
>  {
>    geh_filter *eh_filter_stmt = as_a <geh_filter *> (gs);
> @@ -4329,7 +4329,7 @@ gimple_eh_filter_failure_ptr (gimple *gs)
>  /* Return the sequence of statement to execute when GIMPLE_EH_FILTER
>     statement fails.  */
>
> -static inline gimple_seq
> +inline gimple_seq
>  gimple_eh_filter_failure (const gimple *gs)
>  {
>    return *gimple_eh_filter_failure_ptr (const_cast <gimple *> (gs));
> @@ -4339,7 +4339,7 @@ gimple_eh_filter_failure (const gimple *gs)
>  /* Set TYPES to be the set of types handled by GIMPLE_EH_FILTER
>     EH_FILTER_STMT.  */
>
> -static inline void
> +inline void
>  gimple_eh_filter_set_types (geh_filter *eh_filter_stmt, tree types)
>  {
>    eh_filter_stmt->types = types;
> @@ -4349,7 +4349,7 @@ gimple_eh_filter_set_types (geh_filter *eh_filter_stmt, tree types)
>  /* Set FAILURE to be the sequence of statements to execute on failure
>     for GIMPLE_EH_FILTER EH_FILTER_STMT.  */
>
> -static inline void
> +inline void
>  gimple_eh_filter_set_failure (geh_filter *eh_filter_stmt,
>                               gimple_seq failure)
>  {
> @@ -4358,7 +4358,7 @@ gimple_eh_filter_set_failure (geh_filter *eh_filter_stmt,
>
>  /* Get the function decl to be called by the MUST_NOT_THROW region.  */
>
> -static inline tree
> +inline tree
>  gimple_eh_must_not_throw_fndecl (const geh_mnt *eh_mnt_stmt)
>  {
>    return eh_mnt_stmt->fndecl;
> @@ -4366,7 +4366,7 @@ gimple_eh_must_not_throw_fndecl (const geh_mnt *eh_mnt_stmt)
>
>  /* Set the function decl to be called by GS to DECL.  */
>
> -static inline void
> +inline void
>  gimple_eh_must_not_throw_set_fndecl (geh_mnt *eh_mnt_stmt,
>                                      tree decl)
>  {
> @@ -4375,37 +4375,37 @@ gimple_eh_must_not_throw_set_fndecl (geh_mnt *eh_mnt_stmt,
>
>  /* GIMPLE_EH_ELSE accessors.  */
>
> -static inline gimple_seq *
> +inline gimple_seq *
>  gimple_eh_else_n_body_ptr (geh_else *eh_else_stmt)
>  {
>    return &eh_else_stmt->n_body;
>  }
>
> -static inline gimple_seq
> +inline gimple_seq
>  gimple_eh_else_n_body (const geh_else *eh_else_stmt)
>  {
>    return *gimple_eh_else_n_body_ptr (const_cast <geh_else *> (eh_else_stmt));
>  }
>
> -static inline gimple_seq *
> +inline gimple_seq *
>  gimple_eh_else_e_body_ptr (geh_else *eh_else_stmt)
>  {
>    return &eh_else_stmt->e_body;
>  }
>
> -static inline gimple_seq
> +inline gimple_seq
>  gimple_eh_else_e_body (const geh_else *eh_else_stmt)
>  {
>    return *gimple_eh_else_e_body_ptr (const_cast <geh_else *> (eh_else_stmt));
>  }
>
> -static inline void
> +inline void
>  gimple_eh_else_set_n_body (geh_else *eh_else_stmt, gimple_seq seq)
>  {
>    eh_else_stmt->n_body = seq;
>  }
>
> -static inline void
> +inline void
>  gimple_eh_else_set_e_body (geh_else *eh_else_stmt, gimple_seq seq)
>  {
>    eh_else_stmt->e_body = seq;
> @@ -4416,7 +4416,7 @@ gimple_eh_else_set_e_body (geh_else *eh_else_stmt, gimple_seq seq)
>  /* Return the kind of try block represented by GIMPLE_TRY GS.  This is
>     either GIMPLE_TRY_CATCH or GIMPLE_TRY_FINALLY.  */
>
> -static inline enum gimple_try_flags
> +inline enum gimple_try_flags
>  gimple_try_kind (const gimple *gs)
>  {
>    GIMPLE_CHECK (gs, GIMPLE_TRY);
> @@ -4426,7 +4426,7 @@ gimple_try_kind (const gimple *gs)
>
>  /* Set the kind of try block represented by GIMPLE_TRY GS.  */
>
> -static inline void
> +inline void
>  gimple_try_set_kind (gtry *gs, enum gimple_try_flags kind)
>  {
>    gcc_gimple_checking_assert (kind == GIMPLE_TRY_CATCH
> @@ -4438,7 +4438,7 @@ gimple_try_set_kind (gtry *gs, enum gimple_try_flags kind)
>
>  /* Return the GIMPLE_TRY_CATCH_IS_CLEANUP flag.  */
>
> -static inline bool
> +inline bool
>  gimple_try_catch_is_cleanup (const gimple *gs)
>  {
>    gcc_gimple_checking_assert (gimple_try_kind (gs) == GIMPLE_TRY_CATCH);
> @@ -4449,7 +4449,7 @@ gimple_try_catch_is_cleanup (const gimple *gs)
>  /* Return a pointer to the sequence of statements used as the
>     body for GIMPLE_TRY GS.  */
>
> -static inline gimple_seq *
> +inline gimple_seq *
>  gimple_try_eval_ptr (gimple *gs)
>  {
>    gtry *try_stmt = as_a <gtry *> (gs);
> @@ -4459,7 +4459,7 @@ gimple_try_eval_ptr (gimple *gs)
>
>  /* Return the sequence of statements used as the body for GIMPLE_TRY GS.  */
>
> -static inline gimple_seq
> +inline gimple_seq
>  gimple_try_eval (const gimple *gs)
>  {
>    return *gimple_try_eval_ptr (const_cast <gimple *> (gs));
> @@ -4469,7 +4469,7 @@ gimple_try_eval (const gimple *gs)
>  /* Return a pointer to the sequence of statements used as the cleanup body for
>     GIMPLE_TRY GS.  */
>
> -static inline gimple_seq *
> +inline gimple_seq *
>  gimple_try_cleanup_ptr (gimple *gs)
>  {
>    gtry *try_stmt = as_a <gtry *> (gs);
> @@ -4480,7 +4480,7 @@ gimple_try_cleanup_ptr (gimple *gs)
>  /* Return the sequence of statements used as the cleanup body for
>     GIMPLE_TRY GS.  */
>
> -static inline gimple_seq
> +inline gimple_seq
>  gimple_try_cleanup (const gimple *gs)
>  {
>    return *gimple_try_cleanup_ptr (const_cast <gimple *> (gs));
> @@ -4489,7 +4489,7 @@ gimple_try_cleanup (const gimple *gs)
>
>  /* Set the GIMPLE_TRY_CATCH_IS_CLEANUP flag.  */
>
> -static inline void
> +inline void
>  gimple_try_set_catch_is_cleanup (gtry *g, bool catch_is_cleanup)
>  {
>    gcc_gimple_checking_assert (gimple_try_kind (g) == GIMPLE_TRY_CATCH);
> @@ -4503,7 +4503,7 @@ gimple_try_set_catch_is_cleanup (gtry *g, bool catch_is_cleanup)
>  /* Set EVAL to be the sequence of statements to use as the body for
>     GIMPLE_TRY TRY_STMT.  */
>
> -static inline void
> +inline void
>  gimple_try_set_eval (gtry *try_stmt, gimple_seq eval)
>  {
>    try_stmt->eval = eval;
> @@ -4513,7 +4513,7 @@ gimple_try_set_eval (gtry *try_stmt, gimple_seq eval)
>  /* Set CLEANUP to be the sequence of statements to use as the cleanup
>     body for GIMPLE_TRY TRY_STMT.  */
>
> -static inline void
> +inline void
>  gimple_try_set_cleanup (gtry *try_stmt, gimple_seq cleanup)
>  {
>    try_stmt->cleanup = cleanup;
> @@ -4522,7 +4522,7 @@ gimple_try_set_cleanup (gtry *try_stmt, gimple_seq cleanup)
>
>  /* Return a pointer to the cleanup sequence for cleanup statement GS.  */
>
> -static inline gimple_seq *
> +inline gimple_seq *
>  gimple_wce_cleanup_ptr (gimple *gs)
>  {
>    gimple_statement_wce *wce_stmt = as_a <gimple_statement_wce *> (gs);
> @@ -4532,7 +4532,7 @@ gimple_wce_cleanup_ptr (gimple *gs)
>
>  /* Return the cleanup sequence for cleanup statement GS.  */
>
> -static inline gimple_seq
> +inline gimple_seq
>  gimple_wce_cleanup (gimple *gs)
>  {
>    return *gimple_wce_cleanup_ptr (gs);
> @@ -4541,7 +4541,7 @@ gimple_wce_cleanup (gimple *gs)
>
>  /* Set CLEANUP to be the cleanup sequence for GS.  */
>
> -static inline void
> +inline void
>  gimple_wce_set_cleanup (gimple *gs, gimple_seq cleanup)
>  {
>    gimple_statement_wce *wce_stmt = as_a <gimple_statement_wce *> (gs);
> @@ -4551,7 +4551,7 @@ gimple_wce_set_cleanup (gimple *gs, gimple_seq cleanup)
>
>  /* Return the CLEANUP_EH_ONLY flag for a WCE tuple.  */
>
> -static inline bool
> +inline bool
>  gimple_wce_cleanup_eh_only (const gimple *gs)
>  {
>    GIMPLE_CHECK (gs, GIMPLE_WITH_CLEANUP_EXPR);
> @@ -4561,7 +4561,7 @@ gimple_wce_cleanup_eh_only (const gimple *gs)
>
>  /* Set the CLEANUP_EH_ONLY flag for a WCE tuple.  */
>
> -static inline void
> +inline void
>  gimple_wce_set_cleanup_eh_only (gimple *gs, bool eh_only_p)
>  {
>    GIMPLE_CHECK (gs, GIMPLE_WITH_CLEANUP_EXPR);
> @@ -4571,7 +4571,7 @@ gimple_wce_set_cleanup_eh_only (gimple *gs, bool eh_only_p)
>
>  /* Return the maximum number of arguments supported by GIMPLE_PHI GS.  */
>
> -static inline unsigned
> +inline unsigned
>  gimple_phi_capacity (const gimple *gs)
>  {
>    const gphi *phi_stmt = as_a <const gphi *> (gs);
> @@ -4583,7 +4583,7 @@ gimple_phi_capacity (const gimple *gs)
>     be exactly the number of incoming edges for the basic block holding
>     GS.  */
>
> -static inline unsigned
> +inline unsigned
>  gimple_phi_num_args (const gimple *gs)
>  {
>    const gphi *phi_stmt = as_a <const gphi *> (gs);
> @@ -4593,13 +4593,13 @@ gimple_phi_num_args (const gimple *gs)
>
>  /* Return the SSA name created by GIMPLE_PHI GS.  */
>
> -static inline tree
> +inline tree
>  gimple_phi_result (const gphi *gs)
>  {
>    return gs->result;
>  }
>
> -static inline tree
> +inline tree
>  gimple_phi_result (const gimple *gs)
>  {
>    const gphi *phi_stmt = as_a <const gphi *> (gs);
> @@ -4608,13 +4608,13 @@ gimple_phi_result (const gimple *gs)
>
>  /* Return a pointer to the SSA name created by GIMPLE_PHI GS.  */
>
> -static inline tree *
> +inline tree *
>  gimple_phi_result_ptr (gphi *gs)
>  {
>    return &gs->result;
>  }
>
> -static inline tree *
> +inline tree *
>  gimple_phi_result_ptr (gimple *gs)
>  {
>    gphi *phi_stmt = as_a <gphi *> (gs);
> @@ -4623,7 +4623,7 @@ gimple_phi_result_ptr (gimple *gs)
>
>  /* Set RESULT to be the SSA name created by GIMPLE_PHI PHI.  */
>
> -static inline void
> +inline void
>  gimple_phi_set_result (gphi *phi, tree result)
>  {
>    phi->result = result;
> @@ -4635,21 +4635,21 @@ gimple_phi_set_result (gphi *phi, tree result)
>  /* Return the PHI argument corresponding to incoming edge INDEX for
>     GIMPLE_PHI GS.  */
>
> -static inline struct phi_arg_d *
> +inline struct phi_arg_d *
>  gimple_phi_arg (gphi *gs, unsigned index)
>  {
>    gcc_gimple_checking_assert (index < gs->nargs);
>    return &(gs->args[index]);
>  }
>
> -static inline const phi_arg_d *
> +inline const phi_arg_d *
>  gimple_phi_arg (const gphi *gs, unsigned index)
>  {
>    gcc_gimple_checking_assert (index < gs->nargs);
>    return &(gs->args[index]);
>  }
>
> -static inline struct phi_arg_d *
> +inline struct phi_arg_d *
>  gimple_phi_arg (gimple *gs, unsigned index)
>  {
>    gphi *phi_stmt = as_a <gphi *> (gs);
> @@ -4659,7 +4659,7 @@ gimple_phi_arg (gimple *gs, unsigned index)
>  /* Set PHIARG to be the argument corresponding to incoming edge INDEX
>     for GIMPLE_PHI PHI.  */
>
> -static inline void
> +inline void
>  gimple_phi_set_arg (gphi *phi, unsigned index, struct phi_arg_d * phiarg)
>  {
>    gcc_gimple_checking_assert (index < phi->nargs);
> @@ -4669,7 +4669,7 @@ gimple_phi_set_arg (gphi *phi, unsigned index, struct phi_arg_d * phiarg)
>  /* Return the PHI nodes for basic block BB, or NULL if there are no
>     PHI nodes.  */
>
> -static inline gimple_seq
> +inline gimple_seq
>  phi_nodes (const_basic_block bb)
>  {
>    gcc_checking_assert (!(bb->flags & BB_RTL));
> @@ -4678,7 +4678,7 @@ phi_nodes (const_basic_block bb)
>
>  /* Return a pointer to the PHI nodes for basic block BB.  */
>
> -static inline gimple_seq *
> +inline gimple_seq *
>  phi_nodes_ptr (basic_block bb)
>  {
>    gcc_checking_assert (!(bb->flags & BB_RTL));
> @@ -4687,13 +4687,13 @@ phi_nodes_ptr (basic_block bb)
>
>  /* Return the tree operand for argument I of PHI node GS.  */
>
> -static inline tree
> +inline tree
>  gimple_phi_arg_def (const gphi *gs, size_t index)
>  {
>    return gimple_phi_arg (gs, index)->def;
>  }
>
> -static inline tree
> +inline tree
>  gimple_phi_arg_def (gimple *gs, size_t index)
>  {
>    return gimple_phi_arg (gs, index)->def;
> @@ -4702,7 +4702,7 @@ gimple_phi_arg_def (gimple *gs, size_t index)
>
>  /* Return a pointer to the tree operand for argument I of phi node PHI.  */
>
> -static inline tree *
> +inline tree *
>  gimple_phi_arg_def_ptr (gphi *phi, size_t index)
>  {
>    return &gimple_phi_arg (phi, index)->def;
> @@ -4710,7 +4710,7 @@ gimple_phi_arg_def_ptr (gphi *phi, size_t index)
>
>  /* Return the edge associated with argument I of phi node PHI.  */
>
> -static inline edge
> +inline edge
>  gimple_phi_arg_edge (const gphi *phi, size_t i)
>  {
>    return EDGE_PRED (gimple_bb (phi), i);
> @@ -4718,7 +4718,7 @@ gimple_phi_arg_edge (const gphi *phi, size_t i)
>
>  /* Return the source location of gimple argument I of phi node PHI.  */
>
> -static inline location_t
> +inline location_t
>  gimple_phi_arg_location (const gphi *phi, size_t i)
>  {
>    return gimple_phi_arg (phi, i)->locus;
> @@ -4726,7 +4726,7 @@ gimple_phi_arg_location (const gphi *phi, size_t i)
>
>  /* Return the source location of the argument on edge E of phi node PHI.  */
>
> -static inline location_t
> +inline location_t
>  gimple_phi_arg_location_from_edge (gphi *phi, edge e)
>  {
>    return gimple_phi_arg (phi, e->dest_idx)->locus;
> @@ -4734,7 +4734,7 @@ gimple_phi_arg_location_from_edge (gphi *phi, edge e)
>
>  /* Set the source location of gimple argument I of phi node PHI to LOC.  */
>
> -static inline void
> +inline void
>  gimple_phi_arg_set_location (gphi *phi, size_t i, location_t loc)
>  {
>    gimple_phi_arg (phi, i)->locus = loc;
> @@ -4742,7 +4742,7 @@ gimple_phi_arg_set_location (gphi *phi, size_t i, location_t loc)
>
>  /* Return address of source location of gimple argument I of phi node PHI.  */
>
> -static inline location_t *
> +inline location_t *
>  gimple_phi_arg_location_ptr (gphi *phi, size_t i)
>  {
>    return &gimple_phi_arg (phi, i)->locus;
> @@ -4750,7 +4750,7 @@ gimple_phi_arg_location_ptr (gphi *phi, size_t i)
>
>  /* Return TRUE if argument I of phi node PHI has a location record.  */
>
> -static inline bool
> +inline bool
>  gimple_phi_arg_has_location (const gphi *phi, size_t i)
>  {
>    return gimple_phi_arg_location (phi, i) != UNKNOWN_LOCATION;
> @@ -4758,7 +4758,7 @@ gimple_phi_arg_has_location (const gphi *phi, size_t i)
>
>  /* Return the number of arguments that can be accessed by gimple_arg.  */
>
> -static inline unsigned
> +inline unsigned
>  gimple_num_args (const gimple *gs)
>  {
>    if (auto phi = dyn_cast<const gphi *> (gs))
> @@ -4773,7 +4773,7 @@ gimple_num_args (const gimple *gs)
>     If it's a call, return function argument I.
>     If it's a PHI, return the value of PHI argument I.  */
>
> -static inline tree
> +inline tree
>  gimple_arg (const gimple *gs, unsigned int i)
>  {
>    if (auto phi = dyn_cast<const gphi *> (gs))
> @@ -4785,7 +4785,7 @@ gimple_arg (const gimple *gs, unsigned int i)
>
>  /* Return a pointer to gimple_arg (GS, I).  */
>
> -static inline tree *
> +inline tree *
>  gimple_arg_ptr (gimple *gs, unsigned int i)
>  {
>    if (auto phi = dyn_cast<gphi *> (gs))
> @@ -4797,7 +4797,7 @@ gimple_arg_ptr (gimple *gs, unsigned int i)
>
>  /* Return the region number for GIMPLE_RESX RESX_STMT.  */
>
> -static inline int
> +inline int
>  gimple_resx_region (const gresx *resx_stmt)
>  {
>    return resx_stmt->region;
> @@ -4805,7 +4805,7 @@ gimple_resx_region (const gresx *resx_stmt)
>
>  /* Set REGION to be the region number for GIMPLE_RESX RESX_STMT.  */
>
> -static inline void
> +inline void
>  gimple_resx_set_region (gresx *resx_stmt, int region)
>  {
>    resx_stmt->region = region;
> @@ -4813,7 +4813,7 @@ gimple_resx_set_region (gresx *resx_stmt, int region)
>
>  /* Return the region number for GIMPLE_EH_DISPATCH EH_DISPATCH_STMT.  */
>
> -static inline int
> +inline int
>  gimple_eh_dispatch_region (const geh_dispatch *eh_dispatch_stmt)
>  {
>    return eh_dispatch_stmt->region;
> @@ -4822,7 +4822,7 @@ gimple_eh_dispatch_region (const geh_dispatch *eh_dispatch_stmt)
>  /* Set REGION to be the region number for GIMPLE_EH_DISPATCH
>     EH_DISPATCH_STMT.  */
>
> -static inline void
> +inline void
>  gimple_eh_dispatch_set_region (geh_dispatch *eh_dispatch_stmt, int region)
>  {
>    eh_dispatch_stmt->region = region;
> @@ -4830,7 +4830,7 @@ gimple_eh_dispatch_set_region (geh_dispatch *eh_dispatch_stmt, int region)
>
>  /* Return the number of labels associated with the switch statement GS.  */
>
> -static inline unsigned
> +inline unsigned
>  gimple_switch_num_labels (const gswitch *gs)
>  {
>    unsigned num_ops;
> @@ -4843,7 +4843,7 @@ gimple_switch_num_labels (const gswitch *gs)
>
>  /* Set NLABELS to be the number of labels for the switch statement GS.  */
>
> -static inline void
> +inline void
>  gimple_switch_set_num_labels (gswitch *g, unsigned nlabels)
>  {
>    GIMPLE_CHECK (g, GIMPLE_SWITCH);
> @@ -4853,7 +4853,7 @@ gimple_switch_set_num_labels (gswitch *g, unsigned nlabels)
>
>  /* Return the index variable used by the switch statement GS.  */
>
> -static inline tree
> +inline tree
>  gimple_switch_index (const gswitch *gs)
>  {
>    return gs->op[0];
> @@ -4862,7 +4862,7 @@ gimple_switch_index (const gswitch *gs)
>
>  /* Return a pointer to the index variable for the switch statement GS.  */
>
> -static inline tree *
> +inline tree *
>  gimple_switch_index_ptr (gswitch *gs)
>  {
>    return &gs->op[0];
> @@ -4871,7 +4871,7 @@ gimple_switch_index_ptr (gswitch *gs)
>
>  /* Set INDEX to be the index variable for switch statement GS.  */
>
> -static inline void
> +inline void
>  gimple_switch_set_index (gswitch *gs, tree index)
>  {
>    gcc_gimple_checking_assert (SSA_VAR_P (index) || CONSTANT_CLASS_P (index));
> @@ -4882,7 +4882,7 @@ gimple_switch_set_index (gswitch *gs, tree index)
>  /* Return the label numbered INDEX.  The default label is 0, followed by any
>     labels in a switch statement.  */
>
> -static inline tree
> +inline tree
>  gimple_switch_label (const gswitch *gs, unsigned index)
>  {
>    gcc_gimple_checking_assert (gimple_num_ops (gs) > index + 1);
> @@ -4891,7 +4891,7 @@ gimple_switch_label (const gswitch *gs, unsigned index)
>
>  /* Set the label number INDEX to LABEL.  0 is always the default label.  */
>
> -static inline void
> +inline void
>  gimple_switch_set_label (gswitch *gs, unsigned index, tree label)
>  {
>    gcc_gimple_checking_assert (gimple_num_ops (gs) > index + 1
> @@ -4902,7 +4902,7 @@ gimple_switch_set_label (gswitch *gs, unsigned index, tree label)
>
>  /* Return the default label for a switch statement.  */
>
> -static inline tree
> +inline tree
>  gimple_switch_default_label (const gswitch *gs)
>  {
>    tree label = gimple_switch_label (gs, 0);
> @@ -4912,7 +4912,7 @@ gimple_switch_default_label (const gswitch *gs)
>
>  /* Set the default label for a switch statement.  */
>
> -static inline void
> +inline void
>  gimple_switch_set_default_label (gswitch *gs, tree label)
>  {
>    gcc_checking_assert (!CASE_LOW (label) && !CASE_HIGH (label));
> @@ -4921,7 +4921,7 @@ gimple_switch_set_default_label (gswitch *gs, tree label)
>
>  /* Return true if GS is a GIMPLE_DEBUG statement.  */
>
> -static inline bool
> +inline bool
>  is_gimple_debug (const gimple *gs)
>  {
>    return gimple_code (gs) == GIMPLE_DEBUG;
> @@ -4930,7 +4930,7 @@ is_gimple_debug (const gimple *gs)
>
>  /* Return the first nondebug statement in GIMPLE sequence S.  */
>
> -static inline gimple *
> +inline gimple *
>  gimple_seq_first_nondebug_stmt (gimple_seq s)
>  {
>    gimple_seq_node n = gimple_seq_first (s);
> @@ -4942,7 +4942,7 @@ gimple_seq_first_nondebug_stmt (gimple_seq s)
>
>  /* Return the last nondebug statement in GIMPLE sequence S.  */
>
> -static inline gimple *
> +inline gimple *
>  gimple_seq_last_nondebug_stmt (gimple_seq s)
>  {
>    gimple_seq_node n;
> @@ -4957,7 +4957,7 @@ gimple_seq_last_nondebug_stmt (gimple_seq s)
>
>  /* Return true if S is a GIMPLE_DEBUG BIND statement.  */
>
> -static inline bool
> +inline bool
>  gimple_debug_bind_p (const gimple *s)
>  {
>    if (is_gimple_debug (s))
> @@ -4968,7 +4968,7 @@ gimple_debug_bind_p (const gimple *s)
>
>  /* Return the variable bound in a GIMPLE_DEBUG bind statement.  */
>
> -static inline tree
> +inline tree
>  gimple_debug_bind_get_var (const gimple *dbg)
>  {
>    GIMPLE_CHECK (dbg, GIMPLE_DEBUG);
> @@ -4979,7 +4979,7 @@ gimple_debug_bind_get_var (const gimple *dbg)
>  /* Return the value bound to the variable in a GIMPLE_DEBUG bind
>     statement.  */
>
> -static inline tree
> +inline tree
>  gimple_debug_bind_get_value (const gimple *dbg)
>  {
>    GIMPLE_CHECK (dbg, GIMPLE_DEBUG);
> @@ -4990,7 +4990,7 @@ gimple_debug_bind_get_value (const gimple *dbg)
>  /* Return a pointer to the value bound to the variable in a
>     GIMPLE_DEBUG bind statement.  */
>
> -static inline tree *
> +inline tree *
>  gimple_debug_bind_get_value_ptr (gimple *dbg)
>  {
>    GIMPLE_CHECK (dbg, GIMPLE_DEBUG);
> @@ -5000,7 +5000,7 @@ gimple_debug_bind_get_value_ptr (gimple *dbg)
>
>  /* Set the variable bound in a GIMPLE_DEBUG bind statement.  */
>
> -static inline void
> +inline void
>  gimple_debug_bind_set_var (gimple *dbg, tree var)
>  {
>    GIMPLE_CHECK (dbg, GIMPLE_DEBUG);
> @@ -5011,7 +5011,7 @@ gimple_debug_bind_set_var (gimple *dbg, tree var)
>  /* Set the value bound to the variable in a GIMPLE_DEBUG bind
>     statement.  */
>
> -static inline void
> +inline void
>  gimple_debug_bind_set_value (gimple *dbg, tree value)
>  {
>    GIMPLE_CHECK (dbg, GIMPLE_DEBUG);
> @@ -5026,7 +5026,7 @@ gimple_debug_bind_set_value (gimple *dbg, tree value)
>  /* Remove the value bound to the variable in a GIMPLE_DEBUG bind
>     statement.  */
>
> -static inline void
> +inline void
>  gimple_debug_bind_reset_value (gimple *dbg)
>  {
>    GIMPLE_CHECK (dbg, GIMPLE_DEBUG);
> @@ -5037,7 +5037,7 @@ gimple_debug_bind_reset_value (gimple *dbg)
>  /* Return true if the GIMPLE_DEBUG bind statement is bound to a
>     value.  */
>
> -static inline bool
> +inline bool
>  gimple_debug_bind_has_value_p (gimple *dbg)
>  {
>    GIMPLE_CHECK (dbg, GIMPLE_DEBUG);
> @@ -5049,7 +5049,7 @@ gimple_debug_bind_has_value_p (gimple *dbg)
>
>  /* Return true if S is a GIMPLE_DEBUG SOURCE BIND statement.  */
>
> -static inline bool
> +inline bool
>  gimple_debug_source_bind_p (const gimple *s)
>  {
>    if (is_gimple_debug (s))
> @@ -5060,7 +5060,7 @@ gimple_debug_source_bind_p (const gimple *s)
>
>  /* Return the variable bound in a GIMPLE_DEBUG source bind statement.  */
>
> -static inline tree
> +inline tree
>  gimple_debug_source_bind_get_var (const gimple *dbg)
>  {
>    GIMPLE_CHECK (dbg, GIMPLE_DEBUG);
> @@ -5071,7 +5071,7 @@ gimple_debug_source_bind_get_var (const gimple *dbg)
>  /* Return the value bound to the variable in a GIMPLE_DEBUG source bind
>     statement.  */
>
> -static inline tree
> +inline tree
>  gimple_debug_source_bind_get_value (const gimple *dbg)
>  {
>    GIMPLE_CHECK (dbg, GIMPLE_DEBUG);
> @@ -5082,7 +5082,7 @@ gimple_debug_source_bind_get_value (const gimple *dbg)
>  /* Return a pointer to the value bound to the variable in a
>     GIMPLE_DEBUG source bind statement.  */
>
> -static inline tree *
> +inline tree *
>  gimple_debug_source_bind_get_value_ptr (gimple *dbg)
>  {
>    GIMPLE_CHECK (dbg, GIMPLE_DEBUG);
> @@ -5092,7 +5092,7 @@ gimple_debug_source_bind_get_value_ptr (gimple *dbg)
>
>  /* Set the variable bound in a GIMPLE_DEBUG source bind statement.  */
>
> -static inline void
> +inline void
>  gimple_debug_source_bind_set_var (gimple *dbg, tree var)
>  {
>    GIMPLE_CHECK (dbg, GIMPLE_DEBUG);
> @@ -5103,7 +5103,7 @@ gimple_debug_source_bind_set_var (gimple *dbg, tree var)
>  /* Set the value bound to the variable in a GIMPLE_DEBUG source bind
>     statement.  */
>
> -static inline void
> +inline void
>  gimple_debug_source_bind_set_value (gimple *dbg, tree value)
>  {
>    GIMPLE_CHECK (dbg, GIMPLE_DEBUG);
> @@ -5113,7 +5113,7 @@ gimple_debug_source_bind_set_value (gimple *dbg, tree value)
>
>  /* Return true if S is a GIMPLE_DEBUG BEGIN_STMT statement.  */
>
> -static inline bool
> +inline bool
>  gimple_debug_begin_stmt_p (const gimple *s)
>  {
>    if (is_gimple_debug (s))
> @@ -5124,7 +5124,7 @@ gimple_debug_begin_stmt_p (const gimple *s)
>
>  /* Return true if S is a GIMPLE_DEBUG INLINE_ENTRY statement.  */
>
> -static inline bool
> +inline bool
>  gimple_debug_inline_entry_p (const gimple *s)
>  {
>    if (is_gimple_debug (s))
> @@ -5135,7 +5135,7 @@ gimple_debug_inline_entry_p (const gimple *s)
>
>  /* Return true if S is a GIMPLE_DEBUG non-binding marker statement.  */
>
> -static inline bool
> +inline bool
>  gimple_debug_nonbind_marker_p (const gimple *s)
>  {
>    if (is_gimple_debug (s))
> @@ -5147,7 +5147,7 @@ gimple_debug_nonbind_marker_p (const gimple *s)
>
>  /* Return the line number for EXPR, or return -1 if we have no line
>     number information for it.  */
> -static inline int
> +inline int
>  get_lineno (const gimple *stmt)
>  {
>    location_t loc;
> @@ -5164,7 +5164,7 @@ get_lineno (const gimple *stmt)
>
>  /* Return a pointer to the body for the OMP statement GS.  */
>
> -static inline gimple_seq *
> +inline gimple_seq *
>  gimple_omp_body_ptr (gimple *gs)
>  {
>    return &static_cast <gimple_statement_omp *> (gs)->body;
> @@ -5172,7 +5172,7 @@ gimple_omp_body_ptr (gimple *gs)
>
>  /* Return the body for the OMP statement GS.  */
>
> -static inline gimple_seq
> +inline gimple_seq
>  gimple_omp_body (const gimple *gs)
>  {
>    return *gimple_omp_body_ptr (const_cast <gimple *> (gs));
> @@ -5180,7 +5180,7 @@ gimple_omp_body (const gimple *gs)
>
>  /* Set BODY to be the body for the OMP statement GS.  */
>
> -static inline void
> +inline void
>  gimple_omp_set_body (gimple *gs, gimple_seq body)
>  {
>    static_cast <gimple_statement_omp *> (gs)->body = body;
> @@ -5189,7 +5189,7 @@ gimple_omp_set_body (gimple *gs, gimple_seq body)
>
>  /* Return the name associated with OMP_CRITICAL statement CRIT_STMT.  */
>
> -static inline tree
> +inline tree
>  gimple_omp_critical_name (const gomp_critical *crit_stmt)
>  {
>    return crit_stmt->name;
> @@ -5199,7 +5199,7 @@ gimple_omp_critical_name (const gomp_critical *crit_stmt)
>  /* Return a pointer to the name associated with OMP critical statement
>     CRIT_STMT.  */
>
> -static inline tree *
> +inline tree *
>  gimple_omp_critical_name_ptr (gomp_critical *crit_stmt)
>  {
>    return &crit_stmt->name;
> @@ -5209,7 +5209,7 @@ gimple_omp_critical_name_ptr (gomp_critical *crit_stmt)
>  /* Set NAME to be the name associated with OMP critical statement
>     CRIT_STMT.  */
>
> -static inline void
> +inline void
>  gimple_omp_critical_set_name (gomp_critical *crit_stmt, tree name)
>  {
>    crit_stmt->name = name;
> @@ -5218,7 +5218,7 @@ gimple_omp_critical_set_name (gomp_critical *crit_stmt, tree name)
>
>  /* Return the clauses associated with OMP_CRITICAL statement CRIT_STMT.  */
>
> -static inline tree
> +inline tree
>  gimple_omp_critical_clauses (const gomp_critical *crit_stmt)
>  {
>    return crit_stmt->clauses;
> @@ -5228,7 +5228,7 @@ gimple_omp_critical_clauses (const gomp_critical *crit_stmt)
>  /* Return a pointer to the clauses associated with OMP critical statement
>     CRIT_STMT.  */
>
> -static inline tree *
> +inline tree *
>  gimple_omp_critical_clauses_ptr (gomp_critical *crit_stmt)
>  {
>    return &crit_stmt->clauses;
> @@ -5238,7 +5238,7 @@ gimple_omp_critical_clauses_ptr (gomp_critical *crit_stmt)
>  /* Set CLAUSES to be the clauses associated with OMP critical statement
>     CRIT_STMT.  */
>
> -static inline void
> +inline void
>  gimple_omp_critical_set_clauses (gomp_critical *crit_stmt, tree clauses)
>  {
>    crit_stmt->clauses = clauses;
> @@ -5247,7 +5247,7 @@ gimple_omp_critical_set_clauses (gomp_critical *crit_stmt, tree clauses)
>
>  /* Return the clauses associated with OMP_ORDERED statement ORD_STMT.  */
>
> -static inline tree
> +inline tree
>  gimple_omp_ordered_clauses (const gomp_ordered *ord_stmt)
>  {
>    return ord_stmt->clauses;
> @@ -5257,7 +5257,7 @@ gimple_omp_ordered_clauses (const gomp_ordered *ord_stmt)
>  /* Return a pointer to the clauses associated with OMP ordered statement
>     ORD_STMT.  */
>
> -static inline tree *
> +inline tree *
>  gimple_omp_ordered_clauses_ptr (gomp_ordered *ord_stmt)
>  {
>    return &ord_stmt->clauses;
> @@ -5267,7 +5267,7 @@ gimple_omp_ordered_clauses_ptr (gomp_ordered *ord_stmt)
>  /* Set CLAUSES to be the clauses associated with OMP ordered statement
>     ORD_STMT.  */
>
> -static inline void
> +inline void
>  gimple_omp_ordered_set_clauses (gomp_ordered *ord_stmt, tree clauses)
>  {
>    ord_stmt->clauses = clauses;
> @@ -5276,7 +5276,7 @@ gimple_omp_ordered_set_clauses (gomp_ordered *ord_stmt, tree clauses)
>
>  /* Return the clauses associated with OMP_SCAN statement SCAN_STMT.  */
>
> -static inline tree
> +inline tree
>  gimple_omp_scan_clauses (const gomp_scan *scan_stmt)
>  {
>    return scan_stmt->clauses;
> @@ -5286,7 +5286,7 @@ gimple_omp_scan_clauses (const gomp_scan *scan_stmt)
>  /* Return a pointer to the clauses associated with OMP scan statement
>     ORD_STMT.  */
>
> -static inline tree *
> +inline tree *
>  gimple_omp_scan_clauses_ptr (gomp_scan *scan_stmt)
>  {
>    return &scan_stmt->clauses;
> @@ -5296,7 +5296,7 @@ gimple_omp_scan_clauses_ptr (gomp_scan *scan_stmt)
>  /* Set CLAUSES to be the clauses associated with OMP scan statement
>     ORD_STMT.  */
>
> -static inline void
> +inline void
>  gimple_omp_scan_set_clauses (gomp_scan *scan_stmt, tree clauses)
>  {
>    scan_stmt->clauses = clauses;
> @@ -5305,7 +5305,7 @@ gimple_omp_scan_set_clauses (gomp_scan *scan_stmt, tree clauses)
>
>  /* Return the clauses associated with OMP_TASKGROUP statement GS.  */
>
> -static inline tree
> +inline tree
>  gimple_omp_taskgroup_clauses (const gimple *gs)
>  {
>    GIMPLE_CHECK (gs, GIMPLE_OMP_TASKGROUP);
> @@ -5317,7 +5317,7 @@ gimple_omp_taskgroup_clauses (const gimple *gs)
>  /* Return a pointer to the clauses associated with OMP taskgroup statement
>     GS.  */
>
> -static inline tree *
> +inline tree *
>  gimple_omp_taskgroup_clauses_ptr (gimple *gs)
>  {
>    GIMPLE_CHECK (gs, GIMPLE_OMP_TASKGROUP);
> @@ -5328,7 +5328,7 @@ gimple_omp_taskgroup_clauses_ptr (gimple *gs)
>  /* Set CLAUSES to be the clauses associated with OMP taskgroup statement
>     GS.  */
>
> -static inline void
> +inline void
>  gimple_omp_taskgroup_set_clauses (gimple *gs, tree clauses)
>  {
>    GIMPLE_CHECK (gs, GIMPLE_OMP_TASKGROUP);
> @@ -5339,7 +5339,7 @@ gimple_omp_taskgroup_set_clauses (gimple *gs, tree clauses)
>
>  /* Return the clauses associated with OMP_MASKED statement GS.  */
>
> -static inline tree
> +inline tree
>  gimple_omp_masked_clauses (const gimple *gs)
>  {
>    GIMPLE_CHECK (gs, GIMPLE_OMP_MASKED);
> @@ -5351,7 +5351,7 @@ gimple_omp_masked_clauses (const gimple *gs)
>  /* Return a pointer to the clauses associated with OMP masked statement
>     GS.  */
>
> -static inline tree *
> +inline tree *
>  gimple_omp_masked_clauses_ptr (gimple *gs)
>  {
>    GIMPLE_CHECK (gs, GIMPLE_OMP_MASKED);
> @@ -5362,7 +5362,7 @@ gimple_omp_masked_clauses_ptr (gimple *gs)
>  /* Set CLAUSES to be the clauses associated with OMP masked statement
>     GS.  */
>
> -static inline void
> +inline void
>  gimple_omp_masked_set_clauses (gimple *gs, tree clauses)
>  {
>    GIMPLE_CHECK (gs, GIMPLE_OMP_MASKED);
> @@ -5373,7 +5373,7 @@ gimple_omp_masked_set_clauses (gimple *gs, tree clauses)
>
>  /* Return the clauses associated with OMP_SCOPE statement GS.  */
>
> -static inline tree
> +inline tree
>  gimple_omp_scope_clauses (const gimple *gs)
>  {
>    GIMPLE_CHECK (gs, GIMPLE_OMP_SCOPE);
> @@ -5385,7 +5385,7 @@ gimple_omp_scope_clauses (const gimple *gs)
>  /* Return a pointer to the clauses associated with OMP scope statement
>     GS.  */
>
> -static inline tree *
> +inline tree *
>  gimple_omp_scope_clauses_ptr (gimple *gs)
>  {
>    GIMPLE_CHECK (gs, GIMPLE_OMP_SCOPE);
> @@ -5396,7 +5396,7 @@ gimple_omp_scope_clauses_ptr (gimple *gs)
>  /* Set CLAUSES to be the clauses associated with OMP scope statement
>     GS.  */
>
> -static inline void
> +inline void
>  gimple_omp_scope_set_clauses (gimple *gs, tree clauses)
>  {
>    GIMPLE_CHECK (gs, GIMPLE_OMP_SCOPE);
> @@ -5407,7 +5407,7 @@ gimple_omp_scope_set_clauses (gimple *gs, tree clauses)
>
>  /* Return the kind of the OMP_FOR statemement G.  */
>
> -static inline int
> +inline int
>  gimple_omp_for_kind (const gimple *g)
>  {
>    GIMPLE_CHECK (g, GIMPLE_OMP_FOR);
> @@ -5417,7 +5417,7 @@ gimple_omp_for_kind (const gimple *g)
>
>  /* Set the kind of the OMP_FOR statement G.  */
>
> -static inline void
> +inline void
>  gimple_omp_for_set_kind (gomp_for *g, int kind)
>  {
>    g->subcode = (g->subcode & ~GF_OMP_FOR_KIND_MASK)
> @@ -5428,7 +5428,7 @@ gimple_omp_for_set_kind (gomp_for *g, int kind)
>  /* Return true if OMP_FOR statement G has the
>     GF_OMP_FOR_COMBINED flag set.  */
>
> -static inline bool
> +inline bool
>  gimple_omp_for_combined_p (const gimple *g)
>  {
>    GIMPLE_CHECK (g, GIMPLE_OMP_FOR);
> @@ -5439,7 +5439,7 @@ gimple_omp_for_combined_p (const gimple *g)
>  /* Set the GF_OMP_FOR_COMBINED field in the OMP_FOR statement G depending on
>     the boolean value of COMBINED_P.  */
>
> -static inline void
> +inline void
>  gimple_omp_for_set_combined_p (gomp_for *g, bool combined_p)
>  {
>    if (combined_p)
> @@ -5452,7 +5452,7 @@ gimple_omp_for_set_combined_p (gomp_for *g, bool combined_p)
>  /* Return true if the OMP_FOR statement G has the
>     GF_OMP_FOR_COMBINED_INTO flag set.  */
>
> -static inline bool
> +inline bool
>  gimple_omp_for_combined_into_p (const gimple *g)
>  {
>    GIMPLE_CHECK (g, GIMPLE_OMP_FOR);
> @@ -5463,7 +5463,7 @@ gimple_omp_for_combined_into_p (const gimple *g)
>  /* Set the GF_OMP_FOR_COMBINED_INTO field in the OMP_FOR statement G depending
>     on the boolean value of COMBINED_P.  */
>
> -static inline void
> +inline void
>  gimple_omp_for_set_combined_into_p (gomp_for *g, bool combined_p)
>  {
>    if (combined_p)
> @@ -5475,7 +5475,7 @@ gimple_omp_for_set_combined_into_p (gomp_for *g, bool combined_p)
>
>  /* Return the clauses associated with the OMP_FOR statement GS.  */
>
> -static inline tree
> +inline tree
>  gimple_omp_for_clauses (const gimple *gs)
>  {
>    const gomp_for *omp_for_stmt = as_a <const gomp_for *> (gs);
> @@ -5486,7 +5486,7 @@ gimple_omp_for_clauses (const gimple *gs)
>  /* Return a pointer to the clauses associated with the OMP_FOR statement
>     GS.  */
>
> -static inline tree *
> +inline tree *
>  gimple_omp_for_clauses_ptr (gimple *gs)
>  {
>    gomp_for *omp_for_stmt = as_a <gomp_for *> (gs);
> @@ -5497,7 +5497,7 @@ gimple_omp_for_clauses_ptr (gimple *gs)
>  /* Set CLAUSES to be the list of clauses associated with the OMP_FOR statement
>     GS.  */
>
> -static inline void
> +inline void
>  gimple_omp_for_set_clauses (gimple *gs, tree clauses)
>  {
>    gomp_for *omp_for_stmt = as_a <gomp_for *> (gs);
> @@ -5507,7 +5507,7 @@ gimple_omp_for_set_clauses (gimple *gs, tree clauses)
>
>  /* Get the collapse count of the OMP_FOR statement GS.  */
>
> -static inline size_t
> +inline size_t
>  gimple_omp_for_collapse (const gimple *gs)
>  {
>    const gomp_for *omp_for_stmt = as_a <const gomp_for *> (gs);
> @@ -5517,7 +5517,7 @@ gimple_omp_for_collapse (const gimple *gs)
>
>  /* Return the condition code associated with the OMP_FOR statement GS.  */
>
> -static inline enum tree_code
> +inline enum tree_code
>  gimple_omp_for_cond (const gimple *gs, size_t i)
>  {
>    const gomp_for *omp_for_stmt = as_a <const gomp_for *> (gs);
> @@ -5528,7 +5528,7 @@ gimple_omp_for_cond (const gimple *gs, size_t i)
>
>  /* Set COND to be the condition code for the OMP_FOR statement GS.  */
>
> -static inline void
> +inline void
>  gimple_omp_for_set_cond (gimple *gs, size_t i, enum tree_code cond)
>  {
>    gomp_for *omp_for_stmt = as_a <gomp_for *> (gs);
> @@ -5540,7 +5540,7 @@ gimple_omp_for_set_cond (gimple *gs, size_t i, enum tree_code cond)
>
>  /* Return the index variable for the OMP_FOR statement GS.  */
>
> -static inline tree
> +inline tree
>  gimple_omp_for_index (const gimple *gs, size_t i)
>  {
>    const gomp_for *omp_for_stmt = as_a <const gomp_for *> (gs);
> @@ -5551,7 +5551,7 @@ gimple_omp_for_index (const gimple *gs, size_t i)
>
>  /* Return a pointer to the index variable for the OMP_FOR statement GS.  */
>
> -static inline tree *
> +inline tree *
>  gimple_omp_for_index_ptr (gimple *gs, size_t i)
>  {
>    gomp_for *omp_for_stmt = as_a <gomp_for *> (gs);
> @@ -5562,7 +5562,7 @@ gimple_omp_for_index_ptr (gimple *gs, size_t i)
>
>  /* Set INDEX to be the index variable for the OMP_FOR statement GS.  */
>
> -static inline void
> +inline void
>  gimple_omp_for_set_index (gimple *gs, size_t i, tree index)
>  {
>    gomp_for *omp_for_stmt = as_a <gomp_for *> (gs);
> @@ -5573,7 +5573,7 @@ gimple_omp_for_set_index (gimple *gs, size_t i, tree index)
>
>  /* Return the initial value for the OMP_FOR statement GS.  */
>
> -static inline tree
> +inline tree
>  gimple_omp_for_initial (const gimple *gs, size_t i)
>  {
>    const gomp_for *omp_for_stmt = as_a <const gomp_for *> (gs);
> @@ -5584,7 +5584,7 @@ gimple_omp_for_initial (const gimple *gs, size_t i)
>
>  /* Return a pointer to the initial value for the OMP_FOR statement GS.  */
>
> -static inline tree *
> +inline tree *
>  gimple_omp_for_initial_ptr (gimple *gs, size_t i)
>  {
>    gomp_for *omp_for_stmt = as_a <gomp_for *> (gs);
> @@ -5595,7 +5595,7 @@ gimple_omp_for_initial_ptr (gimple *gs, size_t i)
>
>  /* Set INITIAL to be the initial value for the OMP_FOR statement GS.  */
>
> -static inline void
> +inline void
>  gimple_omp_for_set_initial (gimple *gs, size_t i, tree initial)
>  {
>    gomp_for *omp_for_stmt = as_a <gomp_for *> (gs);
> @@ -5606,7 +5606,7 @@ gimple_omp_for_set_initial (gimple *gs, size_t i, tree initial)
>
>  /* Return the final value for the OMP_FOR statement GS.  */
>
> -static inline tree
> +inline tree
>  gimple_omp_for_final (const gimple *gs, size_t i)
>  {
>    const gomp_for *omp_for_stmt = as_a <const gomp_for *> (gs);
> @@ -5617,7 +5617,7 @@ gimple_omp_for_final (const gimple *gs, size_t i)
>
>  /* Return a pointer to the final value for the OMP_FOR statement GS.  */
>
> -static inline tree *
> +inline tree *
>  gimple_omp_for_final_ptr (gimple *gs, size_t i)
>  {
>    gomp_for *omp_for_stmt = as_a <gomp_for *> (gs);
> @@ -5628,7 +5628,7 @@ gimple_omp_for_final_ptr (gimple *gs, size_t i)
>
>  /* Set FINAL to be the final value for the OMP_FOR statement GS.  */
>
> -static inline void
> +inline void
>  gimple_omp_for_set_final (gimple *gs, size_t i, tree final)
>  {
>    gomp_for *omp_for_stmt = as_a <gomp_for *> (gs);
> @@ -5639,7 +5639,7 @@ gimple_omp_for_set_final (gimple *gs, size_t i, tree final)
>
>  /* Return the increment value for the OMP_FOR statement GS.  */
>
> -static inline tree
> +inline tree
>  gimple_omp_for_incr (const gimple *gs, size_t i)
>  {
>    const gomp_for *omp_for_stmt = as_a <const gomp_for *> (gs);
> @@ -5650,7 +5650,7 @@ gimple_omp_for_incr (const gimple *gs, size_t i)
>
>  /* Return a pointer to the increment value for the OMP_FOR statement GS.  */
>
> -static inline tree *
> +inline tree *
>  gimple_omp_for_incr_ptr (gimple *gs, size_t i)
>  {
>    gomp_for *omp_for_stmt = as_a <gomp_for *> (gs);
> @@ -5661,7 +5661,7 @@ gimple_omp_for_incr_ptr (gimple *gs, size_t i)
>
>  /* Set INCR to be the increment value for the OMP_FOR statement GS.  */
>
> -static inline void
> +inline void
>  gimple_omp_for_set_incr (gimple *gs, size_t i, tree incr)
>  {
>    gomp_for *omp_for_stmt = as_a <gomp_for *> (gs);
> @@ -5673,7 +5673,7 @@ gimple_omp_for_set_incr (gimple *gs, size_t i, tree incr)
>  /* Return a pointer to the sequence of statements to execute before the OMP_FOR
>     statement GS starts.  */
>
> -static inline gimple_seq *
> +inline gimple_seq *
>  gimple_omp_for_pre_body_ptr (gimple *gs)
>  {
>    gomp_for *omp_for_stmt = as_a <gomp_for *> (gs);
> @@ -5684,7 +5684,7 @@ gimple_omp_for_pre_body_ptr (gimple *gs)
>  /* Return the sequence of statements to execute before the OMP_FOR
>     statement GS starts.  */
>
> -static inline gimple_seq
> +inline gimple_seq
>  gimple_omp_for_pre_body (const gimple *gs)
>  {
>    return *gimple_omp_for_pre_body_ptr (const_cast <gimple *> (gs));
> @@ -5694,7 +5694,7 @@ gimple_omp_for_pre_body (const gimple *gs)
>  /* Set PRE_BODY to be the sequence of statements to execute before the
>     OMP_FOR statement GS starts.  */
>
> -static inline void
> +inline void
>  gimple_omp_for_set_pre_body (gimple *gs, gimple_seq pre_body)
>  {
>    gomp_for *omp_for_stmt = as_a <gomp_for *> (gs);
> @@ -5703,7 +5703,7 @@ gimple_omp_for_set_pre_body (gimple *gs, gimple_seq pre_body)
>
>  /* Return the clauses associated with OMP_PARALLEL GS.  */
>
> -static inline tree
> +inline tree
>  gimple_omp_parallel_clauses (const gimple *gs)
>  {
>    const gomp_parallel *omp_parallel_stmt = as_a <const gomp_parallel *> (gs);
> @@ -5713,7 +5713,7 @@ gimple_omp_parallel_clauses (const gimple *gs)
>
>  /* Return a pointer to the clauses associated with OMP_PARALLEL_STMT.  */
>
> -static inline tree *
> +inline tree *
>  gimple_omp_parallel_clauses_ptr (gomp_parallel *omp_parallel_stmt)
>  {
>    return &omp_parallel_stmt->clauses;
> @@ -5722,7 +5722,7 @@ gimple_omp_parallel_clauses_ptr (gomp_parallel *omp_parallel_stmt)
>
>  /* Set CLAUSES to be the list of clauses associated with OMP_PARALLEL_STMT.  */
>
> -static inline void
> +inline void
>  gimple_omp_parallel_set_clauses (gomp_parallel *omp_parallel_stmt,
>                                  tree clauses)
>  {
> @@ -5732,7 +5732,7 @@ gimple_omp_parallel_set_clauses (gomp_parallel *omp_parallel_stmt,
>
>  /* Return the child function used to hold the body of OMP_PARALLEL_STMT.  */
>
> -static inline tree
> +inline tree
>  gimple_omp_parallel_child_fn (const gomp_parallel *omp_parallel_stmt)
>  {
>    return omp_parallel_stmt->child_fn;
> @@ -5741,7 +5741,7 @@ gimple_omp_parallel_child_fn (const gomp_parallel *omp_parallel_stmt)
>  /* Return a pointer to the child function used to hold the body of
>     OMP_PARALLEL_STMT.  */
>
> -static inline tree *
> +inline tree *
>  gimple_omp_parallel_child_fn_ptr (gomp_parallel *omp_parallel_stmt)
>  {
>    return &omp_parallel_stmt->child_fn;
> @@ -5750,7 +5750,7 @@ gimple_omp_parallel_child_fn_ptr (gomp_parallel *omp_parallel_stmt)
>
>  /* Set CHILD_FN to be the child function for OMP_PARALLEL_STMT.  */
>
> -static inline void
> +inline void
>  gimple_omp_parallel_set_child_fn (gomp_parallel *omp_parallel_stmt,
>                                   tree child_fn)
>  {
> @@ -5761,7 +5761,7 @@ gimple_omp_parallel_set_child_fn (gomp_parallel *omp_parallel_stmt,
>  /* Return the artificial argument used to send variables and values
>     from the parent to the children threads in OMP_PARALLEL_STMT.  */
>
> -static inline tree
> +inline tree
>  gimple_omp_parallel_data_arg (const gomp_parallel *omp_parallel_stmt)
>  {
>    return omp_parallel_stmt->data_arg;
> @@ -5770,7 +5770,7 @@ gimple_omp_parallel_data_arg (const gomp_parallel *omp_parallel_stmt)
>
>  /* Return a pointer to the data argument for OMP_PARALLEL_STMT.  */
>
> -static inline tree *
> +inline tree *
>  gimple_omp_parallel_data_arg_ptr (gomp_parallel *omp_parallel_stmt)
>  {
>    return &omp_parallel_stmt->data_arg;
> @@ -5779,7 +5779,7 @@ gimple_omp_parallel_data_arg_ptr (gomp_parallel *omp_parallel_stmt)
>
>  /* Set DATA_ARG to be the data argument for OMP_PARALLEL_STMT.  */
>
> -static inline void
> +inline void
>  gimple_omp_parallel_set_data_arg (gomp_parallel *omp_parallel_stmt,
>                                   tree data_arg)
>  {
> @@ -5788,7 +5788,7 @@ gimple_omp_parallel_set_data_arg (gomp_parallel *omp_parallel_stmt,
>
>  /* Return the clauses associated with OMP_TASK GS.  */
>
> -static inline tree
> +inline tree
>  gimple_omp_task_clauses (const gimple *gs)
>  {
>    const gomp_task *omp_task_stmt = as_a <const gomp_task *> (gs);
> @@ -5798,7 +5798,7 @@ gimple_omp_task_clauses (const gimple *gs)
>
>  /* Return a pointer to the clauses associated with OMP_TASK GS.  */
>
> -static inline tree *
> +inline tree *
>  gimple_omp_task_clauses_ptr (gimple *gs)
>  {
>    gomp_task *omp_task_stmt = as_a <gomp_task *> (gs);
> @@ -5809,7 +5809,7 @@ gimple_omp_task_clauses_ptr (gimple *gs)
>  /* Set CLAUSES to be the list of clauses associated with OMP_TASK
>     GS.  */
>
> -static inline void
> +inline void
>  gimple_omp_task_set_clauses (gimple *gs, tree clauses)
>  {
>    gomp_task *omp_task_stmt = as_a <gomp_task *> (gs);
> @@ -5820,7 +5820,7 @@ gimple_omp_task_set_clauses (gimple *gs, tree clauses)
>  /* Return true if OMP task statement G has the
>     GF_OMP_TASK_TASKLOOP flag set.  */
>
> -static inline bool
> +inline bool
>  gimple_omp_task_taskloop_p (const gimple *g)
>  {
>    GIMPLE_CHECK (g, GIMPLE_OMP_TASK);
> @@ -5831,7 +5831,7 @@ gimple_omp_task_taskloop_p (const gimple *g)
>  /* Set the GF_OMP_TASK_TASKLOOP field in G depending on the boolean
>     value of TASKLOOP_P.  */
>
> -static inline void
> +inline void
>  gimple_omp_task_set_taskloop_p (gimple *g, bool taskloop_p)
>  {
>    GIMPLE_CHECK (g, GIMPLE_OMP_TASK);
> @@ -5845,7 +5845,7 @@ gimple_omp_task_set_taskloop_p (gimple *g, bool taskloop_p)
>  /* Return true if OMP task statement G has the
>     GF_OMP_TASK_TASKWAIT flag set.  */
>
> -static inline bool
> +inline bool
>  gimple_omp_task_taskwait_p (const gimple *g)
>  {
>    GIMPLE_CHECK (g, GIMPLE_OMP_TASK);
> @@ -5856,7 +5856,7 @@ gimple_omp_task_taskwait_p (const gimple *g)
>  /* Set the GF_OMP_TASK_TASKWAIT field in G depending on the boolean
>     value of TASKWAIT_P.  */
>
> -static inline void
> +inline void
>  gimple_omp_task_set_taskwait_p (gimple *g, bool taskwait_p)
>  {
>    GIMPLE_CHECK (g, GIMPLE_OMP_TASK);
> @@ -5869,7 +5869,7 @@ gimple_omp_task_set_taskwait_p (gimple *g, bool taskwait_p)
>
>  /* Return the child function used to hold the body of OMP_TASK GS.  */
>
> -static inline tree
> +inline tree
>  gimple_omp_task_child_fn (const gimple *gs)
>  {
>    const gomp_task *omp_task_stmt = as_a <const gomp_task *> (gs);
> @@ -5879,7 +5879,7 @@ gimple_omp_task_child_fn (const gimple *gs)
>  /* Return a pointer to the child function used to hold the body of
>     OMP_TASK GS.  */
>
> -static inline tree *
> +inline tree *
>  gimple_omp_task_child_fn_ptr (gimple *gs)
>  {
>    gomp_task *omp_task_stmt = as_a <gomp_task *> (gs);
> @@ -5889,7 +5889,7 @@ gimple_omp_task_child_fn_ptr (gimple *gs)
>
>  /* Set CHILD_FN to be the child function for OMP_TASK GS.  */
>
> -static inline void
> +inline void
>  gimple_omp_task_set_child_fn (gimple *gs, tree child_fn)
>  {
>    gomp_task *omp_task_stmt = as_a <gomp_task *> (gs);
> @@ -5900,7 +5900,7 @@ gimple_omp_task_set_child_fn (gimple *gs, tree child_fn)
>  /* Return the artificial argument used to send variables and values
>     from the parent to the children threads in OMP_TASK GS.  */
>
> -static inline tree
> +inline tree
>  gimple_omp_task_data_arg (const gimple *gs)
>  {
>    const gomp_task *omp_task_stmt = as_a <const gomp_task *> (gs);
> @@ -5910,7 +5910,7 @@ gimple_omp_task_data_arg (const gimple *gs)
>
>  /* Return a pointer to the data argument for OMP_TASK GS.  */
>
> -static inline tree *
> +inline tree *
>  gimple_omp_task_data_arg_ptr (gimple *gs)
>  {
>    gomp_task *omp_task_stmt = as_a <gomp_task *> (gs);
> @@ -5920,7 +5920,7 @@ gimple_omp_task_data_arg_ptr (gimple *gs)
>
>  /* Set DATA_ARG to be the data argument for OMP_TASK GS.  */
>
> -static inline void
> +inline void
>  gimple_omp_task_set_data_arg (gimple *gs, tree data_arg)
>  {
>    gomp_task *omp_task_stmt = as_a <gomp_task *> (gs);
> @@ -5930,7 +5930,7 @@ gimple_omp_task_set_data_arg (gimple *gs, tree data_arg)
>
>  /* Return the clauses associated with OMP_TASK GS.  */
>
> -static inline tree
> +inline tree
>  gimple_omp_taskreg_clauses (const gimple *gs)
>  {
>    const gimple_statement_omp_taskreg *omp_taskreg_stmt
> @@ -5941,7 +5941,7 @@ gimple_omp_taskreg_clauses (const gimple *gs)
>
>  /* Return a pointer to the clauses associated with OMP_TASK GS.  */
>
> -static inline tree *
> +inline tree *
>  gimple_omp_taskreg_clauses_ptr (gimple *gs)
>  {
>    gimple_statement_omp_taskreg *omp_taskreg_stmt
> @@ -5953,7 +5953,7 @@ gimple_omp_taskreg_clauses_ptr (gimple *gs)
>  /* Set CLAUSES to be the list of clauses associated with OMP_TASK
>     GS.  */
>
> -static inline void
> +inline void
>  gimple_omp_taskreg_set_clauses (gimple *gs, tree clauses)
>  {
>    gimple_statement_omp_taskreg *omp_taskreg_stmt
> @@ -5964,7 +5964,7 @@ gimple_omp_taskreg_set_clauses (gimple *gs, tree clauses)
>
>  /* Return the child function used to hold the body of OMP_TASK GS.  */
>
> -static inline tree
> +inline tree
>  gimple_omp_taskreg_child_fn (const gimple *gs)
>  {
>    const gimple_statement_omp_taskreg *omp_taskreg_stmt
> @@ -5975,7 +5975,7 @@ gimple_omp_taskreg_child_fn (const gimple *gs)
>  /* Return a pointer to the child function used to hold the body of
>     OMP_TASK GS.  */
>
> -static inline tree *
> +inline tree *
>  gimple_omp_taskreg_child_fn_ptr (gimple *gs)
>  {
>    gimple_statement_omp_taskreg *omp_taskreg_stmt
> @@ -5986,7 +5986,7 @@ gimple_omp_taskreg_child_fn_ptr (gimple *gs)
>
>  /* Set CHILD_FN to be the child function for OMP_TASK GS.  */
>
> -static inline void
> +inline void
>  gimple_omp_taskreg_set_child_fn (gimple *gs, tree child_fn)
>  {
>    gimple_statement_omp_taskreg *omp_taskreg_stmt
> @@ -5998,7 +5998,7 @@ gimple_omp_taskreg_set_child_fn (gimple *gs, tree child_fn)
>  /* Return the artificial argument used to send variables and values
>     from the parent to the children threads in OMP_TASK GS.  */
>
> -static inline tree
> +inline tree
>  gimple_omp_taskreg_data_arg (const gimple *gs)
>  {
>    const gimple_statement_omp_taskreg *omp_taskreg_stmt
> @@ -6009,7 +6009,7 @@ gimple_omp_taskreg_data_arg (const gimple *gs)
>
>  /* Return a pointer to the data argument for OMP_TASK GS.  */
>
> -static inline tree *
> +inline tree *
>  gimple_omp_taskreg_data_arg_ptr (gimple *gs)
>  {
>    gimple_statement_omp_taskreg *omp_taskreg_stmt
> @@ -6020,7 +6020,7 @@ gimple_omp_taskreg_data_arg_ptr (gimple *gs)
>
>  /* Set DATA_ARG to be the data argument for OMP_TASK GS.  */
>
> -static inline void
> +inline void
>  gimple_omp_taskreg_set_data_arg (gimple *gs, tree data_arg)
>  {
>    gimple_statement_omp_taskreg *omp_taskreg_stmt
> @@ -6031,7 +6031,7 @@ gimple_omp_taskreg_set_data_arg (gimple *gs, tree data_arg)
>
>  /* Return the copy function used to hold the body of OMP_TASK GS.  */
>
> -static inline tree
> +inline tree
>  gimple_omp_task_copy_fn (const gimple *gs)
>  {
>    const gomp_task *omp_task_stmt = as_a <const gomp_task *> (gs);
> @@ -6041,7 +6041,7 @@ gimple_omp_task_copy_fn (const gimple *gs)
>  /* Return a pointer to the copy function used to hold the body of
>     OMP_TASK GS.  */
>
> -static inline tree *
> +inline tree *
>  gimple_omp_task_copy_fn_ptr (gimple *gs)
>  {
>    gomp_task *omp_task_stmt = as_a <gomp_task *> (gs);
> @@ -6051,7 +6051,7 @@ gimple_omp_task_copy_fn_ptr (gimple *gs)
>
>  /* Set CHILD_FN to be the copy function for OMP_TASK GS.  */
>
> -static inline void
> +inline void
>  gimple_omp_task_set_copy_fn (gimple *gs, tree copy_fn)
>  {
>    gomp_task *omp_task_stmt = as_a <gomp_task *> (gs);
> @@ -6061,7 +6061,7 @@ gimple_omp_task_set_copy_fn (gimple *gs, tree copy_fn)
>
>  /* Return size of the data block in bytes in OMP_TASK GS.  */
>
> -static inline tree
> +inline tree
>  gimple_omp_task_arg_size (const gimple *gs)
>  {
>    const gomp_task *omp_task_stmt = as_a <const gomp_task *> (gs);
> @@ -6071,7 +6071,7 @@ gimple_omp_task_arg_size (const gimple *gs)
>
>  /* Return a pointer to the data block size for OMP_TASK GS.  */
>
> -static inline tree *
> +inline tree *
>  gimple_omp_task_arg_size_ptr (gimple *gs)
>  {
>    gomp_task *omp_task_stmt = as_a <gomp_task *> (gs);
> @@ -6081,7 +6081,7 @@ gimple_omp_task_arg_size_ptr (gimple *gs)
>
>  /* Set ARG_SIZE to be the data block size for OMP_TASK GS.  */
>
> -static inline void
> +inline void
>  gimple_omp_task_set_arg_size (gimple *gs, tree arg_size)
>  {
>    gomp_task *omp_task_stmt = as_a <gomp_task *> (gs);
> @@ -6091,7 +6091,7 @@ gimple_omp_task_set_arg_size (gimple *gs, tree arg_size)
>
>  /* Return align of the data block in bytes in OMP_TASK GS.  */
>
> -static inline tree
> +inline tree
>  gimple_omp_task_arg_align (const gimple *gs)
>  {
>    const gomp_task *omp_task_stmt = as_a <const gomp_task *> (gs);
> @@ -6101,7 +6101,7 @@ gimple_omp_task_arg_align (const gimple *gs)
>
>  /* Return a pointer to the data block align for OMP_TASK GS.  */
>
> -static inline tree *
> +inline tree *
>  gimple_omp_task_arg_align_ptr (gimple *gs)
>  {
>    gomp_task *omp_task_stmt = as_a <gomp_task *> (gs);
> @@ -6111,7 +6111,7 @@ gimple_omp_task_arg_align_ptr (gimple *gs)
>
>  /* Set ARG_SIZE to be the data block align for OMP_TASK GS.  */
>
> -static inline void
> +inline void
>  gimple_omp_task_set_arg_align (gimple *gs, tree arg_align)
>  {
>    gomp_task *omp_task_stmt = as_a <gomp_task *> (gs);
> @@ -6121,7 +6121,7 @@ gimple_omp_task_set_arg_align (gimple *gs, tree arg_align)
>
>  /* Return the clauses associated with OMP_SINGLE GS.  */
>
> -static inline tree
> +inline tree
>  gimple_omp_single_clauses (const gimple *gs)
>  {
>    const gomp_single *omp_single_stmt = as_a <const gomp_single *> (gs);
> @@ -6131,7 +6131,7 @@ gimple_omp_single_clauses (const gimple *gs)
>
>  /* Return a pointer to the clauses associated with OMP_SINGLE GS.  */
>
> -static inline tree *
> +inline tree *
>  gimple_omp_single_clauses_ptr (gimple *gs)
>  {
>    gomp_single *omp_single_stmt = as_a <gomp_single *> (gs);
> @@ -6141,7 +6141,7 @@ gimple_omp_single_clauses_ptr (gimple *gs)
>
>  /* Set CLAUSES to be the clauses associated with OMP_SINGLE_STMT.  */
>
> -static inline void
> +inline void
>  gimple_omp_single_set_clauses (gomp_single *omp_single_stmt, tree clauses)
>  {
>    omp_single_stmt->clauses = clauses;
> @@ -6150,7 +6150,7 @@ gimple_omp_single_set_clauses (gomp_single *omp_single_stmt, tree clauses)
>
>  /* Return the clauses associated with OMP_TARGET GS.  */
>
> -static inline tree
> +inline tree
>  gimple_omp_target_clauses (const gimple *gs)
>  {
>    const gomp_target *omp_target_stmt = as_a <const gomp_target *> (gs);
> @@ -6160,7 +6160,7 @@ gimple_omp_target_clauses (const gimple *gs)
>
>  /* Return a pointer to the clauses associated with OMP_TARGET GS.  */
>
> -static inline tree *
> +inline tree *
>  gimple_omp_target_clauses_ptr (gimple *gs)
>  {
>    gomp_target *omp_target_stmt = as_a <gomp_target *> (gs);
> @@ -6170,7 +6170,7 @@ gimple_omp_target_clauses_ptr (gimple *gs)
>
>  /* Set CLAUSES to be the clauses associated with OMP_TARGET_STMT.  */
>
> -static inline void
> +inline void
>  gimple_omp_target_set_clauses (gomp_target *omp_target_stmt,
>                                tree clauses)
>  {
> @@ -6180,7 +6180,7 @@ gimple_omp_target_set_clauses (gomp_target *omp_target_stmt,
>
>  /* Return the kind of the OMP_TARGET G.  */
>
> -static inline int
> +inline int
>  gimple_omp_target_kind (const gimple *g)
>  {
>    GIMPLE_CHECK (g, GIMPLE_OMP_TARGET);
> @@ -6190,7 +6190,7 @@ gimple_omp_target_kind (const gimple *g)
>
>  /* Set the kind of the OMP_TARGET G.  */
>
> -static inline void
> +inline void
>  gimple_omp_target_set_kind (gomp_target *g, int kind)
>  {
>    g->subcode = (g->subcode & ~GF_OMP_TARGET_KIND_MASK)
> @@ -6200,7 +6200,7 @@ gimple_omp_target_set_kind (gomp_target *g, int kind)
>
>  /* Return the child function used to hold the body of OMP_TARGET_STMT.  */
>
> -static inline tree
> +inline tree
>  gimple_omp_target_child_fn (const gomp_target *omp_target_stmt)
>  {
>    return omp_target_stmt->child_fn;
> @@ -6209,7 +6209,7 @@ gimple_omp_target_child_fn (const gomp_target *omp_target_stmt)
>  /* Return a pointer to the child function used to hold the body of
>     OMP_TARGET_STMT.  */
>
> -static inline tree *
> +inline tree *
>  gimple_omp_target_child_fn_ptr (gomp_target *omp_target_stmt)
>  {
>    return &omp_target_stmt->child_fn;
> @@ -6218,7 +6218,7 @@ gimple_omp_target_child_fn_ptr (gomp_target *omp_target_stmt)
>
>  /* Set CHILD_FN to be the child function for OMP_TARGET_STMT.  */
>
> -static inline void
> +inline void
>  gimple_omp_target_set_child_fn (gomp_target *omp_target_stmt,
>                                 tree child_fn)
>  {
> @@ -6229,7 +6229,7 @@ gimple_omp_target_set_child_fn (gomp_target *omp_target_stmt,
>  /* Return the artificial argument used to send variables and values
>     from the parent to the children threads in OMP_TARGET_STMT.  */
>
> -static inline tree
> +inline tree
>  gimple_omp_target_data_arg (const gomp_target *omp_target_stmt)
>  {
>    return omp_target_stmt->data_arg;
> @@ -6238,7 +6238,7 @@ gimple_omp_target_data_arg (const gomp_target *omp_target_stmt)
>
>  /* Return a pointer to the data argument for OMP_TARGET GS.  */
>
> -static inline tree *
> +inline tree *
>  gimple_omp_target_data_arg_ptr (gomp_target *omp_target_stmt)
>  {
>    return &omp_target_stmt->data_arg;
> @@ -6247,7 +6247,7 @@ gimple_omp_target_data_arg_ptr (gomp_target *omp_target_stmt)
>
>  /* Set DATA_ARG to be the data argument for OMP_TARGET_STMT.  */
>
> -static inline void
> +inline void
>  gimple_omp_target_set_data_arg (gomp_target *omp_target_stmt,
>                                 tree data_arg)
>  {
> @@ -6257,7 +6257,7 @@ gimple_omp_target_set_data_arg (gomp_target *omp_target_stmt,
>
>  /* Return the clauses associated with OMP_TEAMS GS.  */
>
> -static inline tree
> +inline tree
>  gimple_omp_teams_clauses (const gimple *gs)
>  {
>    const gomp_teams *omp_teams_stmt = as_a <const gomp_teams *> (gs);
> @@ -6267,7 +6267,7 @@ gimple_omp_teams_clauses (const gimple *gs)
>
>  /* Return a pointer to the clauses associated with OMP_TEAMS GS.  */
>
> -static inline tree *
> +inline tree *
>  gimple_omp_teams_clauses_ptr (gimple *gs)
>  {
>    gomp_teams *omp_teams_stmt = as_a <gomp_teams *> (gs);
> @@ -6277,7 +6277,7 @@ gimple_omp_teams_clauses_ptr (gimple *gs)
>
>  /* Set CLAUSES to be the clauses associated with OMP_TEAMS_STMT.  */
>
> -static inline void
> +inline void
>  gimple_omp_teams_set_clauses (gomp_teams *omp_teams_stmt, tree clauses)
>  {
>    omp_teams_stmt->clauses = clauses;
> @@ -6285,7 +6285,7 @@ gimple_omp_teams_set_clauses (gomp_teams *omp_teams_stmt, tree clauses)
>
>  /* Return the child function used to hold the body of OMP_TEAMS_STMT.  */
>
> -static inline tree
> +inline tree
>  gimple_omp_teams_child_fn (const gomp_teams *omp_teams_stmt)
>  {
>    return omp_teams_stmt->child_fn;
> @@ -6294,7 +6294,7 @@ gimple_omp_teams_child_fn (const gomp_teams *omp_teams_stmt)
>  /* Return a pointer to the child function used to hold the body of
>     OMP_TEAMS_STMT.  */
>
> -static inline tree *
> +inline tree *
>  gimple_omp_teams_child_fn_ptr (gomp_teams *omp_teams_stmt)
>  {
>    return &omp_teams_stmt->child_fn;
> @@ -6303,7 +6303,7 @@ gimple_omp_teams_child_fn_ptr (gomp_teams *omp_teams_stmt)
>
>  /* Set CHILD_FN to be the child function for OMP_TEAMS_STMT.  */
>
> -static inline void
> +inline void
>  gimple_omp_teams_set_child_fn (gomp_teams *omp_teams_stmt, tree child_fn)
>  {
>    omp_teams_stmt->child_fn = child_fn;
> @@ -6313,7 +6313,7 @@ gimple_omp_teams_set_child_fn (gomp_teams *omp_teams_stmt, tree child_fn)
>  /* Return the artificial argument used to send variables and values
>     from the parent to the children threads in OMP_TEAMS_STMT.  */
>
> -static inline tree
> +inline tree
>  gimple_omp_teams_data_arg (const gomp_teams *omp_teams_stmt)
>  {
>    return omp_teams_stmt->data_arg;
> @@ -6322,7 +6322,7 @@ gimple_omp_teams_data_arg (const gomp_teams *omp_teams_stmt)
>
>  /* Return a pointer to the data argument for OMP_TEAMS_STMT.  */
>
> -static inline tree *
> +inline tree *
>  gimple_omp_teams_data_arg_ptr (gomp_teams *omp_teams_stmt)
>  {
>    return &omp_teams_stmt->data_arg;
> @@ -6331,7 +6331,7 @@ gimple_omp_teams_data_arg_ptr (gomp_teams *omp_teams_stmt)
>
>  /* Set DATA_ARG to be the data argument for OMP_TEAMS_STMT.  */
>
> -static inline void
> +inline void
>  gimple_omp_teams_set_data_arg (gomp_teams *omp_teams_stmt, tree data_arg)
>  {
>    omp_teams_stmt->data_arg = data_arg;
> @@ -6339,7 +6339,7 @@ gimple_omp_teams_set_data_arg (gomp_teams *omp_teams_stmt, tree data_arg)
>
>  /* Return the host flag of an OMP_TEAMS_STMT.  */
>
> -static inline bool
> +inline bool
>  gimple_omp_teams_host (const gomp_teams *omp_teams_stmt)
>  {
>    return (gimple_omp_subcode (omp_teams_stmt) & GF_OMP_TEAMS_HOST) != 0;
> @@ -6347,7 +6347,7 @@ gimple_omp_teams_host (const gomp_teams *omp_teams_stmt)
>
>  /* Set host flag of an OMP_TEAMS_STMT to VALUE.  */
>
> -static inline void
> +inline void
>  gimple_omp_teams_set_host (gomp_teams *omp_teams_stmt, bool value)
>  {
>    if (value)
> @@ -6358,7 +6358,7 @@ gimple_omp_teams_set_host (gomp_teams *omp_teams_stmt, bool value)
>
>  /* Return the clauses associated with OMP_SECTIONS GS.  */
>
> -static inline tree
> +inline tree
>  gimple_omp_sections_clauses (const gimple *gs)
>  {
>    const gomp_sections *omp_sections_stmt = as_a <const gomp_sections *> (gs);
> @@ -6368,7 +6368,7 @@ gimple_omp_sections_clauses (const gimple *gs)
>
>  /* Return a pointer to the clauses associated with OMP_SECTIONS GS.  */
>
> -static inline tree *
> +inline tree *
>  gimple_omp_sections_clauses_ptr (gimple *gs)
>  {
>    gomp_sections *omp_sections_stmt = as_a <gomp_sections *> (gs);
> @@ -6379,7 +6379,7 @@ gimple_omp_sections_clauses_ptr (gimple *gs)
>  /* Set CLAUSES to be the set of clauses associated with OMP_SECTIONS
>     GS.  */
>
> -static inline void
> +inline void
>  gimple_omp_sections_set_clauses (gimple *gs, tree clauses)
>  {
>    gomp_sections *omp_sections_stmt = as_a <gomp_sections *> (gs);
> @@ -6390,7 +6390,7 @@ gimple_omp_sections_set_clauses (gimple *gs, tree clauses)
>  /* Return the control variable associated with the GIMPLE_OMP_SECTIONS
>     in GS.  */
>
> -static inline tree
> +inline tree
>  gimple_omp_sections_control (const gimple *gs)
>  {
>    const gomp_sections *omp_sections_stmt = as_a <const gomp_sections *> (gs);
> @@ -6401,7 +6401,7 @@ gimple_omp_sections_control (const gimple *gs)
>  /* Return a pointer to the clauses associated with the GIMPLE_OMP_SECTIONS
>     GS.  */
>
> -static inline tree *
> +inline tree *
>  gimple_omp_sections_control_ptr (gimple *gs)
>  {
>    gomp_sections *omp_sections_stmt = as_a <gomp_sections *> (gs);
> @@ -6412,7 +6412,7 @@ gimple_omp_sections_control_ptr (gimple *gs)
>  /* Set CONTROL to be the set of clauses associated with the
>     GIMPLE_OMP_SECTIONS in GS.  */
>
> -static inline void
> +inline void
>  gimple_omp_sections_set_control (gimple *gs, tree control)
>  {
>    gomp_sections *omp_sections_stmt = as_a <gomp_sections *> (gs);
> @@ -6422,7 +6422,7 @@ gimple_omp_sections_set_control (gimple *gs, tree control)
>
>  /* Set the value being stored in an atomic store.  */
>
> -static inline void
> +inline void
>  gimple_omp_atomic_store_set_val (gomp_atomic_store *store_stmt, tree val)
>  {
>    store_stmt->val = val;
> @@ -6431,7 +6431,7 @@ gimple_omp_atomic_store_set_val (gomp_atomic_store *store_stmt, tree val)
>
>  /* Return the value being stored in an atomic store.  */
>
> -static inline tree
> +inline tree
>  gimple_omp_atomic_store_val (const gomp_atomic_store *store_stmt)
>  {
>    return store_stmt->val;
> @@ -6440,7 +6440,7 @@ gimple_omp_atomic_store_val (const gomp_atomic_store *store_stmt)
>
>  /* Return a pointer to the value being stored in an atomic store.  */
>
> -static inline tree *
> +inline tree *
>  gimple_omp_atomic_store_val_ptr (gomp_atomic_store *store_stmt)
>  {
>    return &store_stmt->val;
> @@ -6449,7 +6449,7 @@ gimple_omp_atomic_store_val_ptr (gomp_atomic_store *store_stmt)
>
>  /* Set the LHS of an atomic load.  */
>
> -static inline void
> +inline void
>  gimple_omp_atomic_load_set_lhs (gomp_atomic_load *load_stmt, tree lhs)
>  {
>    load_stmt->lhs = lhs;
> @@ -6458,7 +6458,7 @@ gimple_omp_atomic_load_set_lhs (gomp_atomic_load *load_stmt, tree lhs)
>
>  /* Get the LHS of an atomic load.  */
>
> -static inline tree
> +inline tree
>  gimple_omp_atomic_load_lhs (const gomp_atomic_load *load_stmt)
>  {
>    return load_stmt->lhs;
> @@ -6467,7 +6467,7 @@ gimple_omp_atomic_load_lhs (const gomp_atomic_load *load_stmt)
>
>  /* Return a pointer to the LHS of an atomic load.  */
>
> -static inline tree *
> +inline tree *
>  gimple_omp_atomic_load_lhs_ptr (gomp_atomic_load *load_stmt)
>  {
>    return &load_stmt->lhs;
> @@ -6476,7 +6476,7 @@ gimple_omp_atomic_load_lhs_ptr (gomp_atomic_load *load_stmt)
>
>  /* Set the RHS of an atomic load.  */
>
> -static inline void
> +inline void
>  gimple_omp_atomic_load_set_rhs (gomp_atomic_load *load_stmt, tree rhs)
>  {
>    load_stmt->rhs = rhs;
> @@ -6485,7 +6485,7 @@ gimple_omp_atomic_load_set_rhs (gomp_atomic_load *load_stmt, tree rhs)
>
>  /* Get the RHS of an atomic load.  */
>
> -static inline tree
> +inline tree
>  gimple_omp_atomic_load_rhs (const gomp_atomic_load *load_stmt)
>  {
>    return load_stmt->rhs;
> @@ -6494,7 +6494,7 @@ gimple_omp_atomic_load_rhs (const gomp_atomic_load *load_stmt)
>
>  /* Return a pointer to the RHS of an atomic load.  */
>
> -static inline tree *
> +inline tree *
>  gimple_omp_atomic_load_rhs_ptr (gomp_atomic_load *load_stmt)
>  {
>    return &load_stmt->rhs;
> @@ -6503,7 +6503,7 @@ gimple_omp_atomic_load_rhs_ptr (gomp_atomic_load *load_stmt)
>
>  /* Get the definition of the control variable in a GIMPLE_OMP_CONTINUE.  */
>
> -static inline tree
> +inline tree
>  gimple_omp_continue_control_def (const gomp_continue *cont_stmt)
>  {
>    return cont_stmt->control_def;
> @@ -6511,7 +6511,7 @@ gimple_omp_continue_control_def (const gomp_continue *cont_stmt)
>
>  /* The same as above, but return the address.  */
>
> -static inline tree *
> +inline tree *
>  gimple_omp_continue_control_def_ptr (gomp_continue *cont_stmt)
>  {
>    return &cont_stmt->control_def;
> @@ -6519,7 +6519,7 @@ gimple_omp_continue_control_def_ptr (gomp_continue *cont_stmt)
>
>  /* Set the definition of the control variable in a GIMPLE_OMP_CONTINUE.  */
>
> -static inline void
> +inline void
>  gimple_omp_continue_set_control_def (gomp_continue *cont_stmt, tree def)
>  {
>    cont_stmt->control_def = def;
> @@ -6528,7 +6528,7 @@ gimple_omp_continue_set_control_def (gomp_continue *cont_stmt, tree def)
>
>  /* Get the use of the control variable in a GIMPLE_OMP_CONTINUE.  */
>
> -static inline tree
> +inline tree
>  gimple_omp_continue_control_use (const gomp_continue *cont_stmt)
>  {
>    return cont_stmt->control_use;
> @@ -6537,7 +6537,7 @@ gimple_omp_continue_control_use (const gomp_continue *cont_stmt)
>
>  /* The same as above, but return the address.  */
>
> -static inline tree *
> +inline tree *
>  gimple_omp_continue_control_use_ptr (gomp_continue *cont_stmt)
>  {
>    return &cont_stmt->control_use;
> @@ -6546,7 +6546,7 @@ gimple_omp_continue_control_use_ptr (gomp_continue *cont_stmt)
>
>  /* Set the use of the control variable in a GIMPLE_OMP_CONTINUE.  */
>
> -static inline void
> +inline void
>  gimple_omp_continue_set_control_use (gomp_continue *cont_stmt, tree use)
>  {
>    cont_stmt->control_use = use;
> @@ -6554,7 +6554,7 @@ gimple_omp_continue_set_control_use (gomp_continue *cont_stmt, tree use)
>
>  /* Return the guard associated with the GIMPLE_ASSUME statement GS.  */
>
> -static inline tree
> +inline tree
>  gimple_assume_guard (const gimple *gs)
>  {
>    const gimple_statement_assume *assume_stmt
> @@ -6564,14 +6564,14 @@ gimple_assume_guard (const gimple *gs)
>
>  /* Set the guard associated with the GIMPLE_ASSUME statement GS.  */
>
> -static inline void
> +inline void
>  gimple_assume_set_guard (gimple *gs, tree guard)
>  {
>    gimple_statement_assume *assume_stmt = as_a <gimple_statement_assume *> (gs);
>    assume_stmt->guard = guard;
>  }
>
> -static inline tree *
> +inline tree *
>  gimple_assume_guard_ptr (gimple *gs)
>  {
>    gimple_statement_assume *assume_stmt = as_a <gimple_statement_assume *> (gs);
> @@ -6581,7 +6581,7 @@ gimple_assume_guard_ptr (gimple *gs)
>  /* Return the address of the GIMPLE sequence contained in the GIMPLE_ASSUME
>     statement GS.  */
>
> -static inline gimple_seq *
> +inline gimple_seq *
>  gimple_assume_body_ptr (gimple *gs)
>  {
>    gimple_statement_assume *assume_stmt = as_a <gimple_statement_assume *> (gs);
> @@ -6590,7 +6590,7 @@ gimple_assume_body_ptr (gimple *gs)
>
>  /* Return the GIMPLE sequence contained in the GIMPLE_ASSUME statement GS.  */
>
> -static inline gimple_seq
> +inline gimple_seq
>  gimple_assume_body (const gimple *gs)
>  {
>    const gimple_statement_assume *assume_stmt
> @@ -6601,7 +6601,7 @@ gimple_assume_body (const gimple *gs)
>  /* Return a pointer to the body for the GIMPLE_TRANSACTION statement
>     TRANSACTION_STMT.  */
>
> -static inline gimple_seq *
> +inline gimple_seq *
>  gimple_transaction_body_ptr (gtransaction *transaction_stmt)
>  {
>    return &transaction_stmt->body;
> @@ -6609,7 +6609,7 @@ gimple_transaction_body_ptr (gtransaction *transaction_stmt)
>
>  /* Return the body for the GIMPLE_TRANSACTION statement TRANSACTION_STMT.  */
>
> -static inline gimple_seq
> +inline gimple_seq
>  gimple_transaction_body (const gtransaction *transaction_stmt)
>  {
>    return transaction_stmt->body;
> @@ -6617,37 +6617,37 @@ gimple_transaction_body (const gtransaction *transaction_stmt)
>
>  /* Return the label associated with a GIMPLE_TRANSACTION.  */
>
> -static inline tree
> +inline tree
>  gimple_transaction_label_norm (const gtransaction *transaction_stmt)
>  {
>    return transaction_stmt->label_norm;
>  }
>
> -static inline tree *
> +inline tree *
>  gimple_transaction_label_norm_ptr (gtransaction *transaction_stmt)
>  {
>    return &transaction_stmt->label_norm;
>  }
>
> -static inline tree
> +inline tree
>  gimple_transaction_label_uninst (const gtransaction *transaction_stmt)
>  {
>    return transaction_stmt->label_uninst;
>  }
>
> -static inline tree *
> +inline tree *
>  gimple_transaction_label_uninst_ptr (gtransaction *transaction_stmt)
>  {
>    return &transaction_stmt->label_uninst;
>  }
>
> -static inline tree
> +inline tree
>  gimple_transaction_label_over (const gtransaction *transaction_stmt)
>  {
>    return transaction_stmt->label_over;
>  }
>
> -static inline tree *
> +inline tree *
>  gimple_transaction_label_over_ptr (gtransaction *transaction_stmt)
>  {
>    return &transaction_stmt->label_over;
> @@ -6655,7 +6655,7 @@ gimple_transaction_label_over_ptr (gtransaction *transaction_stmt)
>
>  /* Return the subcode associated with a GIMPLE_TRANSACTION.  */
>
> -static inline unsigned int
> +inline unsigned int
>  gimple_transaction_subcode (const gtransaction *transaction_stmt)
>  {
>    return transaction_stmt->subcode;
> @@ -6664,7 +6664,7 @@ gimple_transaction_subcode (const gtransaction *transaction_stmt)
>  /* Set BODY to be the body for the GIMPLE_TRANSACTION statement
>     TRANSACTION_STMT.  */
>
> -static inline void
> +inline void
>  gimple_transaction_set_body (gtransaction *transaction_stmt,
>                              gimple_seq body)
>  {
> @@ -6673,19 +6673,19 @@ gimple_transaction_set_body (gtransaction *transaction_stmt,
>
>  /* Set the label associated with a GIMPLE_TRANSACTION.  */
>
> -static inline void
> +inline void
>  gimple_transaction_set_label_norm (gtransaction *transaction_stmt, tree label)
>  {
>    transaction_stmt->label_norm = label;
>  }
>
> -static inline void
> +inline void
>  gimple_transaction_set_label_uninst (gtransaction *transaction_stmt, tree label)
>  {
>    transaction_stmt->label_uninst = label;
>  }
>
> -static inline void
> +inline void
>  gimple_transaction_set_label_over (gtransaction *transaction_stmt, tree label)
>  {
>    transaction_stmt->label_over = label;
> @@ -6693,7 +6693,7 @@ gimple_transaction_set_label_over (gtransaction *transaction_stmt, tree label)
>
>  /* Set the subcode associated with a GIMPLE_TRANSACTION.  */
>
> -static inline void
> +inline void
>  gimple_transaction_set_subcode (gtransaction *transaction_stmt,
>                                 unsigned int subcode)
>  {
> @@ -6702,7 +6702,7 @@ gimple_transaction_set_subcode (gtransaction *transaction_stmt,
>
>  /* Return a pointer to the return value for GIMPLE_RETURN GS.  */
>
> -static inline tree *
> +inline tree *
>  gimple_return_retval_ptr (greturn *gs)
>  {
>    return &gs->op[0];
> @@ -6710,7 +6710,7 @@ gimple_return_retval_ptr (greturn *gs)
>
>  /* Return the return value for GIMPLE_RETURN GS.  */
>
> -static inline tree
> +inline tree
>  gimple_return_retval (const greturn *gs)
>  {
>    return gs->op[0];
> @@ -6719,7 +6719,7 @@ gimple_return_retval (const greturn *gs)
>
>  /* Set RETVAL to be the return value for GIMPLE_RETURN GS.  */
>
> -static inline void
> +inline void
>  gimple_return_set_retval (greturn *gs, tree retval)
>  {
>    gs->op[0] = retval;
> @@ -6750,7 +6750,7 @@ gimple_return_set_retval (greturn *gs, tree retval)
>      case GIMPLE_OMP_ATOMIC_STORE:              \
>      case GIMPLE_OMP_CONTINUE
>
> -static inline bool
> +inline bool
>  is_gimple_omp (const gimple *stmt)
>  {
>    switch (gimple_code (stmt))
> @@ -6765,7 +6765,7 @@ is_gimple_omp (const gimple *stmt)
>  /* Return true if the OMP gimple statement STMT is any of the OpenACC types
>     specifically.  */
>
> -static inline bool
> +inline bool
>  is_gimple_omp_oacc (const gimple *stmt)
>  {
>    gcc_assert (is_gimple_omp (stmt));
> @@ -6814,7 +6814,7 @@ is_gimple_omp_oacc (const gimple *stmt)
>
>  /* Return true if the OMP gimple statement STMT is offloaded.  */
>
> -static inline bool
> +inline bool
>  is_gimple_omp_offloaded (const gimple *stmt)
>  {
>    gcc_assert (is_gimple_omp (stmt));
> @@ -6841,7 +6841,7 @@ is_gimple_omp_offloaded (const gimple *stmt)
>
>  /* Returns TRUE if statement G is a GIMPLE_NOP.  */
>
> -static inline bool
> +inline bool
>  gimple_nop_p (const gimple *g)
>  {
>    return gimple_code (g) == GIMPLE_NOP;
> @@ -6850,7 +6850,7 @@ gimple_nop_p (const gimple *g)
>
>  /* Return true if GS is a GIMPLE_RESX.  */
>
> -static inline bool
> +inline bool
>  is_gimple_resx (const gimple *gs)
>  {
>    return gimple_code (gs) == GIMPLE_RESX;
> @@ -6872,7 +6872,7 @@ extern uint64_t gimple_alloc_counts[];
>  extern uint64_t gimple_alloc_sizes[];
>
>  /* Return the allocation kind for a given stmt CODE.  */
> -static inline enum gimple_alloc_kind
> +inline enum gimple_alloc_kind
>  gimple_alloc_kind (enum gimple_code code)
>  {
>    switch (code)
> @@ -6891,7 +6891,7 @@ gimple_alloc_kind (enum gimple_code code)
>  /* Return true if a location should not be emitted for this statement
>     by annotate_all_with_location.  */
>
> -static inline bool
> +inline bool
>  gimple_do_not_emit_location_p (gimple *g)
>  {
>    return gimple_plf (g, GF_PLF_1);
> @@ -6900,7 +6900,7 @@ gimple_do_not_emit_location_p (gimple *g)
>  /* Mark statement G so a location will not be emitted by
>     annotate_one_with_location.  */
>
> -static inline void
> +inline void
>  gimple_set_do_not_emit_location (gimple *g)
>  {
>    /* The PLF flags are initialized to 0 when a new tuple is created,
> diff --git a/gcc/graphite.h b/gcc/graphite.h
> index c4c5e3c6fc5..dc6e482fce3 100644
> --- a/gcc/graphite.h
> +++ b/gcc/graphite.h
> @@ -32,7 +32,7 @@ typedef struct scop *scop_p;
>
>  typedef unsigned graphite_dim_t;
>
> -static inline graphite_dim_t scop_nb_params (scop_p);
> +inline graphite_dim_t scop_nb_params (scop_p);
>
>  /* A data reference can write or read some memory or we
>     just know it may write some memory.  */
> @@ -189,7 +189,7 @@ void new_poly_dr (poly_bb_p, gimple *, enum poly_dr_type,
>  void debug_pdr (poly_dr_p);
>  void print_pdr (FILE *, poly_dr_p);
>
> -static inline bool
> +inline bool
>  pdr_read_p (poly_dr_p pdr)
>  {
>    return PDR_TYPE (pdr) == PDR_READ;
> @@ -197,7 +197,7 @@ pdr_read_p (poly_dr_p pdr)
>
>  /* Returns true when PDR is a "write".  */
>
> -static inline bool
> +inline bool
>  pdr_write_p (poly_dr_p pdr)
>  {
>    return PDR_TYPE (pdr) == PDR_WRITE;
> @@ -205,7 +205,7 @@ pdr_write_p (poly_dr_p pdr)
>
>  /* Returns true when PDR is a "may write".  */
>
> -static inline bool
> +inline bool
>  pdr_may_write_p (poly_dr_p pdr)
>  {
>    return PDR_TYPE (pdr) == PDR_MAY_WRITE;
> @@ -295,13 +295,13 @@ extern void debug_schedule_ast (__isl_keep isl_schedule *, scop_p);
>
>  /* The basic block of the PBB.  */
>
> -static inline basic_block
> +inline basic_block
>  pbb_bb (poly_bb_p pbb)
>  {
>    return GBB_BB (PBB_BLACK_BOX (pbb));
>  }
>
> -static inline int
> +inline int
>  pbb_index (poly_bb_p pbb)
>  {
>    return pbb_bb (pbb)->index;
> @@ -309,7 +309,7 @@ pbb_index (poly_bb_p pbb)
>
>  /* The loop of the PBB.  */
>
> -static inline loop_p
> +inline loop_p
>  pbb_loop (poly_bb_p pbb)
>  {
>    return gbb_loop (PBB_BLACK_BOX (pbb));
> @@ -317,7 +317,7 @@ pbb_loop (poly_bb_p pbb)
>
>  /* The scop that contains the PDR.  */
>
> -static inline scop_p
> +inline scop_p
>  pdr_scop (poly_dr_p pdr)
>  {
>    return PBB_SCOP (PDR_PBB (pdr));
> @@ -325,7 +325,7 @@ pdr_scop (poly_dr_p pdr)
>
>  /* Set black box of PBB to BLACKBOX.  */
>
> -static inline void
> +inline void
>  pbb_set_black_box (poly_bb_p pbb, gimple_poly_bb_p black_box)
>  {
>    pbb->black_box = black_box;
> @@ -412,7 +412,7 @@ extern bool apply_poly_transforms (scop_p);
>
>  /* Set the region of SCOP to REGION.  */
>
> -static inline void
> +inline void
>  scop_set_region (scop_p scop, sese_info_p region)
>  {
>    scop->scop_info = region;
> @@ -420,7 +420,7 @@ scop_set_region (scop_p scop, sese_info_p region)
>
>  /* Returns the number of parameters for SCOP.  */
>
> -static inline graphite_dim_t
> +inline graphite_dim_t
>  scop_nb_params (scop_p scop)
>  {
>    return scop->nb_params;
> @@ -428,7 +428,7 @@ scop_nb_params (scop_p scop)
>
>  /* Set the number of params of SCOP to NB_PARAMS.  */
>
> -static inline void
> +inline void
>  scop_set_nb_params (scop_p scop, graphite_dim_t nb_params)
>  {
>    scop->nb_params = nb_params;
> diff --git a/gcc/hard-reg-set.h b/gcc/hard-reg-set.h
> index 320b4349527..b0bb9bce074 100644
> --- a/gcc/hard-reg-set.h
> +++ b/gcc/hard-reg-set.h
> @@ -173,19 +173,19 @@ struct hard_reg_set_container
>  #define CLEAR_HARD_REG_SET(TO) ((TO) = HARD_CONST (0))
>  #define SET_HARD_REG_SET(TO) ((TO) = ~ HARD_CONST (0))
>
> -static inline bool
> +inline bool
>  hard_reg_set_subset_p (const_hard_reg_set x, const_hard_reg_set y)
>  {
>    return (x & ~y) == HARD_CONST (0);
>  }
>
> -static inline bool
> +inline bool
>  hard_reg_set_intersect_p (const_hard_reg_set x, const_hard_reg_set y)
>  {
>    return (x & y) != HARD_CONST (0);
>  }
>
> -static inline bool
> +inline bool
>  hard_reg_set_empty_p (const_hard_reg_set x)
>  {
>    return x == HARD_CONST (0);
> @@ -228,7 +228,7 @@ SET_HARD_REG_SET (HARD_REG_SET &set)
>      set.elts[i] = -1;
>  }
>
> -static inline bool
> +inline bool
>  hard_reg_set_subset_p (const_hard_reg_set x, const_hard_reg_set y)
>  {
>    HARD_REG_ELT_TYPE bad = 0;
> @@ -237,7 +237,7 @@ hard_reg_set_subset_p (const_hard_reg_set x, const_hard_reg_set y)
>    return bad == 0;
>  }
>
> -static inline bool
> +inline bool
>  hard_reg_set_intersect_p (const_hard_reg_set x, const_hard_reg_set y)
>  {
>    HARD_REG_ELT_TYPE good = 0;
> @@ -246,7 +246,7 @@ hard_reg_set_intersect_p (const_hard_reg_set x, const_hard_reg_set y)
>    return good != 0;
>  }
>
> -static inline bool
> +inline bool
>  hard_reg_set_empty_p (const_hard_reg_set x)
>  {
>    HARD_REG_ELT_TYPE bad = 0;
> @@ -279,7 +279,7 @@ struct hard_reg_set_iterator
>
>  /* The implementation of the iterator functions is fully analogous to
>     the bitmap iterators.  */
> -static inline void
> +inline void
>  hard_reg_set_iter_init (hard_reg_set_iterator *iter, const_hard_reg_set set,
>                          unsigned min, unsigned *regno)
>  {
> @@ -302,7 +302,7 @@ hard_reg_set_iter_init (hard_reg_set_iterator *iter, const_hard_reg_set set,
>    *regno = min;
>  }
>
> -static inline bool
> +inline bool
>  hard_reg_set_iter_set (hard_reg_set_iterator *iter, unsigned *regno)
>  {
>    while (1)
> @@ -337,7 +337,7 @@ hard_reg_set_iter_set (hard_reg_set_iterator *iter, unsigned *regno)
>      }
>  }
>
> -static inline void
> +inline void
>  hard_reg_set_iter_next (hard_reg_set_iterator *iter, unsigned *regno)
>  {
>    iter->bits >>= 1;
> diff --git a/gcc/hash-map.h b/gcc/hash-map.h
> index bc7ca9fd8e2..1c5189b04d5 100644
> --- a/gcc/hash-map.h
> +++ b/gcc/hash-map.h
> @@ -315,21 +315,21 @@ private:
>  /* ggc marking routines.  */
>
>  template<typename K, typename V, typename H>
> -static inline void
> +inline void
>  gt_ggc_mx (hash_map<K, V, H> *h)
>  {
>    gt_ggc_mx (&h->m_table);
>  }
>
>  template<typename K, typename V, typename H>
> -static inline void
> +inline void
>  gt_pch_nx (hash_map<K, V, H> *h)
>  {
>    gt_pch_nx (&h->m_table);
>  }
>
>  template<typename K, typename V, typename H>
> -static inline void
> +inline void
>  gt_cleare_cache (hash_map<K, V, H> *h)
>  {
>    if (h)
> @@ -337,7 +337,7 @@ gt_cleare_cache (hash_map<K, V, H> *h)
>  }
>
>  template<typename K, typename V, typename H>
> -static inline void
> +inline void
>  gt_pch_nx (hash_map<K, V, H> *h, gt_pointer_operator op, void *cookie)
>  {
>    op (&h->m_table.m_entries, NULL, cookie);
> diff --git a/gcc/hash-set.h b/gcc/hash-set.h
> index 048e7e75011..f6125eb6a3a 100644
> --- a/gcc/hash-set.h
> +++ b/gcc/hash-set.h
> @@ -194,21 +194,21 @@ debug_helper (hash_set<T> &ref)
>  /* ggc marking routines.  */
>
>  template<typename K, typename H>
> -static inline void
> +inline void
>  gt_ggc_mx (hash_set<K, false, H> *h)
>  {
>    gt_ggc_mx (&h->m_table);
>  }
>
>  template<typename K, typename H>
> -static inline void
> +inline void
>  gt_pch_nx (hash_set<K, false, H> *h)
>  {
>    gt_pch_nx (&h->m_table);
>  }
>
>  template<typename K, typename H>
> -static inline void
> +inline void
>  gt_pch_nx (hash_set<K, false, H> *h, gt_pointer_operator op, void *cookie)
>  {
>    op (&h->m_table.m_entries, NULL, cookie);
> diff --git a/gcc/hash-table.h b/gcc/hash-table.h
> index e37625dc315..3f87ec06f37 100644
> --- a/gcc/hash-table.h
> +++ b/gcc/hash-table.h
> @@ -1236,7 +1236,7 @@ hash_table<Descriptor, Lazy, Allocator>::iterator::operator ++ ()
>  /* ggc walking routines.  */
>
>  template<typename E>
> -static inline void
> +inline void
>  gt_ggc_mx (hash_table<E> *h)
>  {
>    typedef hash_table<E> table;
> @@ -1257,7 +1257,7 @@ gt_ggc_mx (hash_table<E> *h)
>  }
>
>  template<typename D>
> -static inline void
> +inline void
>  hashtab_entry_note_pointers (void *obj, void *h, gt_pointer_operator op,
>                              void *cookie)
>  {
> @@ -1293,7 +1293,7 @@ gt_pch_nx (hash_table<D> *h)
>  }
>
>  template<typename D>
> -static inline void
> +inline void
>  gt_pch_nx (hash_table<D> *h, gt_pointer_operator op, void *cookie)
>  {
>    op (&h->m_entries, NULL, cookie);
> diff --git a/gcc/hwint.h b/gcc/hwint.h
> index e31aa006fa4..427e9b9e9fd 100644
> --- a/gcc/hwint.h
> +++ b/gcc/hwint.h
> @@ -138,7 +138,7 @@ typedef HOST_WIDE_INT __gcc_host_wide_int__;
>
>  /* Return X with all but the lowest bit masked off.  */
>
> -static inline unsigned HOST_WIDE_INT
> +inline unsigned HOST_WIDE_INT
>  least_bit_hwi (unsigned HOST_WIDE_INT x)
>  {
>    return (x & -x);
> @@ -146,7 +146,7 @@ least_bit_hwi (unsigned HOST_WIDE_INT x)
>
>  /* True if X is zero or a power of two.  */
>
> -static inline bool
> +inline bool
>  pow2_or_zerop (unsigned HOST_WIDE_INT x)
>  {
>    return least_bit_hwi (x) == x;
> @@ -154,7 +154,7 @@ pow2_or_zerop (unsigned HOST_WIDE_INT x)
>
>  /* True if X is a power of two.  */
>
> -static inline bool
> +inline bool
>  pow2p_hwi (unsigned HOST_WIDE_INT x)
>  {
>    return x && pow2_or_zerop (x);
> @@ -181,7 +181,7 @@ extern int ceil_log2                        (unsigned HOST_WIDE_INT);
>  #else /* GCC_VERSION >= 3004 */
>
>  /* For convenience, define 0 -> word_size.  */
> -static inline int
> +inline int
>  clz_hwi (unsigned HOST_WIDE_INT x)
>  {
>    if (x == 0)
> @@ -195,7 +195,7 @@ clz_hwi (unsigned HOST_WIDE_INT x)
>  # endif
>  }
>
> -static inline int
> +inline int
>  ctz_hwi (unsigned HOST_WIDE_INT x)
>  {
>    if (x == 0)
> @@ -209,7 +209,7 @@ ctz_hwi (unsigned HOST_WIDE_INT x)
>  # endif
>  }
>
> -static inline int
> +inline int
>  ffs_hwi (unsigned HOST_WIDE_INT x)
>  {
>  # if HOST_BITS_PER_WIDE_INT == HOST_BITS_PER_LONG
> @@ -221,7 +221,7 @@ ffs_hwi (unsigned HOST_WIDE_INT x)
>  # endif
>  }
>
> -static inline int
> +inline int
>  popcount_hwi (unsigned HOST_WIDE_INT x)
>  {
>  # if HOST_BITS_PER_WIDE_INT == HOST_BITS_PER_LONG
> @@ -233,19 +233,19 @@ popcount_hwi (unsigned HOST_WIDE_INT x)
>  # endif
>  }
>
> -static inline int
> +inline int
>  floor_log2 (unsigned HOST_WIDE_INT x)
>  {
>    return HOST_BITS_PER_WIDE_INT - 1 - clz_hwi (x);
>  }
>
> -static inline int
> +inline int
>  ceil_log2 (unsigned HOST_WIDE_INT x)
>  {
>    return x == 0 ? 0 : floor_log2 (x - 1) + 1;
>  }
>
> -static inline int
> +inline int
>  exact_log2 (unsigned HOST_WIDE_INT x)
>  {
>    return pow2p_hwi (x) ? ctz_hwi (x) : -1;
> @@ -266,7 +266,7 @@ extern HOST_WIDE_INT least_common_multiple (HOST_WIDE_INT, HOST_WIDE_INT);
>
>  /* Like ctz_hwi, except 0 when x == 0.  */
>
> -static inline int
> +inline int
>  ctz_or_zero (unsigned HOST_WIDE_INT x)
>  {
>    return ffs_hwi (x) - 1;
> @@ -274,7 +274,7 @@ ctz_or_zero (unsigned HOST_WIDE_INT x)
>
>  /* Sign extend SRC starting from PREC.  */
>
> -static inline HOST_WIDE_INT
> +inline HOST_WIDE_INT
>  sext_hwi (HOST_WIDE_INT src, unsigned int prec)
>  {
>    if (prec == HOST_BITS_PER_WIDE_INT)
> @@ -304,7 +304,7 @@ sext_hwi (HOST_WIDE_INT src, unsigned int prec)
>  }
>
>  /* Zero extend SRC starting from PREC.  */
> -static inline unsigned HOST_WIDE_INT
> +inline unsigned HOST_WIDE_INT
>  zext_hwi (unsigned HOST_WIDE_INT src, unsigned int prec)
>  {
>    if (prec == HOST_BITS_PER_WIDE_INT)
> diff --git a/gcc/input.h b/gcc/input.h
> index b1fa14adf5b..9d68648bb3c 100644
> --- a/gcc/input.h
> +++ b/gcc/input.h
> @@ -195,7 +195,7 @@ extern int get_discriminator_from_loc (location_t);
>     that is part of a macro replacement-list defined in a system
>     header, but expanded in a non-system file.  */
>
> -static inline int
> +inline int
>  in_system_header_at (location_t loc)
>  {
>    return linemap_location_in_system_header_p (line_table, loc);
> @@ -204,7 +204,7 @@ in_system_header_at (location_t loc)
>  /* Return true if LOCATION is the locus of a token that
>     comes from a macro expansion, false otherwise.  */
>
> -static inline bool
> +inline bool
>  from_macro_expansion_at (location_t loc)
>  {
>    return linemap_location_from_macro_expansion_p (line_table, loc);
> @@ -214,13 +214,13 @@ from_macro_expansion_at (location_t loc)
>     a macro definition, false otherwise.  This differs from from_macro_expansion_at
>     in its treatment of macro arguments, for which this returns false.  */
>
> -static inline bool
> +inline bool
>  from_macro_definition_at (location_t loc)
>  {
>    return linemap_location_from_macro_definition_p (line_table, loc);
>  }
>
> -static inline location_t
> +inline location_t
>  get_pure_location (location_t loc)
>  {
>    return get_pure_location (line_table, loc);
> @@ -228,7 +228,7 @@ get_pure_location (location_t loc)
>
>  /* Get the start of any range encoded within location LOC.  */
>
> -static inline location_t
> +inline location_t
>  get_start (location_t loc)
>  {
>    return get_range_from_loc (line_table, loc).m_start;
> @@ -236,7 +236,7 @@ get_start (location_t loc)
>
>  /* Get the endpoint of any range encoded within location LOC.  */
>
> -static inline location_t
> +inline location_t
>  get_finish (location_t loc)
>  {
>    return get_range_from_loc (line_table, loc).m_finish;
> diff --git a/gcc/insn-addr.h b/gcc/insn-addr.h
> index aa5fd8ebe0d..baf4d995e22 100644
> --- a/gcc/insn-addr.h
> +++ b/gcc/insn-addr.h
> @@ -37,7 +37,7 @@ extern int insn_current_address;
>  #define INSN_ADDRESSES_SET_P() (insn_addresses_.exists ())
>  #define INSN_ADDRESSES_SIZE() (insn_addresses_.length ())
>
> -static inline void
> +inline void
>  insn_addresses_new (rtx_insn *insn, int insn_addr)
>  {
>    unsigned insn_uid = INSN_UID ((insn));
> diff --git a/gcc/internal-fn.h b/gcc/internal-fn.h
> index 6f7a262a763..2fd82a19d15 100644
> --- a/gcc/internal-fn.h
> +++ b/gcc/internal-fn.h
> @@ -105,7 +105,7 @@ extern void init_internal_fns ();
>
>  extern const char *const internal_fn_name_array[];
>
> -static inline const char *
> +inline const char *
>  internal_fn_name (enum internal_fn fn)
>  {
>    return internal_fn_name_array[(int) fn];
> @@ -117,7 +117,7 @@ extern internal_fn lookup_internal_fn (const char *);
>
>  extern const int internal_fn_flags_array[];
>
> -static inline int
> +inline int
>  internal_fn_flags (enum internal_fn fn)
>  {
>    return internal_fn_flags_array[(int) fn];
> @@ -127,7 +127,7 @@ internal_fn_flags (enum internal_fn fn)
>
>  extern GTY(()) const_tree internal_fn_fnspec_array[IFN_LAST + 1];
>
> -static inline const_tree
> +inline const_tree
>  internal_fn_fnspec (enum internal_fn fn)
>  {
>    return internal_fn_fnspec_array[(int) fn];
> diff --git a/gcc/ipa-fnsummary.h b/gcc/ipa-fnsummary.h
> index 546d15aea30..fcc01167d0d 100644
> --- a/gcc/ipa-fnsummary.h
> +++ b/gcc/ipa-fnsummary.h
> @@ -435,7 +435,7 @@ void ipa_remove_from_growth_caches (struct cgraph_edge *edge);
>
>  /* Return true if EDGE is a cross module call.  */
>
> -static inline bool
> +inline bool
>  cross_module_call_p (struct cgraph_edge *edge)
>  {
>    /* Here we do not want to walk to alias target becuase ICF may create
> diff --git a/gcc/ipa-icf-gimple.h b/gcc/ipa-icf-gimple.h
> index 09a31e8e55a..1ad6421a5ba 100644
> --- a/gcc/ipa-icf-gimple.h
> +++ b/gcc/ipa-icf-gimple.h
> @@ -39,7 +39,7 @@ along with GCC; see the file COPYING3.  If not see
>  /* Logs a MESSAGE to dump_file if exists and returns false. FUNC is name
>     of function and LINE is location in the source file.  */
>
> -static inline bool
> +inline bool
>  return_false_with_message_1 (const char *message, const char *filename,
>                              const char *func, unsigned int line)
>  {
> @@ -59,7 +59,7 @@ return_false_with_message_1 (const char *message, const char *filename,
>  /* Logs return value if RESULT is false. FUNC is name of function and LINE
>     is location in the source file.  */
>
> -static inline bool
> +inline bool
>  return_with_result (bool result, const char *filename,
>                     const char *func, unsigned int line)
>  {
> @@ -77,7 +77,7 @@ return_with_result (bool result, const char *filename,
>  /* Verbose logging function logging statements S1 and S2 of a CODE.
>     FUNC is name of function and LINE is location in the source file.  */
>
> -static inline bool
> +inline bool
>  return_different_stmts_1 (gimple *s1, gimple *s2, const char *code,
>                           const char *func, unsigned int line)
>  {
> diff --git a/gcc/ipa-inline.h b/gcc/ipa-inline.h
> index b238316f977..70de89a8b5a 100644
> --- a/gcc/ipa-inline.h
> +++ b/gcc/ipa-inline.h
> @@ -69,7 +69,7 @@ extern function_summary <tree *> *ipa_saved_clone_sources;
>
>  /* Return estimated size of the inline sequence of EDGE.  */
>
> -static inline int
> +inline int
>  estimate_edge_size (struct cgraph_edge *edge)
>  {
>    edge_growth_cache_entry *entry;
> @@ -82,7 +82,7 @@ estimate_edge_size (struct cgraph_edge *edge)
>
>  /* Return lower bound on estimated callee growth after inlining EDGE.  */
>
> -static inline int
> +inline int
>  estimate_min_edge_growth (struct cgraph_edge *edge)
>  {
>    ipa_call_summary *s = ipa_call_summaries->get (edge);
> @@ -92,7 +92,7 @@ estimate_min_edge_growth (struct cgraph_edge *edge)
>
>  /* Return estimated callee growth after inlining EDGE.  */
>
> -static inline int
> +inline int
>  estimate_edge_growth (struct cgraph_edge *edge)
>  {
>    ipa_call_summary *s = ipa_call_summaries->get (edge);
> @@ -103,7 +103,7 @@ estimate_edge_growth (struct cgraph_edge *edge)
>  /* Return estimated callee runtime increase after inlining
>     EDGE.  */
>
> -static inline sreal
> +inline sreal
>  estimate_edge_time (struct cgraph_edge *edge, sreal *nonspec_time = NULL)
>  {
>    edge_growth_cache_entry *entry;
> @@ -120,7 +120,7 @@ estimate_edge_time (struct cgraph_edge *edge, sreal *nonspec_time = NULL)
>  /* Return estimated callee runtime increase after inlining
>     EDGE.  */
>
> -static inline ipa_hints
> +inline ipa_hints
>  estimate_edge_hints (struct cgraph_edge *edge)
>  {
>    edge_growth_cache_entry *entry;
> diff --git a/gcc/ipa-modref.h b/gcc/ipa-modref.h
> index 7a2fd730db6..2a2d31e86db 100644
> --- a/gcc/ipa-modref.h
> +++ b/gcc/ipa-modref.h
> @@ -108,7 +108,7 @@ static const int implicit_retslot_eaf_flags
>     MODREF_FLAGS are flags determined by analysis of function body while
>     FLAGS are flags known otherwise (i.e. by fnspec, pure/const attributes
>     etc.)  */
> -static inline int
> +inline int
>  interposable_eaf_flags (int modref_flags, int flags)
>  {
>    /* If parameter was previously unused, we know it is only read
> diff --git a/gcc/ipa-prop.h b/gcc/ipa-prop.h
> index ea062e00a65..a40ccc0ebbe 100644
> --- a/gcc/ipa-prop.h
> +++ b/gcc/ipa-prop.h
> @@ -348,14 +348,14 @@ struct GTY (()) ipa_jump_func
>
>  /* Return the constant stored in a constant jump functin JFUNC.  */
>
> -static inline tree
> +inline tree
>  ipa_get_jf_constant (struct ipa_jump_func *jfunc)
>  {
>    gcc_checking_assert (jfunc->type == IPA_JF_CONST);
>    return jfunc->value.constant.value;
>  }
>
> -static inline struct ipa_cst_ref_desc *
> +inline struct ipa_cst_ref_desc *
>  ipa_get_jf_constant_rdesc (struct ipa_jump_func *jfunc)
>  {
>    gcc_checking_assert (jfunc->type == IPA_JF_CONST);
> @@ -364,7 +364,7 @@ ipa_get_jf_constant_rdesc (struct ipa_jump_func *jfunc)
>
>  /* Return the operand of a pass through jmp function JFUNC.  */
>
> -static inline tree
> +inline tree
>  ipa_get_jf_pass_through_operand (struct ipa_jump_func *jfunc)
>  {
>    gcc_checking_assert (jfunc->type == IPA_JF_PASS_THROUGH);
> @@ -374,7 +374,7 @@ ipa_get_jf_pass_through_operand (struct ipa_jump_func *jfunc)
>  /* Return the number of the caller's formal parameter that a pass through jump
>     function JFUNC refers to.  */
>
> -static inline int
> +inline int
>  ipa_get_jf_pass_through_formal_id (struct ipa_jump_func *jfunc)
>  {
>    gcc_checking_assert (jfunc->type == IPA_JF_PASS_THROUGH);
> @@ -383,7 +383,7 @@ ipa_get_jf_pass_through_formal_id (struct ipa_jump_func *jfunc)
>
>  /* Return operation of a pass through jump function JFUNC.  */
>
> -static inline enum tree_code
> +inline enum tree_code
>  ipa_get_jf_pass_through_operation (struct ipa_jump_func *jfunc)
>  {
>    gcc_checking_assert (jfunc->type == IPA_JF_PASS_THROUGH);
> @@ -392,7 +392,7 @@ ipa_get_jf_pass_through_operation (struct ipa_jump_func *jfunc)
>
>  /* Return the agg_preserved flag of a pass through jump function JFUNC.  */
>
> -static inline bool
> +inline bool
>  ipa_get_jf_pass_through_agg_preserved (struct ipa_jump_func *jfunc)
>  {
>    gcc_checking_assert (jfunc->type == IPA_JF_PASS_THROUGH);
> @@ -402,7 +402,7 @@ ipa_get_jf_pass_through_agg_preserved (struct ipa_jump_func *jfunc)
>  /* Return true if pass through jump function JFUNC preserves type
>     information.  */
>
> -static inline bool
> +inline bool
>  ipa_get_jf_pass_through_type_preserved (struct ipa_jump_func *jfunc)
>  {
>    gcc_checking_assert (jfunc->type == IPA_JF_PASS_THROUGH);
> @@ -411,7 +411,7 @@ ipa_get_jf_pass_through_type_preserved (struct ipa_jump_func *jfunc)
>
>  /* Return the offset of an ancestor jump function JFUNC.  */
>
> -static inline HOST_WIDE_INT
> +inline HOST_WIDE_INT
>  ipa_get_jf_ancestor_offset (struct ipa_jump_func *jfunc)
>  {
>    gcc_checking_assert (jfunc->type == IPA_JF_ANCESTOR);
> @@ -421,7 +421,7 @@ ipa_get_jf_ancestor_offset (struct ipa_jump_func *jfunc)
>  /* Return the number of the caller's formal parameter that an ancestor jump
>     function JFUNC refers to.  */
>
> -static inline int
> +inline int
>  ipa_get_jf_ancestor_formal_id (struct ipa_jump_func *jfunc)
>  {
>    gcc_checking_assert (jfunc->type == IPA_JF_ANCESTOR);
> @@ -430,7 +430,7 @@ ipa_get_jf_ancestor_formal_id (struct ipa_jump_func *jfunc)
>
>  /* Return the agg_preserved flag of an ancestor jump function JFUNC.  */
>
> -static inline bool
> +inline bool
>  ipa_get_jf_ancestor_agg_preserved (struct ipa_jump_func *jfunc)
>  {
>    gcc_checking_assert (jfunc->type == IPA_JF_ANCESTOR);
> @@ -439,7 +439,7 @@ ipa_get_jf_ancestor_agg_preserved (struct ipa_jump_func *jfunc)
>
>  /* Return true if ancestor jump function JFUNC presrves type information.  */
>
> -static inline bool
> +inline bool
>  ipa_get_jf_ancestor_type_preserved (struct ipa_jump_func *jfunc)
>  {
>    gcc_checking_assert (jfunc->type == IPA_JF_ANCESTOR);
> @@ -450,7 +450,7 @@ ipa_get_jf_ancestor_type_preserved (struct ipa_jump_func *jfunc)
>     parameter for non-NULLness unless it does not matter because the offset is
>     zero anyway.  */
>
> -static inline bool
> +inline bool
>  ipa_get_jf_ancestor_keep_null (struct ipa_jump_func *jfunc)
>  {
>    gcc_checking_assert (jfunc->type == IPA_JF_ANCESTOR);
> @@ -701,7 +701,7 @@ struct ipa_func_body_info
>
>  /* Return the number of formal parameters. */
>
> -static inline int
> +inline int
>  ipa_get_param_count (class ipa_node_params *info)
>  {
>    return vec_safe_length (info->descriptors);
> @@ -710,7 +710,7 @@ ipa_get_param_count (class ipa_node_params *info)
>  /* Return the parameter declaration in DESCRIPTORS at index I and assert it is
>     indeed a PARM_DECL.  */
>
> -static inline tree
> +inline tree
>  ipa_get_param (const vec<ipa_param_descriptor, va_gc> &descriptors, int i)
>  {
>    tree t = descriptors[i].decl_or_type;
> @@ -723,7 +723,7 @@ ipa_get_param (const vec<ipa_param_descriptor, va_gc> &descriptors, int i)
>     using ipa_initialize_node_params.  This function should not be called in
>     WPA.  */
>
> -static inline tree
> +inline tree
>  ipa_get_param (class ipa_node_params *info, int i)
>  {
>    gcc_checking_assert (info->descriptors);
> @@ -733,7 +733,7 @@ ipa_get_param (class ipa_node_params *info, int i)
>  /* Return the type of Ith formal parameter of the function corresponding
>     to INFO if it is known or NULL if not.  */
>
> -static inline tree
> +inline tree
>  ipa_get_type (class ipa_node_params *info, int i)
>  {
>    if (vec_safe_length (info->descriptors) <= (unsigned) i)
> @@ -750,7 +750,7 @@ ipa_get_type (class ipa_node_params *info, int i)
>  /* Return the move cost of Ith formal parameter of the function corresponding
>     to INFO.  */
>
> -static inline int
> +inline int
>  ipa_get_param_move_cost (class ipa_node_params *info, int i)
>  {
>    gcc_checking_assert (info->descriptors);
> @@ -760,7 +760,7 @@ ipa_get_param_move_cost (class ipa_node_params *info, int i)
>  /* Set the used flag corresponding to the Ith formal parameter of the function
>     associated with INFO to VAL.  */
>
> -static inline void
> +inline void
>  ipa_set_param_used (class ipa_node_params *info, int i, bool val)
>  {
>    gcc_checking_assert (info->descriptors);
> @@ -770,7 +770,7 @@ ipa_set_param_used (class ipa_node_params *info, int i, bool val)
>  /* Set the used_by_ipa_predicates flag corresponding to the Ith formal
>     parameter of the function associated with INFO to VAL.  */
>
> -static inline void
> +inline void
>  ipa_set_param_used_by_ipa_predicates (class ipa_node_params *info, int i, bool val)
>  {
>    gcc_checking_assert (info->descriptors);
> @@ -780,7 +780,7 @@ ipa_set_param_used_by_ipa_predicates (class ipa_node_params *info, int i, bool v
>  /* Set the used_by_indirect_call flag corresponding to the Ith formal
>     parameter of the function associated with INFO to VAL.  */
>
> -static inline void
> +inline void
>  ipa_set_param_used_by_indirect_call (class ipa_node_params *info, int i, bool val)
>  {
>    gcc_checking_assert (info->descriptors);
> @@ -790,7 +790,7 @@ ipa_set_param_used_by_indirect_call (class ipa_node_params *info, int i, bool va
>  /* Set the .used_by_polymorphic_call flag corresponding to the Ith formal
>     parameter of the function associated with INFO to VAL.  */
>
> -static inline void
> +inline void
>  ipa_set_param_used_by_polymorphic_call (class ipa_node_params *info, int i, bool val)
>  {
>    gcc_checking_assert (info->descriptors);
> @@ -800,7 +800,7 @@ ipa_set_param_used_by_polymorphic_call (class ipa_node_params *info, int i, bool
>  /* Return how many uses described by ipa-prop a parameter has or
>     IPA_UNDESCRIBED_USE if there is a use that is not described by these
>     structures.  */
> -static inline int
> +inline int
>  ipa_get_controlled_uses (class ipa_node_params *info, int i)
>  {
>    /* FIXME: introducing speculation causes out of bounds access here.  */
> @@ -811,7 +811,7 @@ ipa_get_controlled_uses (class ipa_node_params *info, int i)
>
>  /* Set the controlled counter of a given parameter.  */
>
> -static inline void
> +inline void
>  ipa_set_controlled_uses (class ipa_node_params *info, int i, int val)
>  {
>    gcc_checking_assert (info->descriptors);
> @@ -820,7 +820,7 @@ ipa_set_controlled_uses (class ipa_node_params *info, int i, int val)
>
>  /* Assuming a parameter does not have IPA_UNDESCRIBED_USE controlled uses,
>     return flag which indicates it has been dereferenced but only in a load.  */
> -static inline int
> +inline int
>  ipa_get_param_load_dereferenced (class ipa_node_params *info, int i)
>  {
>    gcc_assert (ipa_get_controlled_uses (info, i) != IPA_UNDESCRIBED_USE);
> @@ -829,7 +829,7 @@ ipa_get_param_load_dereferenced (class ipa_node_params *info, int i)
>
>  /* Set the load_dereferenced flag of a given parameter.  */
>
> -static inline void
> +inline void
>  ipa_set_param_load_dereferenced (class ipa_node_params *info, int i, bool val)
>  {
>    gcc_checking_assert (info->descriptors);
> @@ -839,7 +839,7 @@ ipa_set_param_load_dereferenced (class ipa_node_params *info, int i, bool val)
>  /* Return the used flag corresponding to the Ith formal parameter of the
>     function associated with INFO.  */
>
> -static inline bool
> +inline bool
>  ipa_is_param_used (class ipa_node_params *info, int i)
>  {
>    gcc_checking_assert (info->descriptors);
> @@ -849,7 +849,7 @@ ipa_is_param_used (class ipa_node_params *info, int i)
>  /* Return the used_by_ipa_predicates flag corresponding to the Ith formal
>     parameter of the function associated with INFO.  */
>
> -static inline bool
> +inline bool
>  ipa_is_param_used_by_ipa_predicates (class ipa_node_params *info, int i)
>  {
>    gcc_checking_assert (info->descriptors);
> @@ -859,7 +859,7 @@ ipa_is_param_used_by_ipa_predicates (class ipa_node_params *info, int i)
>  /* Return the used_by_indirect_call flag corresponding to the Ith formal
>     parameter of the function associated with INFO.  */
>
> -static inline bool
> +inline bool
>  ipa_is_param_used_by_indirect_call (class ipa_node_params *info, int i)
>  {
>    gcc_checking_assert (info->descriptors);
> @@ -869,7 +869,7 @@ ipa_is_param_used_by_indirect_call (class ipa_node_params *info, int i)
>  /* Return the used_by_polymorphic_call flag corresponding to the Ith formal
>     parameter of the function associated with INFO.  */
>
> -static inline bool
> +inline bool
>  ipa_is_param_used_by_polymorphic_call (class ipa_node_params *info, int i)
>  {
>    gcc_checking_assert (info->descriptors);
> @@ -944,7 +944,7 @@ class GTY((for_user)) ipa_edge_args
>
>  /* Return the number of actual arguments. */
>
> -static inline int
> +inline int
>  ipa_get_cs_argument_count (class ipa_edge_args *args)
>  {
>    return vec_safe_length (args->jump_functions);
> @@ -954,7 +954,7 @@ ipa_get_cs_argument_count (class ipa_edge_args *args)
>     there is no setter function as jump functions are all set up in
>     ipa_compute_jump_functions. */
>
> -static inline struct ipa_jump_func *
> +inline struct ipa_jump_func *
>  ipa_get_ith_jump_func (class ipa_edge_args *args, int i)
>  {
>    return &(*args->jump_functions)[i];
> @@ -962,7 +962,7 @@ ipa_get_ith_jump_func (class ipa_edge_args *args, int i)
>
>  /* Returns a pointer to the polymorphic call context for the ith argument.
>     NULL if contexts are not computed.  */
> -static inline class ipa_polymorphic_call_context *
> +inline class ipa_polymorphic_call_context *
>  ipa_get_ith_polymorhic_call_context (class ipa_edge_args *args, int i)
>  {
>    if (!args->polymorphic_call_contexts)
> @@ -1056,7 +1056,7 @@ int count_formal_params (tree fndecl);
>  /* This function ensures the array of node param infos is big enough to
>     accommodate a structure for all nodes and reallocates it if not.  */
>
> -static inline void
> +inline void
>  ipa_check_create_node_params (void)
>  {
>    if (!ipa_node_params_sum)
> @@ -1069,13 +1069,13 @@ ipa_check_create_node_params (void)
>     of this function is that debug dumping function can check info availability
>     without causing allocations.  */
>
> -static inline bool
> +inline bool
>  ipa_edge_args_info_available_for_edge_p (struct cgraph_edge *edge)
>  {
>    return ipa_edge_args_sum->exists (edge);
>  }
>
> -static inline ipcp_transformation *
> +inline ipcp_transformation *
>  ipcp_get_transformation_summary (cgraph_node *node)
>  {
>    if (ipcp_transformation_sum == NULL)
> diff --git a/gcc/ira-int.h b/gcc/ira-int.h
> index 95ad76e96ce..e2de47213b4 100644
> --- a/gcc/ira-int.h
> +++ b/gcc/ira-int.h
> @@ -504,7 +504,7 @@ struct ira_emit_data
>  extern ira_emit_data_t ira_allocno_emit_data;
>
>  /* Abbreviation for frequent emit data access.  */
> -static inline rtx
> +inline rtx
>  allocno_emit_reg (ira_allocno_t a)
>  {
>    return ALLOCNO_EMIT_DATA (a)->reg;
> @@ -734,7 +734,7 @@ struct minmax_set_iterator {
>
>  /* Initialize the iterator I for bit vector VEC containing minimal and
>     maximal values MIN and MAX.  */
> -static inline void
> +inline void
>  minmax_set_iter_init (minmax_set_iterator *i, IRA_INT_TYPE *vec, int min,
>                       int max)
>  {
> @@ -749,7 +749,7 @@ minmax_set_iter_init (minmax_set_iterator *i, IRA_INT_TYPE *vec, int min,
>  /* Return TRUE if we have more allocnos to visit, in which case *N is
>     set to the number of the element to be visited.  Otherwise, return
>     FALSE.  */
> -static inline bool
> +inline bool
>  minmax_set_iter_cond (minmax_set_iterator *i, int *n)
>  {
>    /* Skip words that are zeros.  */
> @@ -774,7 +774,7 @@ minmax_set_iter_cond (minmax_set_iterator *i, int *n)
>  }
>
>  /* Advance to the next element in the set.  */
> -static inline void
> +inline void
>  minmax_set_iter_next (minmax_set_iterator *i)
>  {
>    i->word >>= 1;
> @@ -1084,7 +1084,7 @@ extern void ira_emit (bool);
>
>
>  /* Return true if equivalence of pseudo REGNO is not a lvalue.  */
> -static inline bool
> +inline bool
>  ira_equiv_no_lvalue_p (int regno)
>  {
>    if (regno >= ira_reg_equiv_len)
> @@ -1098,7 +1098,7 @@ ira_equiv_no_lvalue_p (int regno)
>
>
>  /* Initialize register costs for MODE if necessary.  */
> -static inline void
> +inline void
>  ira_init_register_move_cost_if_necessary (machine_mode mode)
>  {
>    if (ira_register_move_cost[mode] == NULL)
> @@ -1114,7 +1114,7 @@ struct ira_allocno_iterator {
>  };
>
>  /* Initialize the iterator I.  */
> -static inline void
> +inline void
>  ira_allocno_iter_init (ira_allocno_iterator *i)
>  {
>    i->n = 0;
> @@ -1122,7 +1122,7 @@ ira_allocno_iter_init (ira_allocno_iterator *i)
>
>  /* Return TRUE if we have more allocnos to visit, in which case *A is
>     set to the allocno to be visited.  Otherwise, return FALSE.  */
> -static inline bool
> +inline bool
>  ira_allocno_iter_cond (ira_allocno_iterator *i, ira_allocno_t *a)
>  {
>    int n;
> @@ -1151,7 +1151,7 @@ struct ira_object_iterator {
>  };
>
>  /* Initialize the iterator I.  */
> -static inline void
> +inline void
>  ira_object_iter_init (ira_object_iterator *i)
>  {
>    i->n = 0;
> @@ -1159,7 +1159,7 @@ ira_object_iter_init (ira_object_iterator *i)
>
>  /* Return TRUE if we have more objects to visit, in which case *OBJ is
>     set to the object to be visited.  Otherwise, return FALSE.  */
> -static inline bool
> +inline bool
>  ira_object_iter_cond (ira_object_iterator *i, ira_object_t *obj)
>  {
>    int n;
> @@ -1188,7 +1188,7 @@ struct ira_allocno_object_iterator {
>  };
>
>  /* Initialize the iterator I.  */
> -static inline void
> +inline void
>  ira_allocno_object_iter_init (ira_allocno_object_iterator *i)
>  {
>    i->n = 0;
> @@ -1197,7 +1197,7 @@ ira_allocno_object_iter_init (ira_allocno_object_iterator *i)
>  /* Return TRUE if we have more objects to visit in allocno A, in which
>     case *O is set to the object to be visited.  Otherwise, return
>     FALSE.  */
> -static inline bool
> +inline bool
>  ira_allocno_object_iter_cond (ira_allocno_object_iterator *i, ira_allocno_t a,
>                               ira_object_t *o)
>  {
> @@ -1225,7 +1225,7 @@ struct ira_pref_iterator {
>  };
>
>  /* Initialize the iterator I.  */
> -static inline void
> +inline void
>  ira_pref_iter_init (ira_pref_iterator *i)
>  {
>    i->n = 0;
> @@ -1233,7 +1233,7 @@ ira_pref_iter_init (ira_pref_iterator *i)
>
>  /* Return TRUE if we have more prefs to visit, in which case *PREF is
>     set to the pref to be visited.  Otherwise, return FALSE.  */
> -static inline bool
> +inline bool
>  ira_pref_iter_cond (ira_pref_iterator *i, ira_pref_t *pref)
>  {
>    int n;
> @@ -1263,7 +1263,7 @@ struct ira_copy_iterator {
>  };
>
>  /* Initialize the iterator I.  */
> -static inline void
> +inline void
>  ira_copy_iter_init (ira_copy_iterator *i)
>  {
>    i->n = 0;
> @@ -1271,7 +1271,7 @@ ira_copy_iter_init (ira_copy_iterator *i)
>
>  /* Return TRUE if we have more copies to visit, in which case *CP is
>     set to the copy to be visited.  Otherwise, return FALSE.  */
> -static inline bool
> +inline bool
>  ira_copy_iter_cond (ira_copy_iterator *i, ira_copy_t *cp)
>  {
>    int n;
> @@ -1324,7 +1324,7 @@ struct ira_object_conflict_iterator {
>  };
>
>  /* Initialize the iterator I with ALLOCNO conflicts.  */
> -static inline void
> +inline void
>  ira_object_conflict_iter_init (ira_object_conflict_iterator *i,
>                                ira_object_t obj)
>  {
> @@ -1350,7 +1350,7 @@ ira_object_conflict_iter_init (ira_object_conflict_iterator *i,
>  /* Return TRUE if we have more conflicting allocnos to visit, in which
>     case *A is set to the allocno to be visited.  Otherwise, return
>     FALSE.  */
> -static inline bool
> +inline bool
>  ira_object_conflict_iter_cond (ira_object_conflict_iterator *i,
>                                ira_object_t *pobj)
>  {
> @@ -1405,7 +1405,7 @@ ira_object_conflict_iter_cond (ira_object_conflict_iterator *i,
>  /* The function returns TRUE if at least one hard register from ones
>     starting with HARD_REGNO and containing value of MODE are in set
>     HARD_REGSET.  */
> -static inline bool
> +inline bool
>  ira_hard_reg_set_intersection_p (int hard_regno, machine_mode mode,
>                                  HARD_REG_SET hard_regset)
>  {
> @@ -1419,7 +1419,7 @@ ira_hard_reg_set_intersection_p (int hard_regno, machine_mode mode,
>  }
>
>  /* Return number of hard registers in hard register SET.  */
> -static inline int
> +inline int
>  hard_reg_set_size (HARD_REG_SET set)
>  {
>    int i, size;
> @@ -1433,7 +1433,7 @@ hard_reg_set_size (HARD_REG_SET set)
>  /* The function returns TRUE if hard registers starting with
>     HARD_REGNO and containing value of MODE are fully in set
>     HARD_REGSET.  */
> -static inline bool
> +inline bool
>  ira_hard_reg_in_set_p (int hard_regno, machine_mode mode,
>                        HARD_REG_SET hard_regset)
>  {
> @@ -1454,7 +1454,7 @@ ira_hard_reg_in_set_p (int hard_regno, machine_mode mode,
>
>  /* Allocate cost vector *VEC for hard registers of ACLASS and
>     initialize the elements by VAL if it is necessary */
> -static inline void
> +inline void
>  ira_allocate_and_set_costs (int **vec, reg_class_t aclass, int val)
>  {
>    int i, *reg_costs;
> @@ -1470,7 +1470,7 @@ ira_allocate_and_set_costs (int **vec, reg_class_t aclass, int val)
>
>  /* Allocate cost vector *VEC for hard registers of ACLASS and copy
>     values of vector SRC into the vector if it is necessary */
> -static inline void
> +inline void
>  ira_allocate_and_copy_costs (int **vec, enum reg_class aclass, int *src)
>  {
>    int len;
> @@ -1484,7 +1484,7 @@ ira_allocate_and_copy_costs (int **vec, enum reg_class aclass, int *src)
>
>  /* Allocate cost vector *VEC for hard registers of ACLASS and add
>     values of vector SRC into the vector if it is necessary */
> -static inline void
> +inline void
>  ira_allocate_and_accumulate_costs (int **vec, enum reg_class aclass, int *src)
>  {
>    int i, len;
> @@ -1504,7 +1504,7 @@ ira_allocate_and_accumulate_costs (int **vec, enum reg_class aclass, int *src)
>  /* Allocate cost vector *VEC for hard registers of ACLASS and copy
>     values of vector SRC into the vector or initialize it by VAL (if
>     SRC is null).  */
> -static inline void
> +inline void
>  ira_allocate_and_set_or_copy_costs (int **vec, enum reg_class aclass,
>                                     int val, int *src)
>  {
> diff --git a/gcc/ira.h b/gcc/ira.h
> index 58b50dbe8a2..ddd86ef345a 100644
> --- a/gcc/ira.h
> +++ b/gcc/ira.h
> @@ -232,7 +232,7 @@ extern rtx non_conflicting_reg_copy_p (rtx_insn *);
>     non-local goto code using frame-pointer to address saved stack
>     pointer value after restoring old frame pointer value.  The
>     function returns TRUE if REGNO is such a static chain pseudo.  */
> -static inline bool
> +inline bool
>  non_spilled_static_chain_regno_p (int regno)
>  {
>    return (cfun->static_chain_decl && crtl->has_nonlocal_goto
> diff --git a/gcc/jit/jit-dejagnu.h b/gcc/jit/jit-dejagnu.h
> index 86f6ad3e14d..bdf57857537 100644
> --- a/gcc/jit/jit-dejagnu.h
> +++ b/gcc/jit/jit-dejagnu.h
> @@ -66,7 +66,7 @@ dg_wait (void)
>  }
>  #endif
>
> -static inline void
> +inline void
>  pass (const char* fmt, ...)
>  {
>    va_list ap;
> @@ -81,7 +81,7 @@ pass (const char* fmt, ...)
>  #endif
>  }
>
> -static inline void
> +inline void
>  xpass (const char* fmt, ...)
>  {
>    va_list ap;
> @@ -96,7 +96,7 @@ xpass (const char* fmt, ...)
>  #endif
>  }
>
> -static inline void
> +inline void
>  fail (const char* fmt, ...)
>  {
>    va_list ap;
> @@ -111,7 +111,7 @@ fail (const char* fmt, ...)
>  #endif
>  }
>
> -static inline void
> +inline void
>  xfail (const char* fmt, ...)
>  {
>    va_list ap;
> @@ -126,7 +126,7 @@ xfail (const char* fmt, ...)
>  #endif
>  }
>
> -static inline void
> +inline void
>  untested (const char* fmt, ...)
>  {
>    va_list ap;
> @@ -141,7 +141,7 @@ untested (const char* fmt, ...)
>  #endif
>  }
>
> -static inline void
> +inline void
>  unresolved (const char* fmt, ...)
>  {
>    va_list ap;
> @@ -156,7 +156,7 @@ unresolved (const char* fmt, ...)
>  #endif
>  }
>
> -static inline void
> +inline void
>  note (const char* fmt, ...)
>  {
>    va_list ap;
> @@ -170,7 +170,7 @@ note (const char* fmt, ...)
>  #endif
>  }
>
> -static inline void
> +inline void
>  totals (void)
>  {
>    printf ("\nTotals:\n");
> diff --git a/gcc/jit/jit-recording.h b/gcc/jit/jit-recording.h
> index 2dc9448d7c9..400cf345600 100644
> --- a/gcc/jit/jit-recording.h
> +++ b/gcc/jit/jit-recording.h
> @@ -2556,7 +2556,7 @@ types_kinda_same_internal (recording::type *a,
>
>     For array and vector types the number of element also
>     has to match, aswell as the element types themself.  */
> -static inline bool
> +inline bool
>  types_kinda_same (recording::type *a, recording::type *b)
>  {
>    /* Handle trivial case here, to allow for inlining.  */
> diff --git a/gcc/lra-int.h b/gcc/lra-int.h
> index 2f1450b345c..73f8eb004b0 100644
> --- a/gcc/lra-int.h
> +++ b/gcc/lra-int.h
> @@ -419,7 +419,7 @@ extern void lra_eliminate_reg_if_possible (rtx *);
>  /* Return the hard register which given pseudo REGNO assigned to.
>     Negative value means that the register got memory or we don't know
>     allocation yet.  */
> -static inline int
> +inline int
>  lra_get_regno_hard_regno (int regno)
>  {
>    resize_reg_info ();
> @@ -443,7 +443,7 @@ lra_change_class (int regno, enum reg_class new_class,
>
>  /* Update insn operands which are duplication of NOP operand.  The
>     insn is represented by its LRA internal representation ID.  */
> -static inline void
> +inline void
>  lra_update_dup (lra_insn_recog_data_t id, int nop)
>  {
>    int i;
> @@ -458,7 +458,7 @@ lra_update_dup (lra_insn_recog_data_t id, int nop)
>     operands processing.         Generally speaking, we could do this probably
>     simultaneously with operands processing because a common practice
>     is to enumerate the operators after their operands. */
> -static inline void
> +inline void
>  lra_update_operator_dups (lra_insn_recog_data_t id)
>  {
>    int i;
> @@ -474,7 +474,7 @@ lra_update_operator_dups (lra_insn_recog_data_t id)
>  }
>
>  /* Return info about INSN.  Set up the info if it is not done yet.  */
> -static inline lra_insn_recog_data_t
> +inline lra_insn_recog_data_t
>  lra_get_insn_recog_data (rtx_insn *insn)
>  {
>    lra_insn_recog_data_t data;
> @@ -494,7 +494,7 @@ lra_get_insn_recog_data (rtx_insn *insn)
>  }
>
>  /* Update offset from pseudos with VAL by INCR.  */
> -static inline void
> +inline void
>  lra_update_reg_val_offset (int val, poly_int64 incr)
>  {
>    int i;
> @@ -507,7 +507,7 @@ lra_update_reg_val_offset (int val, poly_int64 incr)
>  }
>
>  /* Return true if register content is equal to VAL with OFFSET.  */
> -static inline bool
> +inline bool
>  lra_reg_val_equal_p (int regno, int val, poly_int64 offset)
>  {
>    if (lra_reg_info[regno].val == val
> @@ -518,7 +518,7 @@ lra_reg_val_equal_p (int regno, int val, poly_int64 offset)
>  }
>
>  /* Assign value of register FROM to TO.  */
> -static inline void
> +inline void
>  lra_assign_reg_val (int from, int to)
>  {
>    lra_reg_info[to].val = lra_reg_info[from].val;
> diff --git a/gcc/lra.h b/gcc/lra.h
> index ec25947d5fa..85dbf927414 100644
> --- a/gcc/lra.h
> +++ b/gcc/lra.h
> @@ -27,7 +27,7 @@ extern bool lra_simple_p;
>  /* Return the allocno reg class of REGNO.  If it is a reload pseudo,
>     the pseudo should finally get hard register of the allocno
>     class.  */
> -static inline enum reg_class
> +inline enum reg_class
>  lra_get_allocno_class (int regno)
>  {
>    resize_reg_info ();
> diff --git a/gcc/lto-streamer.h b/gcc/lto-streamer.h
> index d544dabe184..fc7133d07ba 100644
> --- a/gcc/lto-streamer.h
> +++ b/gcc/lto-streamer.h
> @@ -969,7 +969,7 @@ extern const char *lto_section_name[];
>  extern vec<lto_out_decl_state_ptr> lto_function_decl_states;
>
>  /* Return true if LTO tag TAG corresponds to a tree code.  */
> -static inline bool
> +inline bool
>  lto_tag_is_tree_code_p (enum LTO_tags tag)
>  {
>    return tag > LTO_first_tree_tag && (unsigned) tag <= MAX_TREE_CODES;
> @@ -977,7 +977,7 @@ lto_tag_is_tree_code_p (enum LTO_tags tag)
>
>
>  /* Return true if LTO tag TAG corresponds to a gimple code.  */
> -static inline bool
> +inline bool
>  lto_tag_is_gimple_code_p (enum LTO_tags tag)
>  {
>    return (unsigned) tag >= LTO_first_gimple_tag
> @@ -988,7 +988,7 @@ lto_tag_is_gimple_code_p (enum LTO_tags tag)
>
>  /* Return the LTO tag corresponding to gimple code CODE.  See enum
>     LTO_tags for details on the conversion.  */
> -static inline enum LTO_tags
> +inline enum LTO_tags
>  lto_gimple_code_to_tag (enum gimple_code code)
>  {
>    return (enum LTO_tags) ((unsigned) code + LTO_first_gimple_tag);
> @@ -997,7 +997,7 @@ lto_gimple_code_to_tag (enum gimple_code code)
>
>  /* Return the GIMPLE code corresponding to TAG.  See enum LTO_tags for
>     details on the conversion.  */
> -static inline enum gimple_code
> +inline enum gimple_code
>  lto_tag_to_gimple_code (enum LTO_tags tag)
>  {
>    gcc_assert (lto_tag_is_gimple_code_p (tag));
> @@ -1007,7 +1007,7 @@ lto_tag_to_gimple_code (enum LTO_tags tag)
>
>  /* Return the LTO tag corresponding to tree code CODE.  See enum
>     LTO_tags for details on the conversion.  */
> -static inline enum LTO_tags
> +inline enum LTO_tags
>  lto_tree_code_to_tag (enum tree_code code)
>  {
>    return (enum LTO_tags) ((unsigned) code + LTO_first_tree_tag);
> @@ -1016,7 +1016,7 @@ lto_tree_code_to_tag (enum tree_code code)
>
>  /* Return the tree code corresponding to TAG.  See enum LTO_tags for
>     details on the conversion.  */
> -static inline enum tree_code
> +inline enum tree_code
>  lto_tag_to_tree_code (enum LTO_tags tag)
>  {
>    gcc_assert (lto_tag_is_tree_code_p (tag));
> @@ -1024,7 +1024,7 @@ lto_tag_to_tree_code (enum LTO_tags tag)
>  }
>
>  /* Check that tag ACTUAL == EXPECTED.  */
> -static inline void
> +inline void
>  lto_tag_check (enum LTO_tags actual, enum LTO_tags expected)
>  {
>    if (actual != expected)
> @@ -1033,7 +1033,7 @@ lto_tag_check (enum LTO_tags actual, enum LTO_tags expected)
>  }
>
>  /* Check that tag ACTUAL is in the range [TAG1, TAG2].  */
> -static inline void
> +inline void
>  lto_tag_check_range (enum LTO_tags actual, enum LTO_tags tag1,
>                      enum LTO_tags tag2)
>  {
> @@ -1046,7 +1046,7 @@ lto_tag_check_range (enum LTO_tags actual, enum LTO_tags tag1,
>  }
>
>  /* Initialize an lto_out_decl_buffer ENCODER.  */
> -static inline void
> +inline void
>  lto_init_tree_ref_encoder (struct lto_tree_ref_encoder *encoder)
>  {
>    encoder->tree_hash_table = new hash_map<tree, unsigned> (251);
> @@ -1056,7 +1056,7 @@ lto_init_tree_ref_encoder (struct lto_tree_ref_encoder *encoder)
>
>  /* Destroy an lto_tree_ref_encoder ENCODER by freeing its contents.  The
>     memory used by ENCODER is not freed by this function.  */
> -static inline void
> +inline void
>  lto_destroy_tree_ref_encoder (struct lto_tree_ref_encoder *encoder)
>  {
>    /* Hash table may be delete already.  */
> @@ -1066,14 +1066,14 @@ lto_destroy_tree_ref_encoder (struct lto_tree_ref_encoder *encoder)
>  }
>
>  /* Return the number of trees encoded in ENCODER. */
> -static inline unsigned int
> +inline unsigned int
>  lto_tree_ref_encoder_size (struct lto_tree_ref_encoder *encoder)
>  {
>    return encoder->trees.length ();
>  }
>
>  /* Return the IDX-th tree in ENCODER. */
> -static inline tree
> +inline tree
>  lto_tree_ref_encoder_get_tree (struct lto_tree_ref_encoder *encoder,
>                                unsigned int idx)
>  {
> @@ -1081,7 +1081,7 @@ lto_tree_ref_encoder_get_tree (struct lto_tree_ref_encoder *encoder,
>  }
>
>  /* Return number of encoded nodes in ENCODER.  */
> -static inline int
> +inline int
>  lto_symtab_encoder_size (lto_symtab_encoder_t encoder)
>  {
>    return encoder->nodes.length ();
> @@ -1093,7 +1093,7 @@ lto_symtab_encoder_size (lto_symtab_encoder_t encoder)
>  /* Look up NODE in encoder.  Return NODE's reference if it has been encoded
>     or LCC_NOT_FOUND if it is not there.  */
>
> -static inline int
> +inline int
>  lto_symtab_encoder_lookup (lto_symtab_encoder_t encoder,
>                            symtab_node *node)
>  {
> @@ -1102,35 +1102,35 @@ lto_symtab_encoder_lookup (lto_symtab_encoder_t encoder,
>  }
>
>  /* Return true if iterator LSE points to nothing.  */
> -static inline bool
> +inline bool
>  lsei_end_p (lto_symtab_encoder_iterator lsei)
>  {
>    return lsei.index >= (unsigned)lto_symtab_encoder_size (lsei.encoder);
>  }
>
>  /* Advance iterator LSE.  */
> -static inline void
> +inline void
>  lsei_next (lto_symtab_encoder_iterator *lsei)
>  {
>    lsei->index++;
>  }
>
>  /* Return the node pointed to by LSI.  */
> -static inline symtab_node *
> +inline symtab_node *
>  lsei_node (lto_symtab_encoder_iterator lsei)
>  {
>    return lsei.encoder->nodes[lsei.index].node;
>  }
>
>  /* Return the node pointed to by LSI.  */
> -static inline struct cgraph_node *
> +inline struct cgraph_node *
>  lsei_cgraph_node (lto_symtab_encoder_iterator lsei)
>  {
>    return dyn_cast<cgraph_node *> (lsei.encoder->nodes[lsei.index].node);
>  }
>
>  /* Return the node pointed to by LSI.  */
> -static inline varpool_node *
> +inline varpool_node *
>  lsei_varpool_node (lto_symtab_encoder_iterator lsei)
>  {
>    return dyn_cast<varpool_node *> (lsei.encoder->nodes[lsei.index].node);
> @@ -1138,7 +1138,7 @@ lsei_varpool_node (lto_symtab_encoder_iterator lsei)
>
>  /* Return the cgraph node corresponding to REF using ENCODER.  */
>
> -static inline symtab_node *
> +inline symtab_node *
>  lto_symtab_encoder_deref (lto_symtab_encoder_t encoder, int ref)
>  {
>    if (ref == LCC_NOT_FOUND)
> @@ -1148,7 +1148,7 @@ lto_symtab_encoder_deref (lto_symtab_encoder_t encoder, int ref)
>  }
>
>  /* Return an iterator to the first node in LSI.  */
> -static inline lto_symtab_encoder_iterator
> +inline lto_symtab_encoder_iterator
>  lsei_start (lto_symtab_encoder_t encoder)
>  {
>    lto_symtab_encoder_iterator lsei;
> @@ -1159,7 +1159,7 @@ lsei_start (lto_symtab_encoder_t encoder)
>  }
>
>  /* Advance iterator LSE.  */
> -static inline void
> +inline void
>  lsei_next_in_partition (lto_symtab_encoder_iterator *lsei)
>  {
>    lsei_next (lsei);
> @@ -1169,7 +1169,7 @@ lsei_next_in_partition (lto_symtab_encoder_iterator *lsei)
>  }
>
>  /* Return an iterator to the first node in LSI.  */
> -static inline lto_symtab_encoder_iterator
> +inline lto_symtab_encoder_iterator
>  lsei_start_in_partition (lto_symtab_encoder_t encoder)
>  {
>    lto_symtab_encoder_iterator lsei = lsei_start (encoder);
> @@ -1183,7 +1183,7 @@ lsei_start_in_partition (lto_symtab_encoder_t encoder)
>  }
>
>  /* Advance iterator LSE.  */
> -static inline void
> +inline void
>  lsei_next_function_in_partition (lto_symtab_encoder_iterator *lsei)
>  {
>    lsei_next (lsei);
> @@ -1194,7 +1194,7 @@ lsei_next_function_in_partition (lto_symtab_encoder_iterator *lsei)
>  }
>
>  /* Return an iterator to the first node in LSI.  */
> -static inline lto_symtab_encoder_iterator
> +inline lto_symtab_encoder_iterator
>  lsei_start_function_in_partition (lto_symtab_encoder_t encoder)
>  {
>    lto_symtab_encoder_iterator lsei = lsei_start (encoder);
> @@ -1209,7 +1209,7 @@ lsei_start_function_in_partition (lto_symtab_encoder_t encoder)
>  }
>
>  /* Advance iterator LSE.  */
> -static inline void
> +inline void
>  lsei_next_variable_in_partition (lto_symtab_encoder_iterator *lsei)
>  {
>    lsei_next (lsei);
> @@ -1220,7 +1220,7 @@ lsei_next_variable_in_partition (lto_symtab_encoder_iterator *lsei)
>  }
>
>  /* Return an iterator to the first node in LSI.  */
> -static inline lto_symtab_encoder_iterator
> +inline lto_symtab_encoder_iterator
>  lsei_start_variable_in_partition (lto_symtab_encoder_t encoder)
>  {
>    lto_symtab_encoder_iterator lsei = lsei_start (encoder);
> diff --git a/gcc/memmodel.h b/gcc/memmodel.h
> index 308beca18ba..7dfad2fb6b1 100644
> --- a/gcc/memmodel.h
> +++ b/gcc/memmodel.h
> @@ -51,63 +51,63 @@ enum memmodel
>  };
>
>  /* Return the memory model from a host integer.  */
> -static inline enum memmodel
> +inline enum memmodel
>  memmodel_from_int (unsigned HOST_WIDE_INT val)
>  {
>    return (enum memmodel) (val & MEMMODEL_MASK);
>  }
>
>  /* Return the base memory model from a host integer.  */
> -static inline enum memmodel
> +inline enum memmodel
>  memmodel_base (unsigned HOST_WIDE_INT val)
>  {
>    return (enum memmodel) (val & MEMMODEL_BASE_MASK);
>  }
>
>  /* Return TRUE if the memory model is RELAXED.  */
> -static inline bool
> +inline bool
>  is_mm_relaxed (enum memmodel model)
>  {
>    return (model & MEMMODEL_BASE_MASK) == MEMMODEL_RELAXED;
>  }
>
>  /* Return TRUE if the memory model is CONSUME.  */
> -static inline bool
> +inline bool
>  is_mm_consume (enum memmodel model)
>  {
>    return (model & MEMMODEL_BASE_MASK) == MEMMODEL_CONSUME;
>  }
>
>  /* Return TRUE if the memory model is ACQUIRE.  */
> -static inline bool
> +inline bool
>  is_mm_acquire (enum memmodel model)
>  {
>    return (model & MEMMODEL_BASE_MASK) == MEMMODEL_ACQUIRE;
>  }
>
>  /* Return TRUE if the memory model is RELEASE.  */
> -static inline bool
> +inline bool
>  is_mm_release (enum memmodel model)
>  {
>    return (model & MEMMODEL_BASE_MASK) == MEMMODEL_RELEASE;
>  }
>
>  /* Return TRUE if the memory model is ACQ_REL.  */
> -static inline bool
> +inline bool
>  is_mm_acq_rel (enum memmodel model)
>  {
>    return (model & MEMMODEL_BASE_MASK) == MEMMODEL_ACQ_REL;
>  }
>
>  /* Return TRUE if the memory model is SEQ_CST.  */
> -static inline bool
> +inline bool
>  is_mm_seq_cst (enum memmodel model)
>  {
>    return (model & MEMMODEL_BASE_MASK) == MEMMODEL_SEQ_CST;
>  }
>
>  /* Return TRUE if the memory model is a SYNC variant.  */
> -static inline bool
> +inline bool
>  is_mm_sync (enum memmodel model)
>  {
>    return (model & MEMMODEL_SYNC);
> diff --git a/gcc/objc/objc-act.h b/gcc/objc/objc-act.h
> index 775f74adfc9..e21ab52d8ca 100644
> --- a/gcc/objc/objc-act.h
> +++ b/gcc/objc/objc-act.h
> @@ -745,7 +745,7 @@ size_t objc_common_tree_size (enum tree_code code);
>  #define objc_is_class_id(TYPE) (OBJC_TYPE_NAME (TYPE) == objc_class_id)
>
>  /* Retrieve category interface CAT_NAME (if any) associated with CLASS.  */
> -static inline tree
> +inline tree
>  lookup_category (tree klass, tree cat_name)
>  {
>    tree category = CLASS_CATEGORY_LIST (klass);
> @@ -756,7 +756,7 @@ lookup_category (tree klass, tree cat_name)
>  }
>
>  /* Count only the fields occurring in T.  */
> -static inline int
> +inline int
>  ivar_list_length (tree t)
>  {
>    int count = 0;
> @@ -768,7 +768,7 @@ ivar_list_length (tree t)
>    return count;
>  }
>
> -static inline tree
> +inline tree
>  is_ivar (tree decl_chain, tree ident)
>  {
>    for ( ; decl_chain; decl_chain = DECL_CHAIN (decl_chain))
> diff --git a/gcc/objc/objc-map.h b/gcc/objc/objc-map.h
> index 4842abc1431..1e1b5fd419b 100644
> --- a/gcc/objc/objc-map.h
> +++ b/gcc/objc/objc-map.h
> @@ -133,7 +133,7 @@ int objc_map_maximum_load_factor (objc_map_t map);
>     value NULL, and objc_map_get() will return NULL in that case.
>     So a result of NULL means that they key *was* found, and the value
>     associated with it was NULL.  */
> -static inline tree
> +inline tree
>  objc_map_get (objc_map_t map, /* struct tree_identifier * */tree key)
>  {
>    /* The inline implementation is private and may change without notice.  */
> @@ -169,7 +169,7 @@ objc_map_get (objc_map_t map, /* struct tree_identifier * */tree key)
>     You can use any identifier as key, with the exception of NULL.
>
>     You can use any tree as value, including NULL.  */
> -static inline
> +inline
>  void objc_map_put (objc_map_t map, /*struct tree_identifier * */tree key, tree value)
>  {
>    /* The inline implementation is private and may change without notice.  */
> @@ -243,7 +243,7 @@ typedef size_t objc_map_iterator_t;
>  /* Initialize an iterator to iterate over the specified objc_map.  You
>     must use this before starting the iteration, to get a working
>     iterator.  */
> -static inline
> +inline
>  void
>  objc_map_iterator_initialize (objc_map_t map ATTRIBUTE_UNUSED, objc_map_iterator_t *i)
>  {
> @@ -262,7 +262,7 @@ objc_map_iterator_initialize (objc_map_t map ATTRIBUTE_UNUSED, objc_map_iterator
>     been initialized using objc_map_iterator_initialize().  Note that
>     because this function is modifying the iterator, you need to pass a
>     pointer to it.  */
> -static inline
> +inline
>  int
>  objc_map_iterator_move_to_next (objc_map_t map, objc_map_iterator_t *i)
>  {
> @@ -285,7 +285,7 @@ objc_map_iterator_move_to_next (objc_map_t map, objc_map_iterator_t *i)
>     first element), and only if the last call returned
>     OBJC_MAP_SUCCESS.  The behavior is otherwise undefined, probably a
>     segmentation fault.  */
> -static inline
> +inline
>  tree
>  objc_map_iterator_current_key (objc_map_t map, objc_map_iterator_t i)
>  {
> @@ -298,7 +298,7 @@ objc_map_iterator_current_key (objc_map_t map, objc_map_iterator_t i)
>     the first element), and only if the last call returned
>     OBJC_MAP_SUCCESS.  The behavior is otherwise undefined, probably a
>     segmentation fault.  */
> -static inline
> +inline
>  tree
>  objc_map_iterator_current_value (objc_map_t map, objc_map_iterator_t i)
>  {
> diff --git a/gcc/omp-general.h b/gcc/omp-general.h
> index 74e30c5e313..92717db1628 100644
> --- a/gcc/omp-general.h
> +++ b/gcc/omp-general.h
> @@ -137,7 +137,7 @@ enum omp_requires {
>
>  extern GTY(()) enum omp_requires omp_requires_mask;
>
> -static inline dump_flags_t
> +inline dump_flags_t
>  get_openacc_privatization_dump_flags ()
>  {
>    dump_flags_t l_dump_flags = MSG_NOTE;
> diff --git a/gcc/optabs-query.h b/gcc/optabs-query.h
> index ed03bbcc3c3..b266d2fe990 100644
> --- a/gcc/optabs-query.h
> +++ b/gcc/optabs-query.h
> @@ -92,7 +92,7 @@ trapv_binoptab_p (optab binoptab)
>  /* Return insn code for a comparison operator with VMODE
>     resultin MASK_MODE, unsigned if UNS is true.  */
>
> -static inline enum insn_code
> +inline enum insn_code
>  get_vec_cmp_icode (machine_mode vmode, machine_mode mask_mode, bool uns)
>  {
>    optab tab = uns ? vec_cmpu_optab : vec_cmp_optab;
> @@ -102,7 +102,7 @@ get_vec_cmp_icode (machine_mode vmode, machine_mode mask_mode, bool uns)
>  /* Return insn code for a comparison operator with VMODE
>     resultin MASK_MODE (only for EQ/NE).  */
>
> -static inline enum insn_code
> +inline enum insn_code
>  get_vec_cmp_eq_icode (machine_mode vmode, machine_mode mask_mode)
>  {
>    return convert_optab_handler (vec_cmpeq_optab, vmode, mask_mode);
> @@ -125,7 +125,7 @@ get_vcond_icode (machine_mode vmode, machine_mode cmode, bool uns)
>  /* Return insn code for a conditional operator with a mask mode
>     MMODE resulting in a value of mode VMODE.  */
>
> -static inline enum insn_code
> +inline enum insn_code
>  get_vcond_mask_icode (machine_mode vmode, machine_mode mmode)
>  {
>    return convert_optab_handler (vcond_mask_optab, vmode, mmode);
> @@ -134,7 +134,7 @@ get_vcond_mask_icode (machine_mode vmode, machine_mode mmode)
>  /* Return insn code for a conditional operator with a comparison in
>     mode CMODE (only EQ/NE), resulting in a value of mode VMODE.  */
>
> -static inline enum insn_code
> +inline enum insn_code
>  get_vcond_eq_icode (machine_mode vmode, machine_mode cmode)
>  {
>    return convert_optab_handler (vcondeq_optab, vmode, cmode);
> diff --git a/gcc/optabs.h b/gcc/optabs.h
> index 7ab2a85e818..29ccbe9235e 100644
> --- a/gcc/optabs.h
> +++ b/gcc/optabs.h
> @@ -70,7 +70,7 @@ public:
>  /* Initialize OP with the given fields.  Initialise the other fields
>     to their default values.  */
>
> -static inline void
> +inline void
>  create_expand_operand (class expand_operand *op,
>                        enum expand_operand_type type,
>                        rtx value, machine_mode mode,
> @@ -87,7 +87,7 @@ create_expand_operand (class expand_operand *op,
>
>  /* Make OP describe an operand that must use rtx X, even if X is volatile.  */
>
> -static inline void
> +inline void
>  create_fixed_operand (class expand_operand *op, rtx x)
>  {
>    create_expand_operand (op, EXPAND_FIXED, x, VOIDmode, false);
> @@ -98,7 +98,7 @@ create_fixed_operand (class expand_operand *op, rtx x)
>     It is OK for VALUE to be inconsistent with MODE, although it will just
>     be ignored in that case.  */
>
> -static inline void
> +inline void
>  create_output_operand (class expand_operand *op, rtx x,
>                        machine_mode mode)
>  {
> @@ -110,7 +110,7 @@ create_output_operand (class expand_operand *op, rtx x,
>     VALUE be copied into a different kind of rtx before being passed
>     as an operand.  */
>
> -static inline void
> +inline void
>  create_input_operand (class expand_operand *op, rtx value,
>                       machine_mode mode)
>  {
> @@ -120,7 +120,7 @@ create_input_operand (class expand_operand *op, rtx value,
>  /* Like create_input_operand, except that VALUE must first be converted
>     to mode MODE.  UNSIGNED_P says whether VALUE is unsigned.  */
>
> -static inline void
> +inline void
>  create_convert_operand_to (class expand_operand *op, rtx value,
>                            machine_mode mode, bool unsigned_p)
>  {
> @@ -136,7 +136,7 @@ create_convert_operand_to (class expand_operand *op, rtx value,
>     conversion (as for convert_modes) and duplicating a scalar to fill
>     a vector (if VALUE is a scalar but the operand is a vector).  */
>
> -static inline void
> +inline void
>  create_convert_operand_from (class expand_operand *op, rtx value,
>                              machine_mode mode, bool unsigned_p)
>  {
> @@ -147,7 +147,7 @@ create_convert_operand_from (class expand_operand *op, rtx value,
>  /* Make OP describe an input Pmode address operand.  VALUE is the value
>     of the address, but it may need to be converted to Pmode first.  */
>
> -static inline void
> +inline void
>  create_address_operand (class expand_operand *op, rtx value)
>  {
>    create_expand_operand (op, EXPAND_ADDRESS, value, Pmode, false);
> diff --git a/gcc/plugin.h b/gcc/plugin.h
> index 3b6f7fd19ee..ee0a53ec4c9 100644
> --- a/gcc/plugin.h
> +++ b/gcc/plugin.h
> @@ -184,7 +184,7 @@ extern bool flag_plugin_added;
>     EVENT    - the event identifier
>     GCC_DATA - event-specific data provided by the compiler  */
>
> -static inline int
> +inline int
>  invoke_plugin_callbacks (int event ATTRIBUTE_UNUSED,
>                          void *gcc_data ATTRIBUTE_UNUSED)
>  {
> diff --git a/gcc/pretty-print.h b/gcc/pretty-print.h
> index c7788d720f8..0230a289df5 100644
> --- a/gcc/pretty-print.h
> +++ b/gcc/pretty-print.h
> @@ -113,7 +113,7 @@ public:
>
>  /* Finishes constructing a NULL-terminated character string representing
>     the buffered text.  */
> -static inline const char *
> +inline const char *
>  output_buffer_formatted_text (output_buffer *buff)
>  {
>    obstack_1grow (buff->obstack, '\0');
> @@ -122,7 +122,7 @@ output_buffer_formatted_text (output_buffer *buff)
>
>  /* Append to the output buffer a string specified by its
>     STARTing character and LENGTH.  */
> -static inline void
> +inline void
>  output_buffer_append_r (output_buffer *buff, const char *start, int length)
>  {
>    gcc_checking_assert (start);
> @@ -136,7 +136,7 @@ output_buffer_append_r (output_buffer *buff, const char *start, int length)
>
>  /*  Return a pointer to the last character emitted in the
>      output_buffer.  A NULL pointer means no character available.  */
> -static inline const char *
> +inline const char *
>  output_buffer_last_position_in_text (const output_buffer *buff)
>  {
>    const char *p = NULL;
> @@ -283,7 +283,7 @@ public:
>    diagnostic_url_format url_format;
>  };
>
> -static inline const char *
> +inline const char *
>  pp_get_prefix (const pretty_printer *pp) { return pp->prefix; }
>
>  #define pp_space(PP)            pp_character (PP, ' ')
> @@ -415,7 +415,7 @@ extern void pp_begin_url (pretty_printer *pp, const char *url);
>  extern void pp_end_url (pretty_printer *pp);
>
>  /* Switch into verbatim mode and return the old mode.  */
> -static inline pp_wrapping_mode_t
> +inline pp_wrapping_mode_t
>  pp_set_verbatim_wrapping_ (pretty_printer *pp)
>  {
>    pp_wrapping_mode_t oldmode = pp_wrapping_mode (pp);
> diff --git a/gcc/range.h b/gcc/range.h
> index 12f907c4abf..3b0e9efffbf 100644
> --- a/gcc/range.h
> +++ b/gcc/range.h
> @@ -28,7 +28,7 @@ value_range range_negatives (tree type);
>
>  // Return an irange instance that is a boolean TRUE.
>
> -static inline int_range<1>
> +inline int_range<1>
>  range_true (tree type)
>  {
>    unsigned prec = TYPE_PRECISION (type);
> @@ -37,7 +37,7 @@ range_true (tree type)
>
>  // Return an irange instance that is a boolean FALSE.
>
> -static inline int_range<1>
> +inline int_range<1>
>  range_false (tree type)
>  {
>    unsigned prec = TYPE_PRECISION (type);
> @@ -46,7 +46,7 @@ range_false (tree type)
>
>  // Return an irange that covers both true and false.
>
> -static inline int_range<1>
> +inline int_range<1>
>  range_true_and_false (tree type)
>  {
>    unsigned prec = TYPE_PRECISION (type);
> diff --git a/gcc/read-md.h b/gcc/read-md.h
> index cc0670a04b5..b309c9c3deb 100644
> --- a/gcc/read-md.h
> +++ b/gcc/read-md.h
> @@ -375,7 +375,7 @@ extern void (*include_callback) (const char *);
>
>  /* Read the next character from the MD file.  */
>
> -static inline int
> +inline int
>  read_char (void)
>  {
>    return md_reader_ptr->read_char ();
> @@ -383,7 +383,7 @@ read_char (void)
>
>  /* Put back CH, which was the last character read from the MD file.  */
>
> -static inline void
> +inline void
>  unread_char (int ch)
>  {
>    md_reader_ptr->unread_char (ch);
> diff --git a/gcc/recog.h b/gcc/recog.h
> index 86da3c2bdbb..764fa90afde 100644
> --- a/gcc/recog.h
> +++ b/gcc/recog.h
> @@ -76,7 +76,7 @@ struct operand_alternative
>  /* Return the class for operand I of alternative ALT, taking matching
>     constraints into account.  */
>
> -static inline enum reg_class
> +inline enum reg_class
>  alternative_class (const operand_alternative *alt, int i)
>  {
>    return alt[i].matches >= 0 ? alt[alt[i].matches].cl : alt[i].cl;
> @@ -229,7 +229,7 @@ extern bool mode_dependent_address_p (rtx, addr_space_t);
>
>  extern int recog (rtx, rtx_insn *, int *);
>  #ifndef GENERATOR_FILE
> -static inline int recog_memoized (rtx_insn *insn);
> +inline int recog_memoized (rtx_insn *insn);
>  #endif
>  extern void add_clobbers (rtx, int);
>  extern int added_clobbers_hard_reg_p (int);
> @@ -266,7 +266,7 @@ extern void copy_frame_info_to_split_insn (rtx_insn *, rtx_insn *);
>     The automatically-generated function `recog' is normally called
>     through this one.  */
>
> -static inline int
> +inline int
>  recog_memoized (rtx_insn *insn)
>  {
>    if (INSN_CODE (insn) < 0)
> @@ -277,7 +277,7 @@ recog_memoized (rtx_insn *insn)
>
>  /* Skip chars until the next ',' or the end of the string.  This is
>     useful to skip alternatives in a constraint string.  */
> -static inline const char *
> +inline const char *
>  skip_alternative (const char *p)
>  {
>    const char *r = p;
> diff --git a/gcc/regs.h b/gcc/regs.h
> index d0f029f7749..aea093ed795 100644
> --- a/gcc/regs.h
> +++ b/gcc/regs.h
> @@ -64,7 +64,7 @@ struct regstat_n_sets_and_refs_t
>  extern struct regstat_n_sets_and_refs_t *regstat_n_sets_and_refs;
>
>  /* Indexed by n, gives number of times (REG n) is used or set.  */
> -static inline int
> +inline int
>  REG_N_REFS (int regno)
>  {
>    return regstat_n_sets_and_refs[regno].refs;
> @@ -75,7 +75,7 @@ REG_N_REFS (int regno)
>  #define INC_REG_N_REFS(N,V) (regstat_n_sets_and_refs[N].refs += V)
>
>  /* Indexed by n, gives number of times (REG n) is set.  */
> -static inline int
> +inline int
>  REG_N_SETS (int regno)
>  {
>    return regstat_n_sets_and_refs[regno].sets;
> @@ -266,7 +266,7 @@ hard_regno_nregs (unsigned int regno, machine_mode mode)
>  /* Return an exclusive upper bound on the registers occupied by hard
>     register (reg:MODE REGNO).  */
>
> -static inline unsigned int
> +inline unsigned int
>  end_hard_regno (machine_mode mode, unsigned int regno)
>  {
>    return regno + hard_regno_nregs (regno, mode);
> @@ -275,7 +275,7 @@ end_hard_regno (machine_mode mode, unsigned int regno)
>  /* Add to REGS all the registers required to store a value of mode MODE
>     in register REGNO.  */
>
> -static inline void
> +inline void
>  add_to_hard_reg_set (HARD_REG_SET *regs, machine_mode mode,
>                      unsigned int regno)
>  {
> @@ -289,7 +289,7 @@ add_to_hard_reg_set (HARD_REG_SET *regs, machine_mode mode,
>
>  /* Likewise, but remove the registers.  */
>
> -static inline void
> +inline void
>  remove_from_hard_reg_set (HARD_REG_SET *regs, machine_mode mode,
>                           unsigned int regno)
>  {
> @@ -303,7 +303,7 @@ remove_from_hard_reg_set (HARD_REG_SET *regs, machine_mode mode,
>
>  /* Return true if REGS contains the whole of (reg:MODE REGNO).  */
>
> -static inline bool
> +inline bool
>  in_hard_reg_set_p (const_hard_reg_set regs, machine_mode mode,
>                    unsigned int regno)
>  {
> @@ -328,7 +328,7 @@ in_hard_reg_set_p (const_hard_reg_set regs, machine_mode mode,
>
>  /* Return true if (reg:MODE REGNO) includes an element of REGS.  */
>
> -static inline bool
> +inline bool
>  overlaps_hard_reg_set_p (const_hard_reg_set regs, machine_mode mode,
>                          unsigned int regno)
>  {
> @@ -348,7 +348,7 @@ overlaps_hard_reg_set_p (const_hard_reg_set regs, machine_mode mode,
>  /* Like add_to_hard_reg_set, but use a REGNO/NREGS range instead of
>     REGNO and MODE.  */
>
> -static inline void
> +inline void
>  add_range_to_hard_reg_set (HARD_REG_SET *regs, unsigned int regno,
>                            int nregs)
>  {
> @@ -358,7 +358,7 @@ add_range_to_hard_reg_set (HARD_REG_SET *regs, unsigned int regno,
>
>  /* Likewise, but remove the registers.  */
>
> -static inline void
> +inline void
>  remove_range_from_hard_reg_set (HARD_REG_SET *regs, unsigned int regno,
>                                 int nregs)
>  {
> @@ -368,7 +368,7 @@ remove_range_from_hard_reg_set (HARD_REG_SET *regs, unsigned int regno,
>
>  /* Like overlaps_hard_reg_set_p, but use a REGNO/NREGS range instead of
>     REGNO and MODE.  */
> -static inline bool
> +inline bool
>  range_overlaps_hard_reg_set_p (const_hard_reg_set set, unsigned regno,
>                                int nregs)
>  {
> @@ -380,7 +380,7 @@ range_overlaps_hard_reg_set_p (const_hard_reg_set set, unsigned regno,
>
>  /* Like in_hard_reg_set_p, but use a REGNO/NREGS range instead of
>     REGNO and MODE.  */
> -static inline bool
> +inline bool
>  range_in_hard_reg_set_p (const_hard_reg_set set, unsigned regno, int nregs)
>  {
>    while (nregs-- > 0)
> diff --git a/gcc/rtl-iter.h b/gcc/rtl-iter.h
> index df7b4960cce..00ce4f12cac 100644
> --- a/gcc/rtl-iter.h
> +++ b/gcc/rtl-iter.h
> @@ -39,7 +39,7 @@ extern rtx_subrtx_bound_info rtx_nonconst_subrtx_bounds[];
>
>  /* Return true if CODE has no subrtxes.  */
>
> -static inline bool
> +inline bool
>  leaf_code_p (enum rtx_code code)
>  {
>    return rtx_all_subrtx_bounds[code].count == 0;
> diff --git a/gcc/rtl.h b/gcc/rtl.h
> index f9057123127..52f0419af29 100644
> --- a/gcc/rtl.h
> +++ b/gcc/rtl.h
> @@ -1895,7 +1895,7 @@ inline void rtx_jump_insn::set_jump_target (rtx_code_label *target)
>  #define LABEL_REFS(LABEL) XCEXP (LABEL, 3, CODE_LABEL)
>
>  /* Get the label that a LABEL_REF references.  */
> -static inline rtx_insn *
> +inline rtx_insn *
>  label_ref_label (const_rtx ref)
>  {
>    return as_a<rtx_insn *> (XCEXP (ref, 0, LABEL_REF));
> @@ -1903,7 +1903,7 @@ label_ref_label (const_rtx ref)
>
>  /* Set the label that LABEL_REF ref refers to.  */
>
> -static inline void
> +inline void
>  set_label_ref_label (rtx ref, rtx_insn *label)
>  {
>    XCEXP (ref, 0, LABEL_REF) = label;
> @@ -1926,14 +1926,14 @@ set_label_ref_label (rtx ref, rtx_insn *label)
>    (RTL_FLAG_CHECK1 ("ORIGINAL_REGNO", (RTX), REG)->u2.original_regno)
>
>  /* Force the REGNO macro to only be used on the lhs.  */
> -static inline unsigned int
> +inline unsigned int
>  rhs_regno (const_rtx x)
>  {
>    return REG_CHECK (x)->regno;
>  }
>
>  /* Return the final register in REG X plus one.  */
> -static inline unsigned int
> +inline unsigned int
>  END_REGNO (const_rtx x)
>  {
>    return REGNO (x) + REG_NREGS (x);
> @@ -1941,7 +1941,7 @@ END_REGNO (const_rtx x)
>
>  /* Change the REGNO and REG_NREGS of REG X to the specified values,
>     bypassing the df machinery.  */
> -static inline void
> +inline void
>  set_regno_raw (rtx x, unsigned int regno, unsigned int nregs)
>  {
>    reg_info *reg = REG_CHECK (x);
> @@ -2058,7 +2058,7 @@ const_vector_encoded_nelts (const_rtx x)
>
>  /* Return true if CODE always has VOIDmode.  */
>
> -static inline bool
> +inline bool
>  always_void_p (enum rtx_code code)
>  {
>    return code == SET;
> @@ -2073,7 +2073,7 @@ struct full_rtx_costs
>  };
>
>  /* Initialize a full_rtx_costs structure C to the maximum cost.  */
> -static inline void
> +inline void
>  init_costs_to_max (struct full_rtx_costs *c)
>  {
>    c->speed = MAX_COST;
> @@ -2081,7 +2081,7 @@ init_costs_to_max (struct full_rtx_costs *c)
>  }
>
>  /* Initialize a full_rtx_costs structure C to zero cost.  */
> -static inline void
> +inline void
>  init_costs_to_zero (struct full_rtx_costs *c)
>  {
>    c->speed = 0;
> @@ -2090,7 +2090,7 @@ init_costs_to_zero (struct full_rtx_costs *c)
>
>  /* Compare two full_rtx_costs structures A and B, returning true
>     if A < B when optimizing for speed.  */
> -static inline bool
> +inline bool
>  costs_lt_p (struct full_rtx_costs *a, struct full_rtx_costs *b,
>             bool speed)
>  {
> @@ -2104,7 +2104,7 @@ costs_lt_p (struct full_rtx_costs *a, struct full_rtx_costs *b,
>
>  /* Increase both members of the full_rtx_costs structure C by the
>     cost of N insns.  */
> -static inline void
> +inline void
>  costs_add_n_insns (struct full_rtx_costs *c, int n)
>  {
>    c->speed += COSTS_N_INSNS (n);
> @@ -2168,7 +2168,7 @@ subreg_shape::unique_id () const
>
>  /* Return the shape of a SUBREG rtx.  */
>
> -static inline subreg_shape
> +inline subreg_shape
>  shape_of_subreg (const_rtx x)
>  {
>    return subreg_shape (GET_MODE (SUBREG_REG (x)),
> @@ -2919,7 +2919,7 @@ extern int currently_expanding_to_rtl;
>  /* Return the cost of SET X.  SPEED_P is true if optimizing for speed
>     rather than size.  */
>
> -static inline int
> +inline int
>  set_rtx_cost (rtx x, bool speed_p)
>  {
>    return rtx_cost (x, VOIDmode, INSN, 4, speed_p);
> @@ -2927,7 +2927,7 @@ set_rtx_cost (rtx x, bool speed_p)
>
>  /* Like set_rtx_cost, but return both the speed and size costs in C.  */
>
> -static inline void
> +inline void
>  get_full_set_rtx_cost (rtx x, struct full_rtx_costs *c)
>  {
>    get_full_rtx_cost (x, VOIDmode, INSN, 4, c);
> @@ -2937,7 +2937,7 @@ get_full_set_rtx_cost (rtx x, struct full_rtx_costs *c)
>     of a register move.  SPEED_P is true if optimizing for speed rather
>     than size.  */
>
> -static inline int
> +inline int
>  set_src_cost (rtx x, machine_mode mode, bool speed_p)
>  {
>    return rtx_cost (x, mode, SET, 1, speed_p);
> @@ -2945,7 +2945,7 @@ set_src_cost (rtx x, machine_mode mode, bool speed_p)
>
>  /* Like set_src_cost, but return both the speed and size costs in C.  */
>
> -static inline void
> +inline void
>  get_full_set_src_cost (rtx x, machine_mode mode, struct full_rtx_costs *c)
>  {
>    get_full_rtx_cost (x, mode, SET, 1, c);
> @@ -3947,7 +3947,7 @@ extern struct target_rtl *this_target_rtl;
>
>  #ifndef GENERATOR_FILE
>  /* Return the attributes of a MEM rtx.  */
> -static inline const class mem_attrs *
> +inline const class mem_attrs *
>  get_mem_attrs (const_rtx x)
>  {
>    class mem_attrs *attrs;
> @@ -3996,7 +3996,7 @@ extern rtx gen_rtx_VAR_LOCATION (machine_mode, tree, rtx,
>  #ifdef GENERATOR_FILE
>  #define PUT_MODE(RTX, MODE) PUT_MODE_RAW (RTX, MODE)
>  #else
> -static inline void
> +inline void
>  PUT_MODE (rtx x, machine_mode mode)
>  {
>    if (REG_P (x))
> diff --git a/gcc/sbitmap.h b/gcc/sbitmap.h
> index 751d28c2c9e..61172db9d7b 100644
> --- a/gcc/sbitmap.h
> +++ b/gcc/sbitmap.h
> @@ -98,7 +98,7 @@ struct simple_bitmap_def
>
>  /* Verify that access at INDEX in bitmap MAP is valid.  */
>
> -static inline void
> +inline void
>  bitmap_check_index (const_sbitmap map, int index)
>  {
>    gcc_checking_assert (index >= 0);
> @@ -107,14 +107,14 @@ bitmap_check_index (const_sbitmap map, int index)
>
>  /* Verify that bitmaps A and B have same size.  */
>
> -static inline void
> +inline void
>  bitmap_check_sizes (const_sbitmap a, const_sbitmap b)
>  {
>    gcc_checking_assert (a->n_bits == b->n_bits);
>  }
>
>  /* Test if bit number bitno in the bitmap is set.  */
> -static inline bool
> +inline bool
>  bitmap_bit_p (const_sbitmap map, int bitno)
>  {
>    bitmap_check_index (map, bitno);
> @@ -127,7 +127,7 @@ bitmap_bit_p (const_sbitmap map, int bitno)
>  /* Set bit number BITNO in the sbitmap MAP.
>     Return true if the bit changed.  */
>
> -static inline bool
> +inline bool
>  bitmap_set_bit (sbitmap map, int bitno)
>  {
>    bitmap_check_index (map, bitno);
> @@ -143,7 +143,7 @@ bitmap_set_bit (sbitmap map, int bitno)
>  /* Reset bit number BITNO in the sbitmap MAP.
>     Return true if the bit changed.  */
>
> -static inline bool
> +inline bool
>  bitmap_clear_bit (sbitmap map, int bitno)
>  {
>    bitmap_check_index (map, bitno);
> @@ -177,7 +177,7 @@ struct sbitmap_iterator {
>  /* Initialize the iterator I with sbitmap BMP and the initial index
>     MIN.  */
>
> -static inline void
> +inline void
>  bmp_iter_set_init (sbitmap_iterator *i, const_sbitmap bmp,
>                    unsigned int min, unsigned *bit_no ATTRIBUTE_UNUSED)
>  {
> @@ -197,7 +197,7 @@ bmp_iter_set_init (sbitmap_iterator *i, const_sbitmap bmp,
>     to the index of the bit to be visited.  Otherwise, return
>     false.  */
>
> -static inline bool
> +inline bool
>  bmp_iter_set (sbitmap_iterator *i, unsigned int *n)
>  {
>    /* Skip words that are zeros.  */
> @@ -223,7 +223,7 @@ bmp_iter_set (sbitmap_iterator *i, unsigned int *n)
>
>  /* Advance to the next bit.  */
>
> -static inline void
> +inline void
>  bmp_iter_next (sbitmap_iterator *i, unsigned *bit_no ATTRIBUTE_UNUSED)
>  {
>    i->word >>= 1;
> diff --git a/gcc/sched-int.h b/gcc/sched-int.h
> index ab3ad99cdeb..97b7d2d319b 100644
> --- a/gcc/sched-int.h
> +++ b/gcc/sched-int.h
> @@ -87,7 +87,7 @@ extern struct common_sched_info_def *common_sched_info;
>  extern const struct common_sched_info_def haifa_common_sched_info;
>
>  /* Return true if selective scheduling pass is working.  */
> -static inline bool
> +inline bool
>  sel_sched_p (void)
>  {
>    return common_sched_info->sched_pass_id == SCHED_SEL_PASS;
> @@ -1588,7 +1588,7 @@ typedef struct _sd_iterator sd_iterator_def;
>     struct _deps_link.  */
>
>  /* Return initialized iterator.  */
> -static inline sd_iterator_def
> +inline sd_iterator_def
>  sd_iterator_start (rtx insn, sd_list_types_def types)
>  {
>    /* Some dep_link a pointer to which will return NULL.  */
> @@ -1607,7 +1607,7 @@ sd_iterator_start (rtx insn, sd_list_types_def types)
>  }
>
>  /* Return the current element.  */
> -static inline bool
> +inline bool
>  sd_iterator_cond (sd_iterator_def *it_ptr, dep_t *dep_ptr)
>  {
>    while (true)
> @@ -1645,7 +1645,7 @@ sd_iterator_cond (sd_iterator_def *it_ptr, dep_t *dep_ptr)
>  }
>
>  /* Advance iterator.  */
> -static inline void
> +inline void
>  sd_iterator_next (sd_iterator_def *it_ptr)
>  {
>    it_ptr->linkp = &DEP_LINK_NEXT (*it_ptr->linkp);
> diff --git a/gcc/sel-sched-ir.h b/gcc/sel-sched-ir.h
> index b36f2caa2b8..7034a1ab06c 100644
> --- a/gcc/sel-sched-ir.h
> +++ b/gcc/sel-sched-ir.h
> @@ -359,13 +359,13 @@ struct _list_node
>     we can't move them in sel-sched-ir.cc.  */
>  extern object_allocator<_list_node> sched_lists_pool;
>
> -static inline _list_t
> +inline _list_t
>  _list_alloc (void)
>  {
>    return sched_lists_pool.allocate ();
>  }
>
> -static inline void
> +inline void
>  _list_add (_list_t *lp)
>  {
>    _list_t l = _list_alloc ();
> @@ -374,7 +374,7 @@ _list_add (_list_t *lp)
>    *lp = l;
>  }
>
> -static inline void
> +inline void
>  _list_remove_nofree (_list_t *lp)
>  {
>    _list_t n = *lp;
> @@ -382,7 +382,7 @@ _list_remove_nofree (_list_t *lp)
>    *lp = _LIST_NEXT (n);
>  }
>
> -static inline void
> +inline void
>  _list_remove (_list_t *lp)
>  {
>    _list_t n = *lp;
> @@ -391,7 +391,7 @@ _list_remove (_list_t *lp)
>    sched_lists_pool.remove (n);
>  }
>
> -static inline void
> +inline void
>  _list_clear (_list_t *l)
>  {
>    while (*l)
> @@ -412,7 +412,7 @@ struct _list_iterator
>    bool removed_p;
>  };
>
> -static inline void
> +inline void
>  _list_iter_start (_list_iterator *ip, _list_t *lp, bool can_remove_p)
>  {
>    ip->lp = lp;
> @@ -420,7 +420,7 @@ _list_iter_start (_list_iterator *ip, _list_t *lp, bool can_remove_p)
>    ip->removed_p = false;
>  }
>
> -static inline void
> +inline void
>  _list_iter_next (_list_iterator *ip)
>  {
>    if (!ip->removed_p)
> @@ -429,7 +429,7 @@ _list_iter_next (_list_iterator *ip)
>      ip->removed_p = false;
>  }
>
> -static inline void
> +inline void
>  _list_iter_remove (_list_iterator *ip)
>  {
>    gcc_assert (!ip->removed_p && ip->can_remove_p);
> @@ -437,7 +437,7 @@ _list_iter_remove (_list_iterator *ip)
>    ip->removed_p = true;
>  }
>
> -static inline void
> +inline void
>  _list_iter_remove_nofree (_list_iterator *ip)
>  {
>    gcc_assert (!ip->removed_p && ip->can_remove_p);
> @@ -460,7 +460,7 @@ _list_iter_remove_nofree (_list_iterator *ip)
>
>  /* _xlist_t functions.  */
>
> -static inline void
> +inline void
>  _xlist_add (_xlist_t *lp, rtx x)
>  {
>    _list_add (lp);
> @@ -470,7 +470,7 @@ _xlist_add (_xlist_t *lp, rtx x)
>  #define _xlist_remove(LP) (_list_remove (LP))
>  #define _xlist_clear(LP) (_list_clear (LP))
>
> -static inline bool
> +inline bool
>  _xlist_is_in_p (_xlist_t l, rtx x)
>  {
>    while (l)
> @@ -484,7 +484,7 @@ _xlist_is_in_p (_xlist_t l, rtx x)
>  }
>
>  /* Used through _FOR_EACH.  */
> -static inline bool
> +inline bool
>  _list_iter_cond_x (_xlist_t l, rtx *xp)
>  {
>    if (l)
> @@ -505,7 +505,7 @@ typedef _list_iterator _xlist_iterator;
>
>  /* ilist_t functions.  */
>
> -static inline void
> +inline void
>  ilist_add (ilist_t *lp, insn_t insn)
>  {
>    _list_add (lp);
> @@ -514,7 +514,7 @@ ilist_add (ilist_t *lp, insn_t insn)
>  #define ilist_remove(LP) (_list_remove (LP))
>  #define ilist_clear(LP) (_list_clear (LP))
>
> -static inline bool
> +inline bool
>  ilist_is_in_p (ilist_t l, insn_t insn)
>  {
>    while (l)
> @@ -528,7 +528,7 @@ ilist_is_in_p (ilist_t l, insn_t insn)
>  }
>
>  /* Used through _FOR_EACH.  */
> -static inline bool
> +inline bool
>  _list_iter_cond_insn (ilist_t l, insn_t *ip)
>  {
>    if (l)
> @@ -574,7 +574,7 @@ typedef _list_iterator def_list_iterator;
>
>  #define FOR_EACH_DEF(DEF, I, DEF_LIST) _FOR_EACH (def, (DEF), (I), (DEF_LIST))
>
> -static inline bool
> +inline bool
>  _list_iter_cond_def (def_list_t def_list, def_t *def)
>  {
>    if (def_list)
> @@ -1040,7 +1040,7 @@ extern bool sel_bb_empty_p (basic_block);
>  extern bool in_current_region_p (basic_block);
>
>  /* True when BB is a header of the inner loop.  */
> -static inline bool
> +inline bool
>  inner_loop_header_p (basic_block bb)
>  {
>    class loop *inner_loop;
> @@ -1068,7 +1068,7 @@ inner_loop_header_p (basic_block bb)
>  }
>
>  /* Return exit edges of LOOP, filtering out edges with the same dest bb.  */
> -static inline vec<edge>
> +inline vec<edge>
>  get_loop_exit_edges_unique_dests (const class loop *loop)
>  {
>    vec<edge> edges = vNULL;
> @@ -1122,7 +1122,7 @@ sel_bb_empty_or_nop_p (basic_block bb)
>     traverse all of them and if any of them turns out to be another loop header
>     (after skipping empty BBs), add its loop exits to the resulting vector
>     as well.  */
> -static inline vec<edge>
> +inline vec<edge>
>  get_all_loop_exits (basic_block bb)
>  {
>    vec<edge> exits = vNULL;
> @@ -1212,7 +1212,7 @@ get_all_loop_exits (basic_block bb)
>
>  /* We need to return a succ_iterator to avoid 'unitialized' warning
>     during bootstrap.  */
> -static inline succ_iterator
> +inline succ_iterator
>  _succ_iter_start (insn_t *succp, insn_t insn, int flags)
>  {
>    succ_iterator i;
> @@ -1249,7 +1249,7 @@ _succ_iter_start (insn_t *succp, insn_t insn, int flags)
>    return i;
>  }
>
> -static inline bool
> +inline bool
>  _succ_iter_cond (succ_iterator *ip, insn_t *succp, insn_t insn,
>                   bool check (edge, succ_iterator *))
>  {
> @@ -1354,7 +1354,7 @@ _succ_iter_cond (succ_iterator *ip, insn_t *succp, insn_t insn,
>      }
>  }
>
> -static inline void
> +inline void
>  _succ_iter_next (succ_iterator *ip)
>  {
>    gcc_assert (!ip->e2 || ip->e1);
> @@ -1367,7 +1367,7 @@ _succ_iter_next (succ_iterator *ip)
>     empty blocks.  When E2P is not null, the resulting edge is written there.
>     FLAGS are used to specify whether back edges and out-of-region edges
>     should be considered.  */
> -static inline bool
> +inline bool
>  _eligible_successor_edge_p (edge e1, succ_iterator *ip)
>  {
>    edge e2 = e1;
> @@ -1476,7 +1476,7 @@ _eligible_successor_edge_p (edge e1, succ_iterator *ip)
>  #define SUCC_ITER_EDGE(ITER) ((ITER)->e1)
>
>  /* Return the next block of BB not running into inconsistencies.  */
> -static inline basic_block
> +inline basic_block
>  bb_next_bb (basic_block bb)
>  {
>    switch (EDGE_COUNT (bb->succs))
> diff --git a/gcc/sese.h b/gcc/sese.h
> index e79be7514f1..252318bcc1c 100644
> --- a/gcc/sese.h
> +++ b/gcc/sese.h
> @@ -44,7 +44,7 @@ void dump_sese (const sese_l &);
>
>  /* Get the entry of an sese S.  */
>
> -static inline basic_block
> +inline basic_block
>  get_entry_bb (const sese_l &s)
>  {
>    return s.entry->dest;
> @@ -52,7 +52,7 @@ get_entry_bb (const sese_l &s)
>
>  /* Get the exit of an sese S.  */
>
> -static inline basic_block
> +inline basic_block
>  get_exit_bb (const sese_l &s)
>  {
>    return s.exit->src;
> @@ -110,7 +110,7 @@ extern bool sese_trivially_empty_bb_p (basic_block);
>
>  /* The number of parameters in REGION. */
>
> -static inline unsigned
> +inline unsigned
>  sese_nb_params (sese_info_p region)
>  {
>    return region->params.length ();
> @@ -119,7 +119,7 @@ sese_nb_params (sese_info_p region)
>  /* Checks whether BB is contained in the region delimited by ENTRY and
>     EXIT blocks.  */
>
> -static inline bool
> +inline bool
>  bb_in_region (const_basic_block bb, const_basic_block entry, const_basic_block exit)
>  {
>    return dominated_by_p (CDI_DOMINATORS, bb, entry)
> @@ -130,7 +130,7 @@ bb_in_region (const_basic_block bb, const_basic_block entry, const_basic_block e
>  /* Checks whether BB is contained in the region delimited by ENTRY and
>     EXIT blocks.  */
>
> -static inline bool
> +inline bool
>  bb_in_sese_p (basic_block bb, const sese_l &r)
>  {
>    return bb_in_region (bb, r.entry->dest, r.exit->dest);
> @@ -138,7 +138,7 @@ bb_in_sese_p (basic_block bb, const sese_l &r)
>
>  /* Returns true when STMT is defined in REGION.  */
>
> -static inline bool
> +inline bool
>  stmt_in_sese_p (gimple *stmt, const sese_l &r)
>  {
>    basic_block bb = gimple_bb (stmt);
> @@ -147,7 +147,7 @@ stmt_in_sese_p (gimple *stmt, const sese_l &r)
>
>  /* Returns true when NAME is defined in REGION.  */
>
> -static inline bool
> +inline bool
>  defined_in_sese_p (tree name, const sese_l &r)
>  {
>    return stmt_in_sese_p (SSA_NAME_DEF_STMT (name), r);
> @@ -155,7 +155,7 @@ defined_in_sese_p (tree name, const sese_l &r)
>
>  /* Returns true when LOOP is in REGION.  */
>
> -static inline bool
> +inline bool
>  loop_in_sese_p (class loop *loop, const sese_l &region)
>  {
>    return (bb_in_sese_p (loop->header, region)
> @@ -185,7 +185,7 @@ loop_in_sese_p (class loop *loop, const sese_l &region)
>      loop_1 exists, but is not completely contained in the region -> depth 0
>      loop_2 is completely contained -> depth 1  */
>
> -static inline unsigned int
> +inline unsigned int
>  sese_loop_depth (const sese_l &region, loop_p loop)
>  {
>    unsigned int depth = 0;
> @@ -212,19 +212,19 @@ extern void set_ifsese_condition (ifsese, tree);
>  extern edge get_true_edge_from_guard_bb (basic_block);
>  extern edge get_false_edge_from_guard_bb (basic_block);
>
> -static inline edge
> +inline edge
>  if_region_entry (ifsese if_region)
>  {
>    return if_region->region->region.entry;
>  }
>
> -static inline edge
> +inline edge
>  if_region_exit (ifsese if_region)
>  {
>    return if_region->region->region.exit;
>  }
>
> -static inline basic_block
> +inline basic_block
>  if_region_get_condition_block (ifsese if_region)
>  {
>    return if_region_entry (if_region)->dest;
> @@ -272,7 +272,7 @@ typedef struct gimple_poly_bb
>
>  /* Return the innermost loop that contains the basic block GBB.  */
>
> -static inline class loop *
> +inline class loop *
>  gbb_loop (gimple_poly_bb_p gbb)
>  {
>    return GBB_BB (gbb)->loop_father;
> @@ -281,7 +281,7 @@ gbb_loop (gimple_poly_bb_p gbb)
>  /* Returns the gimple loop, that corresponds to the loop_iterator_INDEX.
>     If there is no corresponding gimple loop, we return NULL.  */
>
> -static inline loop_p
> +inline loop_p
>  gbb_loop_at_index (gimple_poly_bb_p gbb, sese_l &region, int index)
>  {
>    loop_p loop = gbb_loop (gbb);
> @@ -297,7 +297,7 @@ gbb_loop_at_index (gimple_poly_bb_p gbb, sese_l &region, int index)
>
>  /* The number of common loops in REGION for GBB1 and GBB2.  */
>
> -static inline int
> +inline int
>  nb_common_loops (sese_l &region, gimple_poly_bb_p gbb1, gimple_poly_bb_p gbb2)
>  {
>    loop_p l1 = gbb_loop (gbb1);
> diff --git a/gcc/sparseset.h b/gcc/sparseset.h
> index 74934cea18b..694ff117f0e 100644
> --- a/gcc/sparseset.h
> +++ b/gcc/sparseset.h
> @@ -109,7 +109,7 @@ extern bool sparseset_equal_p (sparseset, sparseset);
>  /* Operation: S = {}
>     Clear the set of all elements.  */
>
> -static inline void
> +inline void
>  sparseset_clear (sparseset s)
>  {
>    s->members = 0;
> @@ -118,7 +118,7 @@ sparseset_clear (sparseset s)
>
>  /* Return the number of elements currently in the set.  */
>
> -static inline SPARSESET_ELT_TYPE
> +inline SPARSESET_ELT_TYPE
>  sparseset_cardinality (sparseset s)
>  {
>    return s->members;
> @@ -126,7 +126,7 @@ sparseset_cardinality (sparseset s)
>
>  /* Return the maximum number of elements this set can hold.  */
>
> -static inline SPARSESET_ELT_TYPE
> +inline SPARSESET_ELT_TYPE
>  sparseset_size (sparseset s)
>  {
>    return s->size;
> @@ -134,7 +134,7 @@ sparseset_size (sparseset s)
>
>  /* Return true if e is a member of the set S, otherwise return false.  */
>
> -static inline bool
> +inline bool
>  sparseset_bit_p (sparseset s, SPARSESET_ELT_TYPE e)
>  {
>    SPARSESET_ELT_TYPE idx;
> @@ -149,7 +149,7 @@ sparseset_bit_p (sparseset s, SPARSESET_ELT_TYPE e)
>  /* Low level insertion routine not meant for use outside of sparseset.[ch].
>     Assumes E is valid and not already a member of the set S.  */
>
> -static inline void
> +inline void
>  sparseset_insert_bit (sparseset s, SPARSESET_ELT_TYPE e, SPARSESET_ELT_TYPE idx)
>  {
>    s->sparse[e] = idx;
> @@ -159,7 +159,7 @@ sparseset_insert_bit (sparseset s, SPARSESET_ELT_TYPE e, SPARSESET_ELT_TYPE idx)
>  /* Operation: S = S + {e}
>     Insert E into the set S, if it isn't already a member.  */
>
> -static inline void
> +inline void
>  sparseset_set_bit (sparseset s, SPARSESET_ELT_TYPE e)
>  {
>    if (!sparseset_bit_p (s, e))
> @@ -168,7 +168,7 @@ sparseset_set_bit (sparseset s, SPARSESET_ELT_TYPE e)
>
>  /* Return and remove the last member added to the set S.  */
>
> -static inline SPARSESET_ELT_TYPE
> +inline SPARSESET_ELT_TYPE
>  sparseset_pop (sparseset s)
>  {
>    SPARSESET_ELT_TYPE mem = s->members;
> @@ -179,7 +179,7 @@ sparseset_pop (sparseset s)
>    return s->dense[s->members];
>  }
>
> -static inline void
> +inline void
>  sparseset_iter_init (sparseset s)
>  {
>    s->iter = 0;
> @@ -187,7 +187,7 @@ sparseset_iter_init (sparseset s)
>    s->iterating = true;
>  }
>
> -static inline bool
> +inline bool
>  sparseset_iter_p (sparseset s)
>  {
>    if (s->iterating && s->iter < s->members)
> @@ -196,13 +196,13 @@ sparseset_iter_p (sparseset s)
>      return s->iterating = false;
>  }
>
> -static inline SPARSESET_ELT_TYPE
> +inline SPARSESET_ELT_TYPE
>  sparseset_iter_elm (sparseset s)
>  {
>    return s->dense[s->iter];
>  }
>
> -static inline void
> +inline void
>  sparseset_iter_next (sparseset s)
>  {
>    s->iter += s->iter_inc;
> diff --git a/gcc/ssa-iterators.h b/gcc/ssa-iterators.h
> index 43c9b861440..3aeb89bb60e 100644
> --- a/gcc/ssa-iterators.h
> +++ b/gcc/ssa-iterators.h
> @@ -78,7 +78,7 @@ struct imm_use_iterator
>         (void) ((DEST) = next_readonly_imm_use (&(ITER))))
>
>  /* Forward declare for use in the class below.  */
> -static inline void end_imm_use_stmt_traverse (imm_use_iterator *);
> +inline void end_imm_use_stmt_traverse (imm_use_iterator *);
>
>  /* arrange to automatically call, upon descruction, end_imm_use_stmt_traverse
>     with a given pointer to imm_use_iterator.  */
> @@ -246,7 +246,7 @@ struct ssa_op_iter
>
>
>  /* Delink an immediate_uses node from its chain.  */
> -static inline void
> +inline void
>  delink_imm_use (ssa_use_operand_t *linknode)
>  {
>    /* Return if this node is not in a list.  */
> @@ -260,7 +260,7 @@ delink_imm_use (ssa_use_operand_t *linknode)
>  }
>
>  /* Link ssa_imm_use node LINKNODE into the chain for LIST.  */
> -static inline void
> +inline void
>  link_imm_use_to_list (ssa_use_operand_t *linknode, ssa_use_operand_t *list)
>  {
>    /* Link the new node at the head of the list.  If we are in the process of
> @@ -272,7 +272,7 @@ link_imm_use_to_list (ssa_use_operand_t *linknode, ssa_use_operand_t *list)
>  }
>
>  /* Link ssa_imm_use node LINKNODE into the chain for DEF.  */
> -static inline void
> +inline void
>  link_imm_use (ssa_use_operand_t *linknode, tree def)
>  {
>    ssa_use_operand_t *root;
> @@ -289,7 +289,7 @@ link_imm_use (ssa_use_operand_t *linknode, tree def)
>  }
>
>  /* Set the value of a use pointed to by USE to VAL.  */
> -static inline void
> +inline void
>  set_ssa_use_from_ptr (use_operand_p use, tree val)
>  {
>    delink_imm_use (use);
> @@ -299,7 +299,7 @@ set_ssa_use_from_ptr (use_operand_p use, tree val)
>
>  /* Link ssa_imm_use node LINKNODE into the chain for DEF, with use occurring
>     in STMT.  */
> -static inline void
> +inline void
>  link_imm_use_stmt (ssa_use_operand_t *linknode, tree def, gimple *stmt)
>  {
>    if (stmt)
> @@ -310,7 +310,7 @@ link_imm_use_stmt (ssa_use_operand_t *linknode, tree def, gimple *stmt)
>  }
>
>  /* Relink a new node in place of an old node in the list.  */
> -static inline void
> +inline void
>  relink_imm_use (ssa_use_operand_t *node, ssa_use_operand_t *old)
>  {
>    /* The node one had better be in the same list.  */
> @@ -328,7 +328,7 @@ relink_imm_use (ssa_use_operand_t *node, ssa_use_operand_t *old)
>
>  /* Relink ssa_imm_use node LINKNODE into the chain for OLD, with use occurring
>     in STMT.  */
> -static inline void
> +inline void
>  relink_imm_use_stmt (ssa_use_operand_t *linknode, ssa_use_operand_t *old,
>                      gimple *stmt)
>  {
> @@ -341,14 +341,14 @@ relink_imm_use_stmt (ssa_use_operand_t *linknode, ssa_use_operand_t *old,
>
>
>  /* Return true is IMM has reached the end of the immediate use list.  */
> -static inline bool
> +inline bool
>  end_readonly_imm_use_p (const imm_use_iterator *imm)
>  {
>    return (imm->imm_use == imm->end_p);
>  }
>
>  /* Initialize iterator IMM to process the list for VAR.  */
> -static inline use_operand_p
> +inline use_operand_p
>  first_readonly_imm_use (imm_use_iterator *imm, tree var)
>  {
>    imm->end_p = &(SSA_NAME_IMM_USE_NODE (var));
> @@ -360,7 +360,7 @@ first_readonly_imm_use (imm_use_iterator *imm, tree var)
>  }
>
>  /* Bump IMM to the next use in the list.  */
> -static inline use_operand_p
> +inline use_operand_p
>  next_readonly_imm_use (imm_use_iterator *imm)
>  {
>    use_operand_p old = imm->imm_use;
> @@ -383,7 +383,7 @@ next_readonly_imm_use (imm_use_iterator *imm)
>
>
>  /* Return true if VAR has no nondebug uses.  */
> -static inline bool
> +inline bool
>  has_zero_uses (const_tree var)
>  {
>    const ssa_use_operand_t *const head = &(SSA_NAME_IMM_USE_NODE (var));
> @@ -397,7 +397,7 @@ has_zero_uses (const_tree var)
>  }
>
>  /* Return true if VAR has a single nondebug use.  */
> -static inline bool
> +inline bool
>  has_single_use (const_tree var)
>  {
>    const ssa_use_operand_t *const head = &(SSA_NAME_IMM_USE_NODE (var));
> @@ -418,7 +418,7 @@ has_single_use (const_tree var)
>
>  /* If VAR has only a single immediate nondebug use, return true, and
>     set USE_P and STMT to the use pointer and stmt of occurrence.  */
> -static inline bool
> +inline bool
>  single_imm_use (const_tree var, use_operand_p *use_p, gimple **stmt)
>  {
>    const ssa_use_operand_t *const ptr = &(SSA_NAME_IMM_USE_NODE (var));
> @@ -449,7 +449,7 @@ single_imm_use (const_tree var, use_operand_p *use_p, gimple **stmt)
>  }
>
>  /* Return the number of nondebug immediate uses of VAR.  */
> -static inline unsigned int
> +inline unsigned int
>  num_imm_uses (const_tree var)
>  {
>    const ssa_use_operand_t *const start = &(SSA_NAME_IMM_USE_NODE (var));
> @@ -476,14 +476,14 @@ num_imm_uses (const_tree var)
>     SSA operands.  */
>
>  /* Return true if PTR is finished iterating.  */
> -static inline bool
> +inline bool
>  op_iter_done (const ssa_op_iter *ptr)
>  {
>    return ptr->done;
>  }
>
>  /* Get the next iterator use value for PTR.  */
> -static inline use_operand_p
> +inline use_operand_p
>  op_iter_next_use (ssa_op_iter *ptr)
>  {
>    use_operand_p use_p;
> @@ -503,7 +503,7 @@ op_iter_next_use (ssa_op_iter *ptr)
>  }
>
>  /* Get the next iterator def value for PTR.  */
> -static inline def_operand_p
> +inline def_operand_p
>  op_iter_next_def (ssa_op_iter *ptr)
>  {
>    gcc_checking_assert (ptr->iter_type == ssa_op_iter_def);
> @@ -538,7 +538,7 @@ op_iter_next_def (ssa_op_iter *ptr)
>  }
>
>  /* Get the next iterator tree value for PTR.  */
> -static inline tree
> +inline tree
>  op_iter_next_tree (ssa_op_iter *ptr)
>  {
>    tree val;
> @@ -582,7 +582,7 @@ op_iter_next_tree (ssa_op_iter *ptr)
>     used to prevent warnings in the compile about might be uninitialized
>     components.  */
>
> -static inline void
> +inline void
>  clear_and_done_ssa_iter (ssa_op_iter *ptr)
>  {
>    ptr->i = 0;
> @@ -595,7 +595,7 @@ clear_and_done_ssa_iter (ssa_op_iter *ptr)
>  }
>
>  /* Initialize the iterator PTR to the virtual defs in STMT.  */
> -static inline void
> +inline void
>  op_iter_init (ssa_op_iter *ptr, gimple *stmt, int flags)
>  {
>    /* PHI nodes require a different iterator initialization path.  We
> @@ -640,7 +640,7 @@ op_iter_init (ssa_op_iter *ptr, gimple *stmt, int flags)
>
>  /* Initialize iterator PTR to the use operands in STMT based on FLAGS. Return
>     the first use.  */
> -static inline use_operand_p
> +inline use_operand_p
>  op_iter_init_use (ssa_op_iter *ptr, gimple *stmt, int flags)
>  {
>    gcc_checking_assert ((flags & SSA_OP_ALL_DEFS) == 0
> @@ -652,7 +652,7 @@ op_iter_init_use (ssa_op_iter *ptr, gimple *stmt, int flags)
>
>  /* Initialize iterator PTR to the def operands in STMT based on FLAGS. Return
>     the first def.  */
> -static inline def_operand_p
> +inline def_operand_p
>  op_iter_init_def (ssa_op_iter *ptr, gimple *stmt, int flags)
>  {
>    gcc_checking_assert ((flags & SSA_OP_ALL_USES) == 0
> @@ -664,7 +664,7 @@ op_iter_init_def (ssa_op_iter *ptr, gimple *stmt, int flags)
>
>  /* Initialize iterator PTR to the operands in STMT based on FLAGS. Return
>     the first operand as a tree.  */
> -static inline tree
> +inline tree
>  op_iter_init_tree (ssa_op_iter *ptr, gimple *stmt, int flags)
>  {
>    op_iter_init (ptr, stmt, flags);
> @@ -675,7 +675,7 @@ op_iter_init_tree (ssa_op_iter *ptr, gimple *stmt, int flags)
>
>  /* If there is a single operand in STMT matching FLAGS, return it.  Otherwise
>     return NULL.  */
> -static inline tree
> +inline tree
>  single_ssa_tree_operand (gimple *stmt, int flags)
>  {
>    tree var;
> @@ -693,7 +693,7 @@ single_ssa_tree_operand (gimple *stmt, int flags)
>
>  /* If there is a single operand in STMT matching FLAGS, return it.  Otherwise
>     return NULL.  */
> -static inline use_operand_p
> +inline use_operand_p
>  single_ssa_use_operand (gimple *stmt, int flags)
>  {
>    use_operand_p var;
> @@ -710,7 +710,7 @@ single_ssa_use_operand (gimple *stmt, int flags)
>
>  /* Return the single virtual use operand in STMT if present.  Otherwise
>     return NULL.  */
> -static inline use_operand_p
> +inline use_operand_p
>  ssa_vuse_operand (gimple *stmt)
>  {
>    if (! gimple_vuse (stmt))
> @@ -721,7 +721,7 @@ ssa_vuse_operand (gimple *stmt)
>
>  /* If there is a single operand in STMT matching FLAGS, return it.  Otherwise
>     return NULL.  */
> -static inline def_operand_p
> +inline def_operand_p
>  single_ssa_def_operand (gimple *stmt, int flags)
>  {
>    def_operand_p var;
> @@ -739,7 +739,7 @@ single_ssa_def_operand (gimple *stmt, int flags)
>
>  /* Return true if there are zero operands in STMT matching the type
>     given in FLAGS.  */
> -static inline bool
> +inline bool
>  zero_ssa_operands (gimple *stmt, int flags)
>  {
>    ssa_op_iter iter;
> @@ -750,7 +750,7 @@ zero_ssa_operands (gimple *stmt, int flags)
>
>
>  /* Return the number of operands matching FLAGS in STMT.  */
> -static inline int
> +inline int
>  num_ssa_operands (gimple *stmt, int flags)
>  {
>    ssa_op_iter iter;
> @@ -765,7 +765,7 @@ num_ssa_operands (gimple *stmt, int flags)
>
>  /* If there is a single DEF in the PHI node which matches FLAG, return it.
>     Otherwise return NULL_DEF_OPERAND_P.  */
> -static inline tree
> +inline tree
>  single_phi_def (gphi *stmt, int flags)
>  {
>    tree def = PHI_RESULT (stmt);
> @@ -778,7 +778,7 @@ single_phi_def (gphi *stmt, int flags)
>
>  /* Initialize the iterator PTR for uses matching FLAGS in PHI.  FLAGS should
>     be either SSA_OP_USES or SSA_OP_VIRTUAL_USES.  */
> -static inline use_operand_p
> +inline use_operand_p
>  op_iter_init_phiuse (ssa_op_iter *ptr, gphi *phi, int flags)
>  {
>    tree phi_def = gimple_phi_result (phi);
> @@ -808,7 +808,7 @@ op_iter_init_phiuse (ssa_op_iter *ptr, gphi *phi, int flags)
>
>  /* Start an iterator for a PHI definition.  */
>
> -static inline def_operand_p
> +inline def_operand_p
>  op_iter_init_phidef (ssa_op_iter *ptr, gphi *phi, int flags)
>  {
>    tree phi_def = PHI_RESULT (phi);
> @@ -838,7 +838,7 @@ op_iter_init_phidef (ssa_op_iter *ptr, gphi *phi, int flags)
>
>  /* Return true is IMM has reached the end of the immediate use stmt list.  */
>
> -static inline bool
> +inline bool
>  end_imm_use_stmt_p (const imm_use_iterator *imm)
>  {
>    return (imm->imm_use == imm->end_p);
> @@ -847,7 +847,7 @@ end_imm_use_stmt_p (const imm_use_iterator *imm)
>  /* Finished the traverse of an immediate use stmt list IMM by removing the
>     placeholder node from the list.  */
>
> -static inline void
> +inline void
>  end_imm_use_stmt_traverse (imm_use_iterator *imm)
>  {
>    delink_imm_use (&(imm->iter_node));
> @@ -859,7 +859,7 @@ end_imm_use_stmt_traverse (imm_use_iterator *imm)
>     currently delimited by HEAD and LAST_P.  The new LAST_P value is
>     returned.  */
>
> -static inline use_operand_p
> +inline use_operand_p
>  move_use_after_head (use_operand_p use_p, use_operand_p head,
>                       use_operand_p last_p)
>  {
> @@ -885,7 +885,7 @@ move_use_after_head (use_operand_p use_p, use_operand_p head,
>  /* This routine will relink all uses with the same stmt as HEAD into the list
>     immediately following HEAD for iterator IMM.  */
>
> -static inline void
> +inline void
>  link_use_stmts_after (use_operand_p head, imm_use_iterator *imm)
>  {
>    use_operand_p use_p;
> @@ -925,7 +925,7 @@ link_use_stmts_after (use_operand_p head, imm_use_iterator *imm)
>  }
>
>  /* Initialize IMM to traverse over uses of VAR.  Return the first statement.  */
> -static inline gimple *
> +inline gimple *
>  first_imm_use_stmt (imm_use_iterator *imm, tree var)
>  {
>    imm->end_p = &(SSA_NAME_IMM_USE_NODE (var));
> @@ -950,7 +950,7 @@ first_imm_use_stmt (imm_use_iterator *imm, tree var)
>
>  /* Bump IMM to the next stmt which has a use of var.  */
>
> -static inline gimple *
> +inline gimple *
>  next_imm_use_stmt (imm_use_iterator *imm)
>  {
>    imm->imm_use = imm->iter_node.next;
> @@ -968,7 +968,7 @@ next_imm_use_stmt (imm_use_iterator *imm)
>  /* This routine will return the first use on the stmt IMM currently refers
>     to.  */
>
> -static inline use_operand_p
> +inline use_operand_p
>  first_imm_use_on_stmt (imm_use_iterator *imm)
>  {
>    imm->next_imm_name = imm->imm_use->next;
> @@ -977,7 +977,7 @@ first_imm_use_on_stmt (imm_use_iterator *imm)
>
>  /*  Return TRUE if the last use on the stmt IMM refers to has been visited.  */
>
> -static inline bool
> +inline bool
>  end_imm_use_on_stmt_p (const imm_use_iterator *imm)
>  {
>    return (imm->imm_use == &(imm->iter_node));
> @@ -985,7 +985,7 @@ end_imm_use_on_stmt_p (const imm_use_iterator *imm)
>
>  /* Bump to the next use on the stmt IMM refers to, return NULL if done.  */
>
> -static inline use_operand_p
> +inline use_operand_p
>  next_imm_use_on_stmt (imm_use_iterator *imm)
>  {
>    imm->imm_use = imm->next_imm_name;
> @@ -999,7 +999,7 @@ next_imm_use_on_stmt (imm_use_iterator *imm)
>  }
>
>  /* Delink all immediate_use information for STMT.  */
> -static inline void
> +inline void
>  delink_stmt_imm_use (gimple *stmt)
>  {
>     ssa_op_iter iter;
> diff --git a/gcc/system.h b/gcc/system.h
> index 5eaeb9d2d03..64cd5a49258 100644
> --- a/gcc/system.h
> +++ b/gcc/system.h
> @@ -1166,7 +1166,7 @@ extern void fancy_abort (const char *, int, const char *)
>     so does GCC 3.4.x (PR17436).  */
>  #define CONST_CAST2(TOTYPE,FROMTYPE,X) ((__extension__(union {FROMTYPE _q; TOTYPE _nq;})(X))._nq)
>  #elif defined(__GNUC__)
> -static inline char *
> +inline char *
>  helper_const_non_const_cast (const char *p)
>  {
>    union {
> @@ -1308,7 +1308,7 @@ void gcc_stablesort_r (void *, size_t, size_t, sort_r_cmp_fn *, void *data);
>
>  /* Return true if STR string starts with PREFIX.  */
>
> -static inline bool
> +inline bool
>  startswith (const char *str, const char *prefix)
>  {
>    return strncmp (str, prefix, strlen (prefix)) == 0;
> @@ -1316,7 +1316,7 @@ startswith (const char *str, const char *prefix)
>
>  /* Return true if STR string ends with SUFFIX.  */
>
> -static inline bool
> +inline bool
>  endswith (const char *str, const char *suffix)
>  {
>    size_t str_len = strlen (str);
> diff --git a/gcc/target-globals.h b/gcc/target-globals.h
> index 551b21e8a60..daedf66017f 100644
> --- a/gcc/target-globals.h
> +++ b/gcc/target-globals.h
> @@ -69,7 +69,7 @@ extern class target_globals default_target_globals;
>  extern class target_globals *save_target_globals (void);
>  extern class target_globals *save_target_globals_default_opts (void);
>
> -static inline void
> +inline void
>  restore_target_globals (class target_globals *g)
>  {
>    this_target_flag_state = g->flag_state;
> diff --git a/gcc/target.h b/gcc/target.h
> index 03fd03a5207..fdb364ca451 100644
> --- a/gcc/target.h
> +++ b/gcc/target.h
> @@ -279,7 +279,7 @@ extern struct gcc_target targetm;
>     runtime value is needed for correctness, since the function only
>     provides a rough guess.  */
>
> -static inline HOST_WIDE_INT
> +inline HOST_WIDE_INT
>  estimated_poly_value (poly_int64 x,
>                       poly_value_estimate_kind kind = POLY_VALUE_LIKELY)
>  {
> @@ -295,7 +295,7 @@ estimated_poly_value (poly_int64 x,
>  #define CUMULATIVE_ARGS_MAGIC ((void *) &targetm.calls)
>  #endif
>
> -static inline CUMULATIVE_ARGS *
> +inline CUMULATIVE_ARGS *
>  get_cumulative_args (cumulative_args_t arg)
>  {
>  #if CHECKING_P
> @@ -304,7 +304,7 @@ get_cumulative_args (cumulative_args_t arg)
>    return (CUMULATIVE_ARGS *) arg.p;
>  }
>
> -static inline cumulative_args_t
> +inline cumulative_args_t
>  pack_cumulative_args (CUMULATIVE_ARGS *arg)
>  {
>    cumulative_args_t ret;
> diff --git a/gcc/timevar.h b/gcc/timevar.h
> index 6f3ac370917..ad465731609 100644
> --- a/gcc/timevar.h
> +++ b/gcc/timevar.h
> @@ -206,14 +206,14 @@ class timer
>  };
>
>  /* Provided for backward compatibility.  */
> -static inline void
> +inline void
>  timevar_push (timevar_id_t tv)
>  {
>    if (g_timer)
>      g_timer->push (tv);
>  }
>
> -static inline void
> +inline void
>  timevar_pop (timevar_id_t tv)
>  {
>    if (g_timer)
> diff --git a/gcc/tree-chrec.h b/gcc/tree-chrec.h
> index 83ec0f58659..9c412dc879a 100644
> --- a/gcc/tree-chrec.h
> +++ b/gcc/tree-chrec.h
> @@ -35,7 +35,7 @@ along with GCC; see the file COPYING3.  If not see
>  /* After having added an automatically generated element, please
>     include it in the following function.  */
>
> -static inline bool
> +inline bool
>  automatically_generated_chrec_p (const_tree chrec)
>  {
>    return (chrec == chrec_dont_know
> @@ -44,7 +44,7 @@ automatically_generated_chrec_p (const_tree chrec)
>
>  /* The tree nodes aka. CHRECs.  */
>
> -static inline bool
> +inline bool
>  tree_is_chrec (const_tree expr)
>  {
>    if (TREE_CODE (expr) == POLYNOMIAL_CHREC
> @@ -96,7 +96,7 @@ extern bool evolution_function_right_is_integer_cst (const_tree);
>
>  /* Determines whether CHREC is equal to zero.  */
>
> -static inline bool
> +inline bool
>  chrec_zerop (const_tree chrec)
>  {
>    if (chrec == NULL_TREE)
> @@ -111,7 +111,7 @@ chrec_zerop (const_tree chrec)
>  /* Determines whether CHREC is a loop invariant with respect to LOOP_NUM.
>     Set the result in RES and return true when the property can be computed.  */
>
> -static inline bool
> +inline bool
>  no_evolution_in_loop_p (tree chrec, unsigned loop_num, bool *res)
>  {
>    tree scev;
> @@ -129,7 +129,7 @@ no_evolution_in_loop_p (tree chrec, unsigned loop_num, bool *res)
>
>  /* Build a polynomial chain of recurrence.  */
>
> -static inline tree
> +inline tree
>  build_polynomial_chrec (unsigned loop_num,
>                         tree left,
>                         tree right)
> @@ -167,7 +167,7 @@ build_polynomial_chrec (unsigned loop_num,
>
>  /* Determines whether the expression CHREC is a constant.  */
>
> -static inline bool
> +inline bool
>  evolution_function_is_constant_p (const_tree chrec)
>  {
>    if (chrec == NULL_TREE)
> @@ -178,7 +178,7 @@ evolution_function_is_constant_p (const_tree chrec)
>
>  /* Determine whether CHREC is an affine evolution function in LOOPNUM.  */
>
> -static inline bool
> +inline bool
>  evolution_function_is_affine_in_loop (const_tree chrec, int loopnum)
>  {
>    if (chrec == NULL_TREE)
> @@ -200,7 +200,7 @@ evolution_function_is_affine_in_loop (const_tree chrec, int loopnum)
>
>  /* Determine whether CHREC is an affine evolution function or not.  */
>
> -static inline bool
> +inline bool
>  evolution_function_is_affine_p (const_tree chrec)
>  {
>    return chrec
> @@ -213,7 +213,7 @@ evolution_function_is_affine_p (const_tree chrec)
>
>  /* Determines whether EXPR does not contains chrec expressions.  */
>
> -static inline bool
> +inline bool
>  tree_does_not_contain_chrecs (const_tree expr)
>  {
>    return !tree_contains_chrecs (expr, NULL);
> @@ -221,7 +221,7 @@ tree_does_not_contain_chrecs (const_tree expr)
>
>  /* Returns the type of the chrec.  */
>
> -static inline tree
> +inline tree
>  chrec_type (const_tree chrec)
>  {
>    if (automatically_generated_chrec_p (chrec))
> @@ -230,7 +230,7 @@ chrec_type (const_tree chrec)
>    return TREE_TYPE (chrec);
>  }
>
> -static inline tree
> +inline tree
>  chrec_fold_op (enum tree_code code, tree type, tree op0, tree op1)
>  {
>    switch (code)
> diff --git a/gcc/tree-data-ref.h b/gcc/tree-data-ref.h
> index 50718c0642a..4d1a5c4a45e 100644
> --- a/gcc/tree-data-ref.h
> +++ b/gcc/tree-data-ref.h
> @@ -592,7 +592,7 @@ extern bool dr_known_forward_stride_p (struct data_reference *);
>  /* Return true when the base objects of data references A and B are
>     the same memory object.  */
>
> -static inline bool
> +inline bool
>  same_data_refs_base_objects (data_reference_p a, data_reference_p b)
>  {
>    return DR_NUM_DIMENSIONS (a) == DR_NUM_DIMENSIONS (b)
> @@ -603,7 +603,7 @@ same_data_refs_base_objects (data_reference_p a, data_reference_p b)
>     memory object with the same access functions.  Optionally skip the
>     last OFFSET dimensions in the data reference.  */
>
> -static inline bool
> +inline bool
>  same_data_refs (data_reference_p a, data_reference_p b, int offset = 0)
>  {
>    unsigned int i;
> @@ -641,7 +641,7 @@ known_dependences_p (vec<ddr_p> dependence_relations)
>     LEVEL = 0 means a lexicographic dependence, i.e. a dependence due
>     to the sequence of statements, not carried by any loop.  */
>
> -static inline unsigned
> +inline unsigned
>  dependence_level (lambda_vector dist_vect, int length)
>  {
>    int i;
> @@ -655,7 +655,7 @@ dependence_level (lambda_vector dist_vect, int length)
>
>  /* Return the dependence level for the DDR relation.  */
>
> -static inline unsigned
> +inline unsigned
>  ddr_dependence_level (ddr_p ddr)
>  {
>    unsigned vector;
> @@ -672,7 +672,7 @@ ddr_dependence_level (ddr_p ddr)
>
>  /* Return the index of the variable VAR in the LOOP_NEST array.  */
>
> -static inline int
> +inline int
>  index_in_loop_nest (int var, const vec<loop_p> &loop_nest)
>  {
>    class loop *loopi;
> @@ -688,7 +688,7 @@ index_in_loop_nest (int var, const vec<loop_p> &loop_nest)
>  /* Returns true when the data reference DR the form "A[i] = ..."
>     with a stride equal to its unit type size.  */
>
> -static inline bool
> +inline bool
>  adjacent_dr_p (struct data_reference *dr)
>  {
>    /* If this is a bitfield store bail out.  */
> @@ -709,7 +709,7 @@ void split_constant_offset (tree , tree *, tree *);
>
>  /* Compute the greatest common divisor of a VECTOR of SIZE numbers.  */
>
> -static inline lambda_int
> +inline lambda_int
>  lambda_vector_gcd (lambda_vector vector, int size)
>  {
>    int i;
> @@ -726,7 +726,7 @@ lambda_vector_gcd (lambda_vector vector, int size)
>
>  /* Allocate a new vector of given SIZE.  */
>
> -static inline lambda_vector
> +inline lambda_vector
>  lambda_vector_new (int size)
>  {
>    /* ???  We shouldn't abuse the GC allocator here.  */
> @@ -735,7 +735,7 @@ lambda_vector_new (int size)
>
>  /* Clear out vector VEC1 of length SIZE.  */
>
> -static inline void
> +inline void
>  lambda_vector_clear (lambda_vector vec1, int size)
>  {
>    memset (vec1, 0, size * sizeof (*vec1));
> @@ -744,7 +744,7 @@ lambda_vector_clear (lambda_vector vec1, int size)
>  /* Returns true when the vector V is lexicographically positive, in
>     other words, when the first nonzero element is positive.  */
>
> -static inline bool
> +inline bool
>  lambda_vector_lexico_pos (lambda_vector v,
>                           unsigned n)
>  {
> @@ -763,7 +763,7 @@ lambda_vector_lexico_pos (lambda_vector v,
>
>  /* Return true if vector VEC1 of length SIZE is the zero vector.  */
>
> -static inline bool
> +inline bool
>  lambda_vector_zerop (lambda_vector vec1, int size)
>  {
>    int i;
> @@ -775,7 +775,7 @@ lambda_vector_zerop (lambda_vector vec1, int size)
>
>  /* Allocate a matrix of M rows x  N cols.  */
>
> -static inline lambda_matrix
> +inline lambda_matrix
>  lambda_matrix_new (int m, int n, struct obstack *lambda_obstack)
>  {
>    lambda_matrix mat;
> diff --git a/gcc/tree-iterator.h b/gcc/tree-iterator.h
> index d09ec7d4118..800dd2e9c0e 100644
> --- a/gcc/tree-iterator.h
> +++ b/gcc/tree-iterator.h
> @@ -49,7 +49,7 @@ struct tree_stmt_iterator {
>    tree operator* () const { return ptr->stmt; }
>  };
>
> -static inline tree_stmt_iterator
> +inline tree_stmt_iterator
>  tsi_start (tree t)
>  {
>    tree_stmt_iterator i;
> @@ -60,7 +60,7 @@ tsi_start (tree t)
>    return i;
>  }
>
> -static inline tree_stmt_iterator
> +inline tree_stmt_iterator
>  tsi_last (tree t)
>  {
>    tree_stmt_iterator i;
> @@ -71,37 +71,37 @@ tsi_last (tree t)
>    return i;
>  }
>
> -static inline bool
> +inline bool
>  tsi_end_p (tree_stmt_iterator i)
>  {
>    return i.ptr == NULL;
>  }
>
> -static inline bool
> +inline bool
>  tsi_one_before_end_p (tree_stmt_iterator i)
>  {
>    return i.ptr != NULL && i.ptr->next == NULL;
>  }
>
> -static inline void
> +inline void
>  tsi_next (tree_stmt_iterator *i)
>  {
>    ++(*i);
>  }
>
> -static inline void
> +inline void
>  tsi_prev (tree_stmt_iterator *i)
>  {
>    --(*i);
>  }
>
> -static inline tree *
> +inline tree *
>  tsi_stmt_ptr (tree_stmt_iterator i)
>  {
>    return &(*i);
>  }
>
> -static inline tree
> +inline tree
>  tsi_stmt (tree_stmt_iterator i)
>  {
>    return *i;
> diff --git a/gcc/tree-outof-ssa.h b/gcc/tree-outof-ssa.h
> index 75264ed2b8a..d69c5a7e68d 100644
> --- a/gcc/tree-outof-ssa.h
> +++ b/gcc/tree-outof-ssa.h
> @@ -53,7 +53,7 @@ extern struct ssaexpand SA;
>
>  /* Returns the RTX expression representing the storage of the outof-SSA
>     partition that the SSA name EXP is a member of.  */
> -static inline rtx
> +inline rtx
>  get_rtx_for_ssa_name (tree exp)
>  {
>    int p = partition_find (SA.map->var_partition, SSA_NAME_VERSION (exp));
> @@ -65,7 +65,7 @@ get_rtx_for_ssa_name (tree exp)
>
>  /* If TER decided to forward the definition of SSA name EXP this function
>     returns the defining statement, otherwise NULL.  */
> -static inline gimple *
> +inline gimple *
>  get_gimple_for_ssa_name (tree exp)
>  {
>    int v = SSA_NAME_VERSION (exp);
> diff --git a/gcc/tree-phinodes.h b/gcc/tree-phinodes.h
> index 29b2143589b..932a461e987 100644
> --- a/gcc/tree-phinodes.h
> +++ b/gcc/tree-phinodes.h
> @@ -31,7 +31,7 @@ extern void remove_phi_nodes (basic_block);
>  extern tree degenerate_phi_result (gphi *);
>  extern void set_phi_nodes (basic_block, gimple_seq);
>
> -static inline use_operand_p
> +inline use_operand_p
>  gimple_phi_arg_imm_use_ptr (gimple *gs, int i)
>  {
>    return &gimple_phi_arg (gs, i)->imm_use;
> @@ -39,7 +39,7 @@ gimple_phi_arg_imm_use_ptr (gimple *gs, int i)
>
>  /* Return the phi argument which contains the specified use.  */
>
> -static inline int
> +inline int
>  phi_arg_index_from_use (use_operand_p use)
>  {
>    struct phi_arg_d *element, *root;
> diff --git a/gcc/tree-scalar-evolution.h b/gcc/tree-scalar-evolution.h
> index d26bfc7ba79..c58a8a16e81 100644
> --- a/gcc/tree-scalar-evolution.h
> +++ b/gcc/tree-scalar-evolution.h
> @@ -46,7 +46,7 @@ extern tree compute_overall_effect_of_inner_loop (class loop *, tree);
>  /* Returns the basic block preceding LOOP, or the CFG entry block when
>     the loop is function's body.  */
>
> -static inline basic_block
> +inline basic_block
>  block_before_loop (loop_p loop)
>  {
>    edge preheader = loop_preheader_edge (loop);
> @@ -57,7 +57,7 @@ block_before_loop (loop_p loop)
>     symbolic form.  LOOP is the loop in which symbolic names have to
>     be analyzed and instantiated.  */
>
> -static inline tree
> +inline tree
>  instantiate_parameters (class loop *loop, tree chrec)
>  {
>    return instantiate_scev (loop_preheader_edge (loop), loop, chrec);
> @@ -65,7 +65,7 @@ instantiate_parameters (class loop *loop, tree chrec)
>
>  /* Returns the loop of the polynomial chrec CHREC.  */
>
> -static inline class loop *
> +inline class loop *
>  get_chrec_loop (const_tree chrec)
>  {
>    return get_loop (cfun, CHREC_VARIABLE (chrec));
> diff --git a/gcc/tree-sra.h b/gcc/tree-sra.h
> index e817d0cdd6d..f20266c4622 100644
> --- a/gcc/tree-sra.h
> +++ b/gcc/tree-sra.h
> @@ -24,7 +24,7 @@ bool type_internals_preclude_sra_p (tree type, const char **msg);
>  /* Return true iff TYPE is stdarg va_list type (which early SRA and IPA-SRA
>     should leave alone).  */
>
> -static inline bool
> +inline bool
>  is_va_list_type (tree type)
>  {
>    return TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (va_list_type_node);
> diff --git a/gcc/tree-ssa-alias.h b/gcc/tree-ssa-alias.h
> index ac676422e41..dce27323247 100644
> --- a/gcc/tree-ssa-alias.h
> +++ b/gcc/tree-ssa-alias.h
> @@ -186,7 +186,7 @@ extern GTY(()) struct pt_solution ipa_escaped_pt;
>     overlap.  SIZE1 and/or SIZE2 can be (unsigned)-1 in which case the
>     range is open-ended.  Otherwise return false.  */
>
> -static inline bool
> +inline bool
>  ranges_overlap_p (HOST_WIDE_INT pos1,
>                   unsigned HOST_WIDE_INT size1,
>                   HOST_WIDE_INT pos2,
> diff --git a/gcc/tree-ssa-live.h b/gcc/tree-ssa-live.h
> index 33d35496df6..de665d6bad0 100644
> --- a/gcc/tree-ssa-live.h
> +++ b/gcc/tree-ssa-live.h
> @@ -109,7 +109,7 @@ region_contains_p (var_map map, basic_block bb)
>
>  /* Return number of partitions in MAP.  */
>
> -static inline unsigned
> +inline unsigned
>  num_var_partitions (var_map map)
>  {
>    return map->num_partitions;
> @@ -119,7 +119,7 @@ num_var_partitions (var_map map)
>  /* Given partition index I from MAP, return the variable which represents that
>     partition.  */
>
> -static inline tree
> +inline tree
>  partition_to_var (var_map map, int i)
>  {
>    tree name;
> @@ -134,7 +134,7 @@ partition_to_var (var_map map, int i)
>  /* Given ssa_name VERSION, if it has a partition in MAP,  return the var it
>     is associated with.  Otherwise return NULL.  */
>
> -static inline tree
> +inline tree
>  version_to_var (var_map map, int version)
>  {
>    int part;
> @@ -151,7 +151,7 @@ version_to_var (var_map map, int version)
>  /* Given VAR, return the partition number in MAP which contains it.
>     NO_PARTITION is returned if it's not in any partition.  */
>
> -static inline int
> +inline int
>  var_to_partition (var_map map, tree var)
>  {
>    int part;
> @@ -166,7 +166,7 @@ var_to_partition (var_map map, tree var)
>  /* Given VAR, return the variable which represents the entire partition
>     it is a member of in MAP.  NULL is returned if it is not in a partition.  */
>
> -static inline tree
> +inline tree
>  var_to_partition_to_var (var_map map, tree var)
>  {
>    int part;
> @@ -180,7 +180,7 @@ var_to_partition_to_var (var_map map, tree var)
>
>  /* Return the index into the basevar table for PARTITION's base in MAP.  */
>
> -static inline int
> +inline int
>  basevar_index (var_map map, int partition)
>  {
>    gcc_checking_assert (partition >= 0
> @@ -191,7 +191,7 @@ basevar_index (var_map map, int partition)
>
>  /* Return the number of different base variables in MAP.  */
>
> -static inline int
> +inline int
>  num_basevars (var_map map)
>  {
>    return map->num_basevars;
> @@ -274,7 +274,7 @@ extern void destroy_live_vars (vec<bitmap_head> &);
>
>  /*  Return TRUE if P is marked as a global in LIVE.  */
>
> -static inline int
> +inline int
>  partition_is_global (tree_live_info_p live, int p)
>  {
>    gcc_checking_assert (live->global);
> @@ -285,7 +285,7 @@ partition_is_global (tree_live_info_p live, int p)
>  /* Return the bitmap from LIVE representing the live on entry blocks for
>     partition P.  */
>
> -static inline bitmap
> +inline bitmap
>  live_on_entry (tree_live_info_p live, basic_block bb)
>  {
>    gcc_checking_assert (live->livein
> @@ -299,7 +299,7 @@ live_on_entry (tree_live_info_p live, basic_block bb)
>  /* Return the bitmap from LIVE representing the live on exit partitions from
>     block BB.  */
>
> -static inline bitmap
> +inline bitmap
>  live_on_exit (tree_live_info_p live, basic_block bb)
>  {
>    gcc_checking_assert (live->liveout
> @@ -312,7 +312,7 @@ live_on_exit (tree_live_info_p live, basic_block bb)
>
>  /* Return the partition map which the information in LIVE utilizes.  */
>
> -static inline var_map
> +inline var_map
>  live_var_map (tree_live_info_p live)
>  {
>    return live->map;
> @@ -321,7 +321,7 @@ live_var_map (tree_live_info_p live)
>
>  /* Mark partition P as live on entry to basic block BB in LIVE.  */
>
> -static inline void
> +inline void
>  make_live_on_entry (tree_live_info_p live, basic_block bb , int p)
>  {
>    bitmap_set_bit (&live->livein[bb->index], p);
> diff --git a/gcc/tree-ssa-loop-manip.h b/gcc/tree-ssa-loop-manip.h
> index f0b1ed00f9a..d49273a3987 100644
> --- a/gcc/tree-ssa-loop-manip.h
> +++ b/gcc/tree-ssa-loop-manip.h
> @@ -27,7 +27,7 @@ extern void create_iv (tree, tree, tree, class loop *, gimple_stmt_iterator *,
>  extern void rewrite_into_loop_closed_ssa (bitmap, unsigned);
>  extern void verify_loop_closed_ssa (bool, class loop * = NULL);
>
> -static inline void
> +inline void
>  checking_verify_loop_closed_ssa (bool verify_ssa_p, class loop *loop = NULL)
>  {
>    if (flag_checking)
> diff --git a/gcc/tree-ssa-loop.h b/gcc/tree-ssa-loop.h
> index d42ccd455f0..3fd4cd45466 100644
> --- a/gcc/tree-ssa-loop.h
> +++ b/gcc/tree-ssa-loop.h
> @@ -71,7 +71,7 @@ extern unsigned tree_num_loop_insns (class loop *, struct eni_weights *);
>
>  /* Returns the loop of the statement STMT.  */
>
> -static inline class loop *
> +inline class loop *
>  loop_containing_stmt (gimple *stmt)
>  {
>    basic_block bb = gimple_bb (stmt);
> diff --git a/gcc/tree-ssa-operands.h b/gcc/tree-ssa-operands.h
> index 946cd95f125..ae36bcdb893 100644
> --- a/gcc/tree-ssa-operands.h
> +++ b/gcc/tree-ssa-operands.h
> @@ -106,14 +106,14 @@ extern void debug_immediate_uses_for (tree var);
>  extern void unlink_stmt_vdef (gimple *);
>
>  /* Return the tree pointed-to by USE.  */
> -static inline tree
> +inline tree
>  get_use_from_ptr (use_operand_p use)
>  {
>    return *(use->use);
>  }
>
>  /* Return the tree pointed-to by DEF.  */
> -static inline tree
> +inline tree
>  get_def_from_ptr (def_operand_p def)
>  {
>    return *def;
> diff --git a/gcc/tree-ssa-propagate.h b/gcc/tree-ssa-propagate.h
> index c9921e56971..be4cb457873 100644
> --- a/gcc/tree-ssa-propagate.h
> +++ b/gcc/tree-ssa-propagate.h
> @@ -26,7 +26,7 @@ along with GCC; see the file COPYING3.  If not see
>
>  /* If SIM_P is true, statement S will be simulated again.  */
>
> -static inline void
> +inline void
>  prop_set_simulate_again (gimple *s, bool visit_p)
>  {
>    gimple_set_visited (s, visit_p);
> @@ -34,7 +34,7 @@ prop_set_simulate_again (gimple *s, bool visit_p)
>
>  /* Return true if statement T should be simulated again.  */
>
> -static inline bool
> +inline bool
>  prop_simulate_again_p (gimple *s)
>  {
>    return gimple_visited_p (s);
> diff --git a/gcc/tree-ssa-sccvn.h b/gcc/tree-ssa-sccvn.h
> index a6f5973a368..675240ebb9d 100644
> --- a/gcc/tree-ssa-sccvn.h
> +++ b/gcc/tree-ssa-sccvn.h
> @@ -68,7 +68,7 @@ typedef const struct vn_nary_op_s *const_vn_nary_op_t;
>
>  /* Return the size of a vn_nary_op_t with LENGTH operands.  */
>
> -static inline size_t
> +inline size_t
>  sizeof_vn_nary_op (unsigned int length)
>  {
>    return sizeof (struct vn_nary_op_s) + sizeof (tree) * length - sizeof (tree);
> @@ -166,7 +166,7 @@ enum vn_kind vn_get_stmt_kind (gimple *);
>  /* Hash the type TYPE using bits that distinguishes it in the
>     types_compatible_p sense.  */
>
> -static inline hashval_t
> +inline hashval_t
>  vn_hash_type (tree type)
>  {
>    return (INTEGRAL_TYPE_P (type)
> @@ -177,7 +177,7 @@ vn_hash_type (tree type)
>  /* Hash the constant CONSTANT with distinguishing type incompatible
>     constants in the types_compatible_p sense.  */
>
> -static inline hashval_t
> +inline hashval_t
>  vn_hash_constant_with_type (tree constant)
>  {
>    inchash::hash hstate;
> @@ -189,7 +189,7 @@ vn_hash_constant_with_type (tree constant)
>  /* Compare the constants C1 and C2 with distinguishing type incompatible
>     constants in the types_compatible_p sense.  */
>
> -static inline bool
> +inline bool
>  vn_constant_eq_with_type (tree c1, tree c2)
>  {
>    return (expressions_equal_p (c1, c2)
> @@ -286,7 +286,7 @@ unsigned int get_constant_value_id (tree);
>  unsigned int get_or_alloc_constant_value_id (tree);
>
>  /* Return true if V is a value id for a constant.  */
> -static inline bool
> +inline bool
>  value_id_constant_p (unsigned int v)
>  {
>    return (int)v < 0;
> diff --git a/gcc/tree-ssa.h b/gcc/tree-ssa.h
> index 2153cefd226..fa8c8082311 100644
> --- a/gcc/tree-ssa.h
> +++ b/gcc/tree-ssa.h
> @@ -63,7 +63,7 @@ extern void mark_ssa_maybe_undefs (void);
>  /* Return TRUE iff VAR is marked as maybe-undefined.  See
>     mark_ssa_maybe_undefs.  */
>
> -static inline bool
> +inline bool
>  ssa_name_maybe_undef_p (tree var)
>  {
>    gcc_checking_assert (TREE_CODE (var) == SSA_NAME);
> @@ -72,7 +72,7 @@ ssa_name_maybe_undef_p (tree var)
>
>  /* Set (or clear, depending on VALUE) VAR's maybe-undefined mark.  */
>
> -static inline void
> +inline void
>  ssa_name_set_maybe_undef (tree var, bool value = true)
>  {
>    gcc_checking_assert (TREE_CODE (var) == SSA_NAME);
> @@ -84,7 +84,7 @@ extern void execute_update_addresses_taken (void);
>
>  /* Given an edge_var_map V, return the PHI arg definition.  */
>
> -static inline tree
> +inline tree
>  redirect_edge_var_map_def (edge_var_map *v)
>  {
>    return v->def;
> @@ -92,7 +92,7 @@ redirect_edge_var_map_def (edge_var_map *v)
>
>  /* Given an edge_var_map V, return the PHI result.  */
>
> -static inline tree
> +inline tree
>  redirect_edge_var_map_result (edge_var_map *v)
>  {
>    return v->result;
> @@ -100,7 +100,7 @@ redirect_edge_var_map_result (edge_var_map *v)
>
>  /* Given an edge_var_map V, return the PHI arg location.  */
>
> -static inline location_t
> +inline location_t
>  redirect_edge_var_map_location (edge_var_map *v)
>  {
>    return v->locus;
> @@ -108,7 +108,7 @@ redirect_edge_var_map_location (edge_var_map *v)
>
>  /* Verify SSA invariants, if internal consistency checks are enabled.  */
>
> -static inline void
> +inline void
>  checking_verify_ssa (bool check_modified_stmt, bool check_ssa_operands)
>  {
>    if (flag_checking)
> diff --git a/gcc/tree-ssanames.h b/gcc/tree-ssanames.h
> index b45b37b43e7..b09e71bf779 100644
> --- a/gcc/tree-ssanames.h
> +++ b/gcc/tree-ssanames.h
> @@ -91,7 +91,7 @@ extern void flush_ssaname_freelist (void);
>  /* Return an SSA_NAME node for variable VAR defined in statement STMT
>     in function cfun.  */
>
> -static inline tree
> +inline tree
>  make_ssa_name (tree var, gimple *stmt = NULL)
>  {
>    return make_ssa_name_fn (cfun, var, stmt);
> @@ -100,7 +100,7 @@ make_ssa_name (tree var, gimple *stmt = NULL)
>  /* Return an SSA_NAME node using the template SSA name NAME defined in
>     statement STMT in function cfun.  */
>
> -static inline tree
> +inline tree
>  copy_ssa_name (tree var, gimple *stmt = NULL)
>  {
>    return copy_ssa_name_fn (cfun, var, stmt);
> @@ -109,7 +109,7 @@ copy_ssa_name (tree var, gimple *stmt = NULL)
>  /*  Creates a duplicate of a SSA name NAME tobe defined by statement STMT
>      in function cfun.  */
>
> -static inline tree
> +inline tree
>  duplicate_ssa_name (tree var, gimple *stmt)
>  {
>    return duplicate_ssa_name_fn (cfun, var, stmt);
> @@ -117,7 +117,7 @@ duplicate_ssa_name (tree var, gimple *stmt)
>
>  /* Release the SSA name NAME used in function cfun.  */
>
> -static inline void
> +inline void
>  release_ssa_name (tree name)
>  {
>    release_ssa_name_fn (cfun, name);
> @@ -126,7 +126,7 @@ release_ssa_name (tree name)
>  /* Return an anonymous SSA_NAME node for type TYPE defined in statement STMT
>     in function cfun.  Arrange so that it uses NAME in dumps.  */
>
> -static inline tree
> +inline tree
>  make_temp_ssa_name (tree type, gimple *stmt, const char *name)
>  {
>    tree ssa_name;
> diff --git a/gcc/tree-streamer.h b/gcc/tree-streamer.h
> index acca901d660..170d61cf20b 100644
> --- a/gcc/tree-streamer.h
> +++ b/gcc/tree-streamer.h
> @@ -90,7 +90,7 @@ void streamer_tree_cache_delete (struct streamer_tree_cache_d *);
>
>  /* Return the tree node at slot IX in CACHE.  */
>
> -static inline tree
> +inline tree
>  streamer_tree_cache_get_tree (struct streamer_tree_cache_d *cache, unsigned ix)
>  {
>    return cache->nodes[ix];
> @@ -98,20 +98,20 @@ streamer_tree_cache_get_tree (struct streamer_tree_cache_d *cache, unsigned ix)
>
>  /* Return the tree hash value at slot IX in CACHE.  */
>
> -static inline hashval_t
> +inline hashval_t
>  streamer_tree_cache_get_hash (struct streamer_tree_cache_d *cache, unsigned ix)
>  {
>    return cache->hashes[ix];
>  }
>
> -static inline void
> +inline void
>  bp_pack_machine_mode (struct bitpack_d *bp, machine_mode mode)
>  {
>    streamer_mode_table[mode] = 1;
>    bp_pack_enum (bp, machine_mode, 1 << 8, mode);
>  }
>
> -static inline machine_mode
> +inline machine_mode
>  bp_unpack_machine_mode (struct bitpack_d *bp)
>  {
>    return (machine_mode)
> diff --git a/gcc/tree-switch-conversion.h b/gcc/tree-switch-conversion.h
> index 07b11a998a5..4e97164e0ef 100644
> --- a/gcc/tree-switch-conversion.h
> +++ b/gcc/tree-switch-conversion.h
> @@ -914,7 +914,7 @@ switch_decision_tree::reset_out_edges_aux (gswitch *swtch)
>
>  /* Release CLUSTERS vector and destruct all dynamically allocated items.  */
>
> -static inline void
> +inline void
>  release_clusters (vec<cluster *> &clusters)
>  {
>    for (unsigned i = 0; i < clusters.length (); i++)
> diff --git a/gcc/tree-vectorizer.h b/gcc/tree-vectorizer.h
> index a2aa71bedc0..87851080758 100644
> --- a/gcc/tree-vectorizer.h
> +++ b/gcc/tree-vectorizer.h
> @@ -969,7 +969,7 @@ public:
>     stack.  */
>  typedef opt_pointer_wrapper <loop_vec_info> opt_loop_vec_info;
>
> -static inline loop_vec_info
> +inline loop_vec_info
>  loop_vec_info_for_loop (class loop *loop)
>  {
>    return (loop_vec_info) loop->aux;
> @@ -1641,7 +1641,7 @@ vector_costs::suggested_unroll_factor () const
>         && TYPE_PRECISION (TYPE) == 1           \
>         && TYPE_UNSIGNED (TYPE)))
>
> -static inline bool
> +inline bool
>  nested_in_vect_loop_p (class loop *loop, stmt_vec_info stmt_info)
>  {
>    return (loop->inner
> @@ -1652,7 +1652,7 @@ nested_in_vect_loop_p (class loop *loop, stmt_vec_info stmt_info)
>     Return the initial value of the variable on entry to the containing
>     loop.  */
>
> -static inline tree
> +inline tree
>  vect_phi_initial_value (gphi *phi)
>  {
>    basic_block bb = gimple_bb (phi);
> @@ -1664,7 +1664,7 @@ vect_phi_initial_value (gphi *phi)
>  /* Return true if STMT_INFO should produce a vector mask type rather than
>     a normal nonmask type.  */
>
> -static inline bool
> +inline bool
>  vect_use_mask_type_p (stmt_vec_info stmt_info)
>  {
>    return stmt_info->mask_precision && stmt_info->mask_precision != ~0U;
> @@ -1673,7 +1673,7 @@ vect_use_mask_type_p (stmt_vec_info stmt_info)
>  /* Return TRUE if a statement represented by STMT_INFO is a part of a
>     pattern.  */
>
> -static inline bool
> +inline bool
>  is_pattern_stmt_p (stmt_vec_info stmt_info)
>  {
>    return stmt_info->pattern_stmt_p;
> @@ -1692,7 +1692,7 @@ vect_orig_stmt (stmt_vec_info stmt_info)
>
>  /* Return the later statement between STMT1_INFO and STMT2_INFO.  */
>
> -static inline stmt_vec_info
> +inline stmt_vec_info
>  get_later_stmt (stmt_vec_info stmt1_info, stmt_vec_info stmt2_info)
>  {
>    if (gimple_uid (vect_orig_stmt (stmt1_info)->stmt)
> @@ -1715,7 +1715,7 @@ vect_stmt_to_vectorize (stmt_vec_info stmt_info)
>
>  /* Return true if BB is a loop header.  */
>
> -static inline bool
> +inline bool
>  is_loop_header_bb_p (basic_block bb)
>  {
>    if (bb == (bb->loop_father)->header)
> @@ -1726,7 +1726,7 @@ is_loop_header_bb_p (basic_block bb)
>
>  /* Return pow2 (X).  */
>
> -static inline int
> +inline int
>  vect_pow2 (int x)
>  {
>    int i, res = 1;
> @@ -1739,7 +1739,7 @@ vect_pow2 (int x)
>
>  /* Alias targetm.vectorize.builtin_vectorization_cost.  */
>
> -static inline int
> +inline int
>  builtin_vectorization_cost (enum vect_cost_for_stmt type_of_cost,
>                             tree vectype, int misalign)
>  {
> @@ -1749,7 +1749,7 @@ builtin_vectorization_cost (enum vect_cost_for_stmt type_of_cost,
>
>  /* Get cost by calling cost target builtin.  */
>
> -static inline
> +inline
>  int vect_get_stmt_cost (enum vect_cost_for_stmt type_of_cost)
>  {
>    return builtin_vectorization_cost (type_of_cost, NULL, 0);
> @@ -1757,7 +1757,7 @@ int vect_get_stmt_cost (enum vect_cost_for_stmt type_of_cost)
>
>  /* Alias targetm.vectorize.init_cost.  */
>
> -static inline vector_costs *
> +inline vector_costs *
>  init_cost (vec_info *vinfo, bool costing_for_scalar)
>  {
>    return targetm.vectorize.create_costs (vinfo, costing_for_scalar);
> @@ -1769,7 +1769,7 @@ extern void dump_stmt_cost (FILE *, int, enum vect_cost_for_stmt,
>
>  /* Alias targetm.vectorize.add_stmt_cost.  */
>
> -static inline unsigned
> +inline unsigned
>  add_stmt_cost (vector_costs *costs, int count,
>                enum vect_cost_for_stmt kind,
>                stmt_vec_info stmt_info, slp_tree node,
> @@ -1784,7 +1784,7 @@ add_stmt_cost (vector_costs *costs, int count,
>    return cost;
>  }
>
> -static inline unsigned
> +inline unsigned
>  add_stmt_cost (vector_costs *costs, int count, enum vect_cost_for_stmt kind,
>                enum vect_cost_model_location where)
>  {
> @@ -1795,7 +1795,7 @@ add_stmt_cost (vector_costs *costs, int count, enum vect_cost_for_stmt kind,
>
>  /* Alias targetm.vectorize.add_stmt_cost.  */
>
> -static inline unsigned
> +inline unsigned
>  add_stmt_cost (vector_costs *costs, stmt_info_for_cost *i)
>  {
>    return add_stmt_cost (costs, i->count, i->kind, i->stmt_info, i->node,
> @@ -1804,7 +1804,7 @@ add_stmt_cost (vector_costs *costs, stmt_info_for_cost *i)
>
>  /* Alias targetm.vectorize.finish_cost.  */
>
> -static inline void
> +inline void
>  finish_cost (vector_costs *costs, const vector_costs *scalar_costs,
>              unsigned *prologue_cost, unsigned *body_cost,
>              unsigned *epilogue_cost, unsigned *suggested_unroll_factor = NULL)
> @@ -1845,7 +1845,7 @@ extern int dr_misalignment (dr_vec_info *dr_info, tree vectype,
>  #define SET_DR_MISALIGNMENT(DR, VAL) set_dr_misalignment (DR, VAL)
>
>  /* Only defined once DR_MISALIGNMENT is defined.  */
> -static inline const poly_uint64
> +inline const poly_uint64
>  dr_target_alignment (dr_vec_info *dr_info)
>  {
>    if (STMT_VINFO_GROUPED_ACCESS (dr_info->stmt))
> @@ -1854,7 +1854,7 @@ dr_target_alignment (dr_vec_info *dr_info)
>  }
>  #define DR_TARGET_ALIGNMENT(DR) dr_target_alignment (DR)
>
> -static inline void
> +inline void
>  set_dr_target_alignment (dr_vec_info *dr_info, poly_uint64 val)
>  {
>    dr_info->target_alignment = val;
> @@ -1864,7 +1864,7 @@ set_dr_target_alignment (dr_vec_info *dr_info, poly_uint64 val)
>  /* Return true if data access DR_INFO is aligned to the targets
>     preferred alignment for VECTYPE (which may be less than a full vector).  */
>
> -static inline bool
> +inline bool
>  aligned_access_p (dr_vec_info *dr_info, tree vectype)
>  {
>    return (dr_misalignment (dr_info, vectype) == 0);
> @@ -1874,7 +1874,7 @@ aligned_access_p (dr_vec_info *dr_info, tree vectype)
>     respect to the targets preferred alignment for VECTYPE, and FALSE
>     otherwise.  */
>
> -static inline bool
> +inline bool
>  known_alignment_for_access_p (dr_vec_info *dr_info, tree vectype)
>  {
>    return (dr_misalignment (dr_info, vectype) != DR_MISALIGNMENT_UNKNOWN);
> @@ -1883,7 +1883,7 @@ known_alignment_for_access_p (dr_vec_info *dr_info, tree vectype)
>  /* Return the minimum alignment in bytes that the vectorized version
>     of DR_INFO is guaranteed to have.  */
>
> -static inline unsigned int
> +inline unsigned int
>  vect_known_alignment_in_bytes (dr_vec_info *dr_info, tree vectype)
>  {
>    int misalignment = dr_misalignment (dr_info, vectype);
> @@ -1898,7 +1898,7 @@ vect_known_alignment_in_bytes (dr_vec_info *dr_info, tree vectype)
>     (which for outer loop vectorization might not be the behavior recorded
>     in DR_INFO itself).  */
>
> -static inline innermost_loop_behavior *
> +inline innermost_loop_behavior *
>  vect_dr_behavior (vec_info *vinfo, dr_vec_info *dr_info)
>  {
>    stmt_vec_info stmt_info = dr_info->stmt;
> @@ -1936,7 +1936,7 @@ get_dr_vinfo_offset (vec_info *vinfo,
>
>
>  /* Return the vect cost model for LOOP.  */
> -static inline enum vect_cost_model
> +inline enum vect_cost_model
>  loop_cost_model (loop_p loop)
>  {
>    if (loop != NULL
> @@ -1947,7 +1947,7 @@ loop_cost_model (loop_p loop)
>  }
>
>  /* Return true if the vect cost model is unlimited.  */
> -static inline bool
> +inline bool
>  unlimited_cost_model (loop_p loop)
>  {
>    return loop_cost_model (loop) == VECT_COST_MODEL_UNLIMITED;
> @@ -1957,7 +1957,7 @@ unlimited_cost_model (loop_p loop)
>     if the first iteration should use a partial mask in order to achieve
>     alignment.  */
>
> -static inline bool
> +inline bool
>  vect_use_loop_mask_for_alignment_p (loop_vec_info loop_vinfo)
>  {
>    return (LOOP_VINFO_FULLY_MASKED_P (loop_vinfo)
> @@ -1968,7 +1968,7 @@ vect_use_loop_mask_for_alignment_p (loop_vec_info loop_vinfo)
>     NUNITS elements.  NUNITS should be based on the vectorization factor,
>     so it is always a known multiple of the number of elements in VECTYPE.  */
>
> -static inline unsigned int
> +inline unsigned int
>  vect_get_num_vectors (poly_uint64 nunits, tree vectype)
>  {
>    return exact_div (nunits, TYPE_VECTOR_SUBPARTS (vectype)).to_constant ();
> @@ -1979,7 +1979,7 @@ vect_get_num_vectors (poly_uint64 nunits, tree vectype)
>     vectorization factor divided by the number of elements in
>     VECTYPE and is always known at compile time.  */
>
> -static inline unsigned int
> +inline unsigned int
>  vect_get_num_copies (loop_vec_info loop_vinfo, tree vectype)
>  {
>    return vect_get_num_vectors (LOOP_VINFO_VECT_FACTOR (loop_vinfo), vectype);
> @@ -1988,7 +1988,7 @@ vect_get_num_copies (loop_vec_info loop_vinfo, tree vectype)
>  /* Update maximum unit count *MAX_NUNITS so that it accounts for
>     NUNITS.  *MAX_NUNITS can be 1 if we haven't yet recorded anything.  */
>
> -static inline void
> +inline void
>  vect_update_max_nunits (poly_uint64 *max_nunits, poly_uint64 nunits)
>  {
>    /* All unit counts have the form vec_info::vector_size * X for some
> @@ -2001,7 +2001,7 @@ vect_update_max_nunits (poly_uint64 *max_nunits, poly_uint64 nunits)
>     the number of units in vector type VECTYPE.  *MAX_NUNITS can be 1
>     if we haven't yet recorded any vector types.  */
>
> -static inline void
> +inline void
>  vect_update_max_nunits (poly_uint64 *max_nunits, tree vectype)
>  {
>    vect_update_max_nunits (max_nunits, TYPE_VECTOR_SUBPARTS (vectype));
> @@ -2012,7 +2012,7 @@ vect_update_max_nunits (poly_uint64 *max_nunits, tree vectype)
>     Pick a reasonable estimate if the vectorization factor isn't
>     known at compile time.  */
>
> -static inline unsigned int
> +inline unsigned int
>  vect_vf_for_cost (loop_vec_info loop_vinfo)
>  {
>    return estimated_poly_value (LOOP_VINFO_VECT_FACTOR (loop_vinfo));
> @@ -2022,7 +2022,7 @@ vect_vf_for_cost (loop_vec_info loop_vinfo)
>     Pick a reasonable estimate if the exact number isn't known at
>     compile time.  */
>
> -static inline unsigned int
> +inline unsigned int
>  vect_nunits_for_cost (tree vec_type)
>  {
>    return estimated_poly_value (TYPE_VECTOR_SUBPARTS (vec_type));
> @@ -2030,7 +2030,7 @@ vect_nunits_for_cost (tree vec_type)
>
>  /* Return the maximum possible vectorization factor for LOOP_VINFO.  */
>
> -static inline unsigned HOST_WIDE_INT
> +inline unsigned HOST_WIDE_INT
>  vect_max_vf (loop_vec_info loop_vinfo)
>  {
>    unsigned HOST_WIDE_INT vf;
> @@ -2160,7 +2160,7 @@ extern unsigned record_stmt_cost (stmt_vector_for_cost *, int,
>
>  /* Overload of record_stmt_cost with VECTYPE derived from STMT_INFO.  */
>
> -static inline unsigned
> +inline unsigned
>  record_stmt_cost (stmt_vector_for_cost *body_cost_vec, int count,
>                   enum vect_cost_for_stmt kind, stmt_vec_info stmt_info,
>                   int misalign, enum vect_cost_model_location where)
> diff --git a/gcc/tree.h b/gcc/tree.h
> index c656cd5b7bf..92ac0e6a214 100644
> --- a/gcc/tree.h
> +++ b/gcc/tree.h
> @@ -1280,7 +1280,7 @@ extern void omp_clause_range_check_failed (const_tree, const char *, int,
>     location.  */
>  #define CAN_HAVE_LOCATION_P(NODE) ((NODE) && EXPR_P (NODE))
>
> -static inline source_range
> +inline source_range
>  get_expr_source_range (tree expr)
>  {
>    location_t loc = EXPR_LOCATION (expr);
> @@ -3263,7 +3263,7 @@ extern void decl_fini_priority_insert (tree, priority_type);
>  /* Set decl_type of a DECL.  Set it to T when SET is true, or reset
>     it to NONE.  */
>
> -static inline void
> +inline void
>  set_function_decl_type (tree decl, function_decl_type t, bool set)
>  {
>    if (set)
> @@ -4009,7 +4009,7 @@ any_integral_type_check (const_tree __t, const char *__f, int __l,
>  /* Compute the number of operands in an expression node NODE.  For
>     tcc_vl_exp nodes like CALL_EXPRs, this is stored in the node itself,
>     otherwise it is looked up from the node's code.  */
> -static inline int
> +inline int
>  tree_operand_length (const_tree node)
>  {
>    if (VL_EXP_CLASS_P (node))
> @@ -4139,7 +4139,7 @@ SET_TYPE_VECTOR_SUBPARTS (tree node, poly_uint64 subparts)
>  /* Return true if we can construct vector types with the given number
>     of subparts.  */
>
> -static inline bool
> +inline bool
>  valid_vector_subparts_p (poly_uint64 subparts)
>  {
>    unsigned HOST_WIDE_INT coeff0 = subparts.coeffs[0];
> @@ -4587,7 +4587,7 @@ extern tree build5 (enum tree_code, tree, tree, tree, tree, tree,
>
>  /* _loc versions of build[1-5].  */
>
> -static inline tree
> +inline tree
>  build1_loc (location_t loc, enum tree_code code, tree type,
>             tree arg1 CXX_MEM_STAT_INFO)
>  {
> @@ -4597,7 +4597,7 @@ build1_loc (location_t loc, enum tree_code code, tree type,
>    return t;
>  }
>
> -static inline tree
> +inline tree
>  build2_loc (location_t loc, enum tree_code code, tree type, tree arg0,
>             tree arg1 CXX_MEM_STAT_INFO)
>  {
> @@ -4607,7 +4607,7 @@ build2_loc (location_t loc, enum tree_code code, tree type, tree arg0,
>    return t;
>  }
>
> -static inline tree
> +inline tree
>  build3_loc (location_t loc, enum tree_code code, tree type, tree arg0,
>             tree arg1, tree arg2 CXX_MEM_STAT_INFO)
>  {
> @@ -4617,7 +4617,7 @@ build3_loc (location_t loc, enum tree_code code, tree type, tree arg0,
>    return t;
>  }
>
> -static inline tree
> +inline tree
>  build4_loc (location_t loc, enum tree_code code, tree type, tree arg0,
>             tree arg1, tree arg2, tree arg3 CXX_MEM_STAT_INFO)
>  {
> @@ -4627,7 +4627,7 @@ build4_loc (location_t loc, enum tree_code code, tree type, tree arg0,
>    return t;
>  }
>
> -static inline tree
> +inline tree
>  build5_loc (location_t loc, enum tree_code code, tree type, tree arg0,
>             tree arg1, tree arg2, tree arg3, tree arg4 CXX_MEM_STAT_INFO)
>  {
> @@ -5174,7 +5174,7 @@ extern tree get_narrower (tree, int *);
>
>  /* Return true if T is an expression that get_inner_reference handles.  */
>
> -static inline bool
> +inline bool
>  handled_component_p (const_tree t)
>  {
>    switch (TREE_CODE (t))
> @@ -5195,7 +5195,7 @@ handled_component_p (const_tree t)
>
>  /* Return true T is a component with reverse storage order.  */
>
> -static inline bool
> +inline bool
>  reverse_storage_order_for_component_p (tree t)
>  {
>    /* The storage order only applies to scalar components.  */
> @@ -5233,7 +5233,7 @@ reverse_storage_order_for_component_p (tree t)
>     outer type, a VIEW_CONVERT_EXPR can modify the storage order because
>     it can change the partition of the aggregate object into scalars.  */
>
> -static inline bool
> +inline bool
>  storage_order_barrier_p (const_tree t)
>  {
>    if (TREE_CODE (t) != VIEW_CONVERT_EXPR)
> @@ -5274,7 +5274,7 @@ extern bool real_zerop (const_tree);
>
>  /* Initialize the iterator I with arguments from function FNDECL  */
>
> -static inline void
> +inline void
>  function_args_iter_init (function_args_iterator *i, const_tree fntype)
>  {
>    i->next = TYPE_ARG_TYPES (fntype);
> @@ -5283,7 +5283,7 @@ function_args_iter_init (function_args_iterator *i, const_tree fntype)
>  /* Return a pointer that holds the next argument if there are more arguments to
>     handle, otherwise return NULL.  */
>
> -static inline tree *
> +inline tree *
>  function_args_iter_cond_ptr (function_args_iterator *i)
>  {
>    return (i->next) ? &TREE_VALUE (i->next) : NULL;
> @@ -5292,14 +5292,14 @@ function_args_iter_cond_ptr (function_args_iterator *i)
>  /* Return the next argument if there are more arguments to handle, otherwise
>     return NULL.  */
>
> -static inline tree
> +inline tree
>  function_args_iter_cond (function_args_iterator *i)
>  {
>    return (i->next) ? TREE_VALUE (i->next) : NULL_TREE;
>  }
>
>  /* Advance to the next argument.  */
> -static inline void
> +inline void
>  function_args_iter_next (function_args_iterator *i)
>  {
>    gcc_assert (i->next != NULL_TREE);
> @@ -5311,7 +5311,7 @@ function_args_iter_next (function_args_iterator *i)
>     so the function returns true for all but the innermost and outermost
>     blocks into which an expression has been inlined.  */
>
> -static inline bool
> +inline bool
>  inlined_function_outer_scope_p (const_tree block)
>  {
>   return LOCATION_LOCUS (BLOCK_SOURCE_LOCATION (block)) != UNKNOWN_LOCATION;
> @@ -5385,7 +5385,7 @@ extern const char *combined_fn_name (combined_fn);
>     pointer.  Assumes all pointers are interchangeable, which is sort
>     of already assumed by gcc elsewhere IIRC.  */
>
> -static inline int
> +inline int
>  struct_ptr_eq (const void *a, const void *b)
>  {
>    const void * const * x = (const void * const *) a;
> @@ -5393,7 +5393,7 @@ struct_ptr_eq (const void *a, const void *b)
>    return *x == *y;
>  }
>
> -static inline hashval_t
> +inline hashval_t
>  struct_ptr_hash (const void *a)
>  {
>    const void * const * x = (const void * const *) a;
> @@ -5401,7 +5401,7 @@ struct_ptr_hash (const void *a)
>  }
>
>  /* Return nonzero if CODE is a tree code that represents a truth value.  */
> -static inline bool
> +inline bool
>  truth_value_p (enum tree_code code)
>  {
>    return (TREE_CODE_CLASS (code) == tcc_comparison
> @@ -5412,7 +5412,7 @@ truth_value_p (enum tree_code code)
>
>  /* Return whether TYPE is a type suitable for an offset for
>     a POINTER_PLUS_EXPR.  */
> -static inline bool
> +inline bool
>  ptrofftype_p (tree type)
>  {
>    return (INTEGRAL_TYPE_P (type)
> @@ -5423,7 +5423,7 @@ ptrofftype_p (tree type)
>  /* Return true if the argument is a complete type or an array
>     of unknown bound (whose type is incomplete but) whose elements
>     have complete type.  */
> -static inline bool
> +inline bool
>  complete_or_array_type_p (const_tree type)
>  {
>    return COMPLETE_TYPE_P (type)
> @@ -5482,7 +5482,7 @@ extern void add_expr (const_tree, hash &, unsigned int = 0);
>
>  /* Compat version until all callers are converted. Return hash for
>     TREE with SEED.  */
> -static inline hashval_t iterative_hash_expr(const_tree tree, hashval_t seed)
> +inline hashval_t iterative_hash_expr(const_tree tree, hashval_t seed)
>  {
>    inchash::hash hstate (seed);
>    inchash::add_expr (tree, hstate);
> @@ -5776,7 +5776,7 @@ typedef hash_map<tree,tree,decl_tree_traits> decl_tree_map;
>
>  /* Initialize the abstract argument list iterator object ITER with the
>     arguments from CALL_EXPR node EXP.  */
> -static inline void
> +inline void
>  init_call_expr_arg_iterator (tree exp, call_expr_arg_iterator *iter)
>  {
>    iter->t = exp;
> @@ -5784,7 +5784,7 @@ init_call_expr_arg_iterator (tree exp, call_expr_arg_iterator *iter)
>    iter->i = 0;
>  }
>
> -static inline void
> +inline void
>  init_const_call_expr_arg_iterator (const_tree exp, const_call_expr_arg_iterator *iter)
>  {
>    iter->t = exp;
> @@ -5794,7 +5794,7 @@ init_const_call_expr_arg_iterator (const_tree exp, const_call_expr_arg_iterator
>
>  /* Return the next argument from abstract argument list iterator object ITER,
>     and advance its state.  Return NULL_TREE if there are no more arguments.  */
> -static inline tree
> +inline tree
>  next_call_expr_arg (call_expr_arg_iterator *iter)
>  {
>    tree result;
> @@ -5805,7 +5805,7 @@ next_call_expr_arg (call_expr_arg_iterator *iter)
>    return result;
>  }
>
> -static inline const_tree
> +inline const_tree
>  next_const_call_expr_arg (const_call_expr_arg_iterator *iter)
>  {
>    const_tree result;
> @@ -5820,14 +5820,14 @@ next_const_call_expr_arg (const_call_expr_arg_iterator *iter)
>     past and return the first argument.  Useful in for expressions, e.g.
>       for (arg = first_call_expr_arg (exp, &iter); arg;
>            arg = next_call_expr_arg (&iter))   */
> -static inline tree
> +inline tree
>  first_call_expr_arg (tree exp, call_expr_arg_iterator *iter)
>  {
>    init_call_expr_arg_iterator (exp, iter);
>    return next_call_expr_arg (iter);
>  }
>
> -static inline const_tree
> +inline const_tree
>  first_const_call_expr_arg (const_tree exp, const_call_expr_arg_iterator *iter)
>  {
>    init_const_call_expr_arg_iterator (exp, iter);
> @@ -5836,7 +5836,7 @@ first_const_call_expr_arg (const_tree exp, const_call_expr_arg_iterator *iter)
>
>  /* Test whether there are more arguments in abstract argument list iterator
>     ITER, without changing its state.  */
> -static inline bool
> +inline bool
>  more_call_expr_args_p (const call_expr_arg_iterator *iter)
>  {
>    return (iter->i < iter->n);
> @@ -5853,7 +5853,7 @@ more_call_expr_args_p (const call_expr_arg_iterator *iter)
>         (arg) = next_const_call_expr_arg (&(iter)))
>
>  /* Return true if tree node T is a language-specific node.  */
> -static inline bool
> +inline bool
>  is_lang_specific (const_tree t)
>  {
>    return TREE_CODE (t) == LANG_TYPE || TREE_CODE (t) >= NUM_TREE_CODES;
> @@ -5871,7 +5871,7 @@ is_lang_specific (const_tree t)
>    (IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (builtin_decl_explicit (BUILTIN))))
>
>  /* Return the tree node for an explicit standard builtin function or NULL.  */
> -static inline tree
> +inline tree
>  builtin_decl_explicit (enum built_in_function fncode)
>  {
>    gcc_checking_assert (BUILTIN_VALID_P (fncode));
> @@ -5880,7 +5880,7 @@ builtin_decl_explicit (enum built_in_function fncode)
>  }
>
>  /* Return the tree node for an implicit builtin function or NULL.  */
> -static inline tree
> +inline tree
>  builtin_decl_implicit (enum built_in_function fncode)
>  {
>    size_t uns_fncode = (size_t)fncode;
> @@ -5900,7 +5900,7 @@ extern tree build_builtin_unreachable (location_t);
>  /* Set explicit builtin function nodes and whether it is an implicit
>     function.  */
>
> -static inline void
> +inline void
>  set_builtin_decl (enum built_in_function fncode, tree decl, bool implicit_p)
>  {
>    size_t ufncode = (size_t)fncode;
> @@ -5915,7 +5915,7 @@ set_builtin_decl (enum built_in_function fncode, tree decl, bool implicit_p)
>
>  /* Set the implicit flag for a builtin function.  */
>
> -static inline void
> +inline void
>  set_builtin_decl_implicit_p (enum built_in_function fncode, bool implicit_p)
>  {
>    size_t uns_fncode = (size_t)fncode;
> @@ -5928,7 +5928,7 @@ set_builtin_decl_implicit_p (enum built_in_function fncode, bool implicit_p)
>
>  /* Set the declared flag for a builtin function.  */
>
> -static inline void
> +inline void
>  set_builtin_decl_declared_p (enum built_in_function fncode, bool declared_p)
>  {
>    size_t uns_fncode = (size_t)fncode;
> @@ -5942,7 +5942,7 @@ set_builtin_decl_declared_p (enum built_in_function fncode, bool declared_p)
>  /* Return whether the standard builtin function can be used as an explicit
>     function.  */
>
> -static inline bool
> +inline bool
>  builtin_decl_explicit_p (enum built_in_function fncode)
>  {
>    gcc_checking_assert (BUILTIN_VALID_P (fncode));
> @@ -5951,7 +5951,7 @@ builtin_decl_explicit_p (enum built_in_function fncode)
>
>  /* Return whether the standard builtin function can be used implicitly.  */
>
> -static inline bool
> +inline bool
>  builtin_decl_implicit_p (enum built_in_function fncode)
>  {
>    size_t uns_fncode = (size_t)fncode;
> @@ -5963,7 +5963,7 @@ builtin_decl_implicit_p (enum built_in_function fncode)
>
>  /* Return whether the standard builtin function was declared.  */
>
> -static inline bool
> +inline bool
>  builtin_decl_declared_p (enum built_in_function fncode)
>  {
>    size_t uns_fncode = (size_t)fncode;
> @@ -5983,7 +5983,7 @@ builtin_decl_declared_p (enum built_in_function fncode)
>     Avoid using this, as it's generally better to use attributes rather
>     than to check for functions by name.  */
>
> -static inline bool
> +inline bool
>  maybe_special_function_p (const_tree fndecl)
>  {
>    tree name_decl = DECL_NAME (fndecl);
> @@ -6001,7 +6001,7 @@ maybe_special_function_p (const_tree fndecl)
>  /* Return true if T (assumed to be a DECL) is a global variable.
>     A variable is considered global if its storage is not automatic.  */
>
> -static inline bool
> +inline bool
>  is_global_var (const_tree t)
>  {
>    return (TREE_STATIC (t) || DECL_EXTERNAL (t));
> @@ -6011,7 +6011,7 @@ is_global_var (const_tree t)
>     maybe aliased if it has its address taken by the local TU
>     or possibly by another TU and might be modified through a pointer.  */
>
> -static inline bool
> +inline bool
>  may_be_aliased (const_tree var)
>  {
>    return (TREE_CODE (var) != CONST_DECL
> @@ -6025,7 +6025,7 @@ may_be_aliased (const_tree var)
>  }
>
>  /* Return pointer to optimization flags of FNDECL.  */
> -static inline struct cl_optimization *
> +inline struct cl_optimization *
>  opts_for_fn (const_tree fndecl)
>  {
>    tree fn_opts = DECL_FUNCTION_SPECIFIC_OPTIMIZATION (fndecl);
> @@ -6035,7 +6035,7 @@ opts_for_fn (const_tree fndecl)
>  }
>
>  /* Return pointer to target flags of FNDECL.  */
> -static inline cl_target_option *
> +inline cl_target_option *
>  target_opts_for_fn (const_tree fndecl)
>  {
>    tree fn_opts = DECL_FUNCTION_SPECIFIC_TARGET (fndecl);
> diff --git a/gcc/wide-int.h b/gcc/wide-int.h
> index b3c19ec451c..a450a744c9f 100644
> --- a/gcc/wide-int.h
> +++ b/gcc/wide-int.h
> @@ -3495,7 +3495,7 @@ wi::set_bit_in_zero (unsigned int bit)
>
>  /* Accumulate a set of overflows into OVERFLOW.  */
>
> -static inline void
> +inline void
>  wi::accumulate_overflow (wi::overflow_type &overflow,
>                          wi::overflow_type suboverflow)
>  {
> --
> 2.39.1.367.g5cc9858f1b
>

  reply	other threads:[~2023-01-31  7:05 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-31  3:37 Patrick Palka
2023-01-31  7:05 ` Richard Biener [this message]
2023-01-31  8:42   ` Jakub Jelinek
2023-01-31  9:09     ` Richard Biener
2023-01-31 10:21     ` Eric Botcazou
2023-02-16 13:37     ` Patrick Palka
2023-02-16 13:50       ` Jakub Jelinek
2023-02-16 13:44     ` [PATCH] don't declare header-defined functions both static and inline, pt 2 Patrick Palka
2023-02-27 15:13       ` Patrick Palka

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAFiYyc35A3J8hV7k+YYcxefWuLm1PmDJ1NmXSxVrt3n=TTHGfw@mail.gmail.com' \
    --to=richard.guenther@gmail.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=ppalka@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).