diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 5488b1cf484494d67f92436bf05345c95fa8296e..3aa10de4853133c2414e534d60afd2f15e8ef5a4 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2011-09-14  Tom de Vries  <tom@codesourcery.com>
+
+	PR middle-end/50251
+	* gcc.dg/pr50251.c: New test.
+
 2011-09-14  Tobias Burnus  <burnus@net-b.de>
 
 	PR fortran/34547
diff --git a/gcc/testsuite/gcc.dg/pr50251.c b/gcc/testsuite/gcc.dg/pr50251.c
new file mode 100644
index 0000000000000000000000000000000000000000..21ca185250b7b99170b04a1cf87456ff8434d303
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr50251.c
@@ -0,0 +1,18 @@
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+/* { dg-additional-options "-mpreferred-stack-boundary=12" { target x86_64-*-* } } */
+
+extern void bar (int*);
+
+char *p;
+
+int
+main ()
+{
+  int q;
+  p = __builtin_stack_save ();
+  bar (&q);
+  __builtin_stack_restore (p);
+  bar (&q);
+  return 0;
+}