aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.c-torture/compile
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gcc.c-torture/compile')
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20070827-1.c20
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/limits-blockid.c4
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/limits-enumconst.c4
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/pr33166.c10
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/pr33173.c102
5 files changed, 140 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.c-torture/compile/20070827-1.c b/gcc/testsuite/gcc.c-torture/compile/20070827-1.c
new file mode 100644
index 00000000000..5dd009974ac
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/20070827-1.c
@@ -0,0 +1,20 @@
+/* PR rtl-optimization/33148 */
+
+int
+foo (unsigned int *p, int *q, unsigned int w, unsigned int b)
+{
+ unsigned int i;
+ int mask;
+
+ if (q[0] < q[1])
+ mask = 0xff;
+ else
+ mask = 0;
+
+ for (i = 0; 8 * i < w; i++)
+ {
+ b ^= mask;
+ *p++ = b;
+ }
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/limits-blockid.c b/gcc/testsuite/gcc.c-torture/compile/limits-blockid.c
index 718c8673c2e..545dfe4dcb7 100644
--- a/gcc/testsuite/gcc.c-torture/compile/limits-blockid.c
+++ b/gcc/testsuite/gcc.c-torture/compile/limits-blockid.c
@@ -14,5 +14,9 @@
void q9_func(void)
{
+#if __INT_MAX__ >= 100000
LIM5(char t)
+#else
+ LIM4(char t)
+#endif
}
diff --git a/gcc/testsuite/gcc.c-torture/compile/limits-enumconst.c b/gcc/testsuite/gcc.c-torture/compile/limits-enumconst.c
index 80ac342cd2f..975cafc833e 100644
--- a/gcc/testsuite/gcc.c-torture/compile/limits-enumconst.c
+++ b/gcc/testsuite/gcc.c-torture/compile/limits-enumconst.c
@@ -14,5 +14,9 @@
enum q21_enum
{
+#if __INT_MAX__ >= 100000
LIM5 (e)
+#else
+ LIM4 (e)
+#endif
};
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr33166.c b/gcc/testsuite/gcc.c-torture/compile/pr33166.c
new file mode 100644
index 00000000000..a48c529c3fe
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/pr33166.c
@@ -0,0 +1,10 @@
+static void ConvertAddr (char *saddr, void **addr)
+{
+ *addr = (void *) &saddr;
+}
+void DefineSelf (char *addr)
+{
+ ConvertAddr (addr, (void **) &addr);
+ if (addr[0] == 127 && addr[3] == 1)
+ ;
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr33173.c b/gcc/testsuite/gcc.c-torture/compile/pr33173.c
new file mode 100644
index 00000000000..503c7afbdac
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/pr33173.c
@@ -0,0 +1,102 @@
+typedef long unsigned int size_t;
+typedef struct
+{
+}
+_G_fpos_t;
+extern int printf (__const char *__restrict __format, ...);
+extern size_t strlen (__const char *__s) __attribute__ ((__nothrow__))
+ __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+typedef struct rend_service_descriptor_t
+{
+ int patchlevel;
+ char status_tag[32];
+}
+tor_version_t;
+test_dir_format (void)
+{
+ tor_version_t ver1;
+ {
+ long v2 = (long) (ver1.patchlevel);
+ }
+ {
+ const char *v1 = (""), *v2 = (ver1.status_tag);
+ if (!__extension__ (
+ {
+ size_t __s1_len, __s2_len;
+ (__builtin_constant_p (v1)
+ && (__s1_len = strlen (v1), __s2_len =
+ (!((size_t) (const void *) ((v1) + 1) -
+ (size_t) (const void *) (v1) == 1)
+ || __s1_len >= 4)
+ &&
+ (!((size_t) (const void *) ((v2) + 1) -
+ (size_t) (const void *) (v2) == 1)
+ || __s2_len >= 4)) ? __builtin_strcmp (v1,
+ v2)
+ : (__builtin_constant_p (v1)
+ && ((size_t) (const void *) ((v1) + 1) -
+ __s1_len < 4) ? (__builtin_constant_p (v2)
+ &&
+ ((size_t) (const void *)
+ (size_t) (const void
+ *) (v2) ==
+ 1) ? __builtin_strcmp (v1,
+ v2)
+ : (__extension__ (
+ {
+ __const
+ char
+ *__s2
+ =
+ (__const
+ char
+ *)
+ (v2);
+ register
+ __result
+ =
+ (((__const unsigned char *) (__const char *) (v1))[0] - __s2[0]); if (__s1_len > 0 && __result == 0)
+ {
+ }
+ __result;}
+ ))):
+ (__builtin_constant_p (v2)
+ && ((size_t) (const void *) ((v2) + 1) -
+ __s2_len < 4) ? (__builtin_constant_p (v1)
+ && ((size_t) (const void *)
+ 1) ?
+ __builtin_strcmp (v1,
+ v2)
+ : (__extension__ (
+ {
+ __const
+ char
+ *__s1
+ =
+ (__const
+ char
+ *)
+ (__const
+ *)
+ (v1);
+ register
+ __result
+ =
+ ((__const unsigned char *) (__const char *) (v2))[0]; if (__s2_len > 0 && __result == 0)
+ {
+ if
+ (__s2_len
+ ==
+ 0)
+ {
+ }
+ }
+ __result;}
+ ))): __builtin_strcmp (v1,
+ v2))));}
+ ))
+ {
+ printf (".");
+ }
+ }
+}