Add testcases for PRs 47727/47372/47715.
authorH.J. Lu <hongjiu.lu@intel.com>
Sat, 6 Aug 2011 14:50:05 +0000 (14:50 +0000)
committerH.J. Lu <hjl@gcc.gnu.org>
Sat, 6 Aug 2011 14:50:05 +0000 (07:50 -0700)
2011-08-06  H.J. Lu  <hongjiu.lu@intel.com>

PR middle-end/47727
* gcc.dg/pr47727.c: New.

PR target/47372
* gcc.dg/pr47372-1.c: New.
* gcc.dg/pr47372-2.c: Likewise.

PR target/47715
* gcc.dg/tls/pr47715-5.c: New.

From-SVN: r177513

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/pr47372-1.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/pr47372-2.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/pr47727.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/tls/pr47715-5.c [new file with mode: 0644]

index ecdd2d2d3f225f4fbce93a9c5f7e1266e191c702..94f6f081b0cb94b40ea3499c2b047ce922c46ad1 100644 (file)
@@ -1,3 +1,12 @@
+2011-08-06  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR middle-end/47727
+       * gcc.dg/pr47727.c: New.
+
+       PR target/47372
+       * gcc.dg/pr47372-1.c: New.
+       * gcc.dg/pr47372-2.c: Likewise.
+
 2011-08-06  H.J. Lu  <hongjiu.lu@intel.com>
 
        PR middle-end/47449
@@ -17,6 +26,7 @@
        * gcc.dg/tls/pr47715-2.c: Likewise.
        * gcc.dg/tls/pr47715-3.c: Likewise.
        * gcc.dg/tls/pr47715-4.c: Likewise.
+       * gcc.dg/tls/pr47715-5.c: Likewise.
 
 2011-08-06  Nicola Pero  <nicola.pero@meta-innovation.com>
 
diff --git a/gcc/testsuite/gcc.dg/pr47372-1.c b/gcc/testsuite/gcc.dg/pr47372-1.c
new file mode 100644 (file)
index 0000000..a2e5c5b
--- /dev/null
@@ -0,0 +1,12 @@
+/* { dg-do compile } */
+/* { dg-require-effective-target fpic } */
+/* { dg-options "-O2 -fPIC -g" } */
+
+typedef struct FILE FILE;
+int _fwalk(int (*)(FILE *));
+int __sflush(FILE *);
+int
+fflush(FILE *fp)
+{
+  return (_fwalk(__sflush));
+}
diff --git a/gcc/testsuite/gcc.dg/pr47372-2.c b/gcc/testsuite/gcc.dg/pr47372-2.c
new file mode 100644 (file)
index 0000000..8addcdc
--- /dev/null
@@ -0,0 +1,17 @@
+/* { dg-do compile } */
+/* { dg-require-effective-target fpic } */
+/* { dg-options "-O2 -fPIC -g" } */
+
+typedef unsigned short ush;
+typedef ush Pos;
+extern ush prev[];
+void fill_window( unsigned more, unsigned m)
+{
+    unsigned n;
+    for (n = 0; n < (unsigned)(1<<15); n++) {
+      (prev+0x8000)[n] = (Pos)(m >= 0x8000 ? m-0x8000 : 0);
+    }
+    for (n = 0; n < 0x8000; n++) {
+      prev[n] = (Pos)(m >= 0x8000 ? m-0x8000 : 0);
+    }
+}
diff --git a/gcc/testsuite/gcc.dg/pr47727.c b/gcc/testsuite/gcc.dg/pr47727.c
new file mode 100644 (file)
index 0000000..1ce7c36
--- /dev/null
@@ -0,0 +1,12 @@
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+
+typedef void (*func_ptr) (void);
+static func_ptr __CTOR_END__[1] = { (func_ptr) 0 };
+static void __attribute__((used))
+__do_global_ctors_aux (void)
+{
+  func_ptr *p;
+  for (p = __CTOR_END__ - 1; *p != (func_ptr) -1; p--)
+    (*p) ();
+}
diff --git a/gcc/testsuite/gcc.dg/tls/pr47715-5.c b/gcc/testsuite/gcc.dg/tls/pr47715-5.c
new file mode 100644 (file)
index 0000000..ca3410d
--- /dev/null
@@ -0,0 +1,11 @@
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+/* { dg-require-effective-target tls } */
+
+extern __thread int __libc_errno __attribute__ ((tls_model ("initial-exec")));
+;
+int *
+__errno_location (void)
+{
+  return &__libc_errno;
+}