OSDN Git Service

* tree-ssa-operands.c (parse_ssa_operands): Fix formatting.
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 12 Jul 2005 22:06:49 +0000 (22:06 +0000)
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 12 Jul 2005 22:06:49 +0000 (22:06 +0000)
(get_expr_operands): Fix thinko wrt flags and subvars.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@101947 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.c-torture/compile/pr22379.c [new file with mode: 0644]
gcc/tree-inline.c
gcc/tree-ssa-operands.c

index f29aaf8..21433ea 100644 (file)
@@ -1,3 +1,12 @@
+2005-07-13  Jan Hubicka  <jh@suse.cz>
+
+       * tree-ssa-operands.c (parse_ssa_operands): Fix formatting.
+       (get_expr_operands): Fix thinko wrt flags and subvars.
+
+       PR tree-optimize/22379
+       * tree-inline.c (expand_call_inline): Do not output sorry in early
+       inlining.
+
 2005-07-12  Dale Johannesen  <dalej@apple.com>
 
        * config/rs6000.c (rs6000_rtx_cost):  Move FLOAT_EXTEND.
index 715c437..db5906c 100644 (file)
@@ -1,4 +1,8 @@
-2005-07-12  Thomas Koenig  <Thomas.Koenig@online.de>
+2005-07-12  Jan Hubicka  <jh@suse.cz>
+
+       * gcc.c-torture/compile/pr22379.c: New test.
+
+2005-07-11  Thomas Koenig  <Thomas.Koenig@online.de>
 
        PR libfortran/21593
        gfortran.dg/dev_null.f90:  Remove outdated comment about
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr22379.c b/gcc/testsuite/gcc.c-torture/compile/pr22379.c
new file mode 100644 (file)
index 0000000..fae84a0
--- /dev/null
@@ -0,0 +1,23 @@
+void __add_entropy_words(void);
+void __wake_up(void);
+void SHATransform(void);
+static inline __attribute__((always_inline)) void add_entropy_words(void){}
+void extract_entropy(void);
+static inline __attribute__((always_inline)) void xfer_secondary_pool(void)
+{
+extract_entropy();
+add_entropy_words();
+}
+void extract_entropy(void)
+{
+xfer_secondary_pool();
+__wake_up();
+}
+void init_std_data(void)
+{
+add_entropy_words();
+}
+void rand_initialize(void)
+{
+init_std_data();
+}
index ca00892..fe70751 100644 (file)
@@ -1966,7 +1966,9 @@ expand_call_inline (basic_block bb, tree stmt, tree *tp, void *data)
      inlining.  */
   if (!cgraph_inline_p (cg_edge, &reason))
     {
-      if (lookup_attribute ("always_inline", DECL_ATTRIBUTES (fn)))
+      if (lookup_attribute ("always_inline", DECL_ATTRIBUTES (fn))
+         /* Avoid warnings during early inline pass. */
+         && (!flag_unit_at_a_time || cgraph_global_info_ready))
        {
          sorry ("inlining failed in call to %q+F: %s", fn, reason);
          sorry ("called from here");
index 34c0992..98b4766 100644 (file)
@@ -896,7 +896,8 @@ parse_ssa_operands (tree stmt)
        if (TREE_CODE (lhs) == VIEW_CONVERT_EXPR)
          lhs = TREE_OPERAND (lhs, 0);
 
-       if (TREE_CODE (lhs) != ARRAY_REF && TREE_CODE (lhs) != ARRAY_RANGE_REF
+       if (TREE_CODE (lhs) != ARRAY_REF
+           && TREE_CODE (lhs) != ARRAY_RANGE_REF
            && TREE_CODE (lhs) != BIT_FIELD_REF
            && TREE_CODE (lhs) != REALPART_EXPR
            && TREE_CODE (lhs) != IMAGPART_EXPR)
@@ -1325,9 +1326,10 @@ get_expr_operands (tree stmt, tree *expr_p, int flags)
                bool exact;             
                if (overlap_subvar (offset, size, sv, &exact))
                  {
+                   bool subvar_flags = flags;
                    if (!exact)
-                     flags &= ~opf_kill_def;
-                   add_stmt_operand (&sv->var, s_ann, flags);
+                     subvar_flags &= ~opf_kill_def;
+                   add_stmt_operand (&sv->var, s_ann, subvar_flags);
                  }
              }
          }