diff gcc/testsuite/gcc.dg/lto/20090812_1.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/lto/20090812_1.c	Fri Oct 27 22:46:09 2017 +0900
@@ -0,0 +1,26 @@
+/* struct X is complete in this TU, this causes us to not merge Y and
+   thus assign different alias-sets to them.  */
+struct X
+{
+  int i;
+};
+struct Y
+{
+  struct X *p;
+  int i;
+};
+extern void abort (void);
+extern void foo(struct Y *);
+int __attribute__((noinline)) bar(struct Y *p)
+{
+  p->i = 0;
+  foo (p);
+  return p->i;
+}
+int main()
+{
+  struct Y y;
+  if (bar (&y) != 1)
+    abort ();
+  return 0;
+}