aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@gcc.gnu.org>2005-07-12 22:06:49 +0000
committerJan Hubicka <hubicka@gcc.gnu.org>2005-07-12 22:06:49 +0000
commit7fac66d43ca6cae23140f6dc6be408d49f731d12 (patch)
tree14e86f3aaf1e0d285c00b18ab0dce26d5e8a46f6 /gcc
parenta2af50436f16c10f22f55188f9e429633c2532ec (diff)
downloadgcc-7fac66d43ca6cae23140f6dc6be408d49f731d12.zip
gcc-7fac66d43ca6cae23140f6dc6be408d49f731d12.tar.gz
gcc-7fac66d43ca6cae23140f6dc6be408d49f731d12.tar.bz2
tree-ssa-operands.c (parse_ssa_operands): Fix formatting.
* tree-ssa-operands.c (parse_ssa_operands): Fix formatting. (get_expr_operands): Fix thinko wrt flags and subvars. From-SVN: r101947
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog9
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/pr22379.c23
-rw-r--r--gcc/tree-inline.c4
-rw-r--r--gcc/tree-ssa-operands.c8
5 files changed, 45 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f29aaf8..21433ea 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 715c437..db5906c 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -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
index 0000000..fae84a0
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/pr22379.c
@@ -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();
+}
diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c
index ca00892..fe70751 100644
--- a/gcc/tree-inline.c
+++ b/gcc/tree-inline.c
@@ -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");
diff --git a/gcc/tree-ssa-operands.c b/gcc/tree-ssa-operands.c
index 34c0992..98b4766 100644
--- a/gcc/tree-ssa-operands.c
+++ b/gcc/tree-ssa-operands.c
@@ -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);
}
}
}