diff gcc/testsuite/gcc.dg/pr35258.c @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gcc/testsuite/gcc.dg/pr35258.c	Fri Oct 27 22:46:09 2017 +0900
@@ -0,0 +1,32 @@
+/* { dg-do run } */
+/* { dg-options "-O1" } */
+
+extern void *memcpy (void *, const void *, __SIZE_TYPE__);
+extern int memcmp (const void *, const void *, __SIZE_TYPE__);
+extern void abort(void);
+
+char str[9] = "1234";
+
+void
+bar (void)
+{
+#if __SIZEOF_INT__ >= 4
+  unsigned int temp;
+#else
+  __UINT32_TYPE__ temp;
+#endif
+  char *p = &str[2];
+
+  memcpy (&temp, &str[1], 4);
+  memcpy (p, &temp, 4);
+  str[1] = '.';
+}
+
+int main()
+{
+  bar();
+  if (memcmp (str, "1.234", 5) != 0)
+    abort ();
+
+  return 0;
+}