From 2ced58ea6f4e381fa5f5eea061a1438cbff63f25 Mon Sep 17 00:00:00 2001
From: Richard Guenther <rguenther@suse.de>
Date: Fri, 16 Oct 2009 14:42:47 +0000
Subject: [PATCH] re PR lto/41598 (bootstrap *using* lto fails)

2009-10-16  Richard Guenther  <rguenther@suse.de>

	PR lto/41598
	* gcc.dg/lto/20091016-1_0.c: New testcase.
	* gcc.dg/lto/20091016-1_1.c: Likewise.
	* gcc.dg/lto/20091016-1_a.h: Likewise.

From-SVN: r152904
---
 gcc/testsuite/ChangeLog                 |  7 +++++++
 gcc/testsuite/gcc.dg/lto/20091016-1_0.c | 13 +++++++++++++
 gcc/testsuite/gcc.dg/lto/20091016-1_1.c | 18 ++++++++++++++++++
 gcc/testsuite/gcc.dg/lto/20091016-1_a.h |  6 ++++++
 4 files changed, 44 insertions(+)
 create mode 100644 gcc/testsuite/gcc.dg/lto/20091016-1_0.c
 create mode 100644 gcc/testsuite/gcc.dg/lto/20091016-1_1.c
 create mode 100644 gcc/testsuite/gcc.dg/lto/20091016-1_a.h

diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index e21a4e217727..08f34e5c24f3 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,10 @@
+2009-10-16  Richard Guenther  <rguenther@suse.de>
+
+	PR lto/41598
+	* gcc.dg/lto/20091016-1_0.c: New testcase.
+	* gcc.dg/lto/20091016-1_1.c: Likewise.
+	* gcc.dg/lto/20091016-1_a.h: Likewise.
+
 2009-10-16  Richard Guenther  <rguenther@suse.de>
 
 	PR lto/41715
diff --git a/gcc/testsuite/gcc.dg/lto/20091016-1_0.c b/gcc/testsuite/gcc.dg/lto/20091016-1_0.c
new file mode 100644
index 000000000000..942c5c6c0a41
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/lto/20091016-1_0.c
@@ -0,0 +1,13 @@
+/* { dg-lto-do link } */
+/* { dg-lto-options {{-fPIC -shared -O2 -flto}} } */
+
+typedef struct VEC_constructor_elt_gc { } VEC_constructor_elt_gc;
+#include "20091016-1_a.h"
+struct stmt_tree_s {
+    tree x_cur_stmt_list;
+};
+void *add_stmt (struct stmt_tree_s *x)
+{
+  return &x->x_cur_stmt_list;
+}
+
diff --git a/gcc/testsuite/gcc.dg/lto/20091016-1_1.c b/gcc/testsuite/gcc.dg/lto/20091016-1_1.c
new file mode 100644
index 000000000000..06389b8e3097
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/lto/20091016-1_1.c
@@ -0,0 +1,18 @@
+typedef struct VEC_constructor_elt_gcx { } VEC_constructor_elt_gc;
+#include "20091016-1_a.h"
+struct gcc_target {
+    void (* builtin_vec_perm) (tree*);
+};
+extern struct gcc_target targetm;
+void dwarf2out_begin_prologue (tree t)
+{
+    (*targetm.builtin_vec_perm) (&t);
+}
+struct die_arg_entry_struct {
+    tree arg;
+};
+void *gt_pch_p_20VEC_die_arg_entry_gc (struct die_arg_entry_struct *vec)
+{
+    return &(vec->arg);
+}
+
diff --git a/gcc/testsuite/gcc.dg/lto/20091016-1_a.h b/gcc/testsuite/gcc.dg/lto/20091016-1_a.h
new file mode 100644
index 000000000000..8eefed5cfadc
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/lto/20091016-1_a.h
@@ -0,0 +1,6 @@
+typedef union tree_node *tree;
+union tree_node {
+    tree * use;
+    VEC_constructor_elt_gc *elts;
+};
+
-- 
GitLab