aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2011-10-14 11:03:06 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2011-10-14 11:03:06 +0000
commitf6e52e91bdb72a6609cfe9ed73303580e3e5de62 (patch)
treea9361f473540d2f7183499dc7869f1e21ab9d858
parent5fabae4e535e42e05d3d67ac0625b1c107ed5d8d (diff)
downloadgcc-f6e52e91bdb72a6609cfe9ed73303580e3e5de62.zip
gcc-f6e52e91bdb72a6609cfe9ed73303580e3e5de62.tar.gz
gcc-f6e52e91bdb72a6609cfe9ed73303580e3e5de62.tar.bz2
re PR tree-optimization/50723 (internal compiler error: verify_ssa failed)
2011-10-14 Richard Guenther <rguenther@suse.de> PR tree-optimization/50723 * ipa-split.c (split_function): Use GSI_CONTINUE_LINKING. * gcc.dg/torture/pr50723.c: New testcase. From-SVN: r179967
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/ipa-split.c2
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/torture/pr50723.c26
4 files changed, 37 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5c82e9b..d9cfc33 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2011-10-14 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/50723
+ * ipa-split.c (split_function): Use GSI_CONTINUE_LINKING.
+
2011-10-14 Nicola Pero <nicola.pero@meta-innovation.com>
* gengtype.c (files_rules): Added rules for objc/objc-map.h and
diff --git a/gcc/ipa-split.c b/gcc/ipa-split.c
index 75cc619..7e0769f 100644
--- a/gcc/ipa-split.c
+++ b/gcc/ipa-split.c
@@ -1134,7 +1134,7 @@ split_function (struct split_point *split_point)
if (!is_gimple_val (arg))
{
arg = force_gimple_operand_gsi (&gsi, arg, true, NULL_TREE,
- false, GSI_NEW_STMT);
+ false, GSI_CONTINUE_LINKING);
VEC_replace (tree, args_to_pass, i, arg);
}
call = gimple_build_call_vec (node->decl, args_to_pass);
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 28d8308..d168fe1 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2011-10-14 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/50723
+ * gcc.dg/torture/pr50723.c: New testcase.
+
2011-10-14 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/17212
diff --git a/gcc/testsuite/gcc.dg/torture/pr50723.c b/gcc/testsuite/gcc.dg/torture/pr50723.c
new file mode 100644
index 0000000..24e490f
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr50723.c
@@ -0,0 +1,26 @@
+/* { dg-do compile } */
+
+typedef short unsigned int wchar_t;
+typedef unsigned int size_t;
+int* _errno(void);
+int WideCharToMultiByte (wchar_t *);
+int __attribute__ ((__nonnull__ (1)))
+__wcrtomb_cp (char *dst, wchar_t wc, const unsigned int cp,
+ const unsigned int mb_max)
+{
+ if (cp == 0) {
+ if (wc > 255)
+ (*_errno()) = 42;
+ return 1;
+ }
+ else
+ return WideCharToMultiByte (&wc);
+}
+void wcsrtombs (char *dst, const wchar_t *pwc, unsigned int cp,
+ unsigned int mb_max)
+{
+ if ((__wcrtomb_cp (dst, *pwc, cp, mb_max)) <= 0)
+ return;
+ if ((__wcrtomb_cp (dst, *pwc, cp, mb_max)) <= 0)
+ return;
+}