aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/lto
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gcc.dg/lto')
-rw-r--r--gcc/testsuite/gcc.dg/lto/20090210_0.c2
-rw-r--r--gcc/testsuite/gcc.dg/lto/20090313_0.c1
-rw-r--r--gcc/testsuite/gcc.dg/lto/20100518_0.c1
-rw-r--r--gcc/testsuite/gcc.dg/lto/20100709-1_0.c7
-rw-r--r--gcc/testsuite/gcc.dg/lto/20100709-1_1.c11
-rw-r--r--gcc/testsuite/gcc.dg/lto/20100720-1_0.c22
-rw-r--r--gcc/testsuite/gcc.dg/lto/20100720-1_1.c15
-rw-r--r--gcc/testsuite/gcc.dg/lto/20100720-2_0.c23
-rw-r--r--gcc/testsuite/gcc.dg/lto/20100720-2_1.c16
-rw-r--r--gcc/testsuite/gcc.dg/lto/20100720-3_0.c24
-rw-r--r--gcc/testsuite/gcc.dg/lto/20100720-3_1.c17
-rw-r--r--gcc/testsuite/gcc.dg/lto/20100720-4_0.c15
-rw-r--r--gcc/testsuite/gcc.dg/lto/20100722-1_0.c6
13 files changed, 160 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/lto/20090210_0.c b/gcc/testsuite/gcc.dg/lto/20090210_0.c
index c588e8a2778..2c858a67d32 100644
--- a/gcc/testsuite/gcc.dg/lto/20090210_0.c
+++ b/gcc/testsuite/gcc.dg/lto/20090210_0.c
@@ -1,5 +1,7 @@
/* { dg-lto-do run } */
/* { dg-suppress-ld-options {-fPIC} } */
+/* { dg-require-effective-target tls } */
+/* { dg-extra-ld-options "-pthread" { target *-*-solaris2.[89] } } */
int foo (int x)
{
return x;
diff --git a/gcc/testsuite/gcc.dg/lto/20090313_0.c b/gcc/testsuite/gcc.dg/lto/20090313_0.c
index 523ae2de7c5..226e647135a 100644
--- a/gcc/testsuite/gcc.dg/lto/20090313_0.c
+++ b/gcc/testsuite/gcc.dg/lto/20090313_0.c
@@ -1,4 +1,5 @@
/* { dg-lto-options "-mcpu=v9" { target sparc*-*-* } } */
+/* { dg-require-effective-target sync_char_short } */
void
_cairo_clip_path_reference () {
int a;
diff --git a/gcc/testsuite/gcc.dg/lto/20100518_0.c b/gcc/testsuite/gcc.dg/lto/20100518_0.c
index 02290b5feb2..c0e9c8be2f7 100644
--- a/gcc/testsuite/gcc.dg/lto/20100518_0.c
+++ b/gcc/testsuite/gcc.dg/lto/20100518_0.c
@@ -1,4 +1,5 @@
/* { dg-lto-do link } */
+/* { dg-skip-if "" { ! { i?86-*-* x86_64-*-* } } { "*" } { "" } } */
/* Forgot to steam in/out the number of labels for asm goto. PR44184. */
extern int printf (__const char *__restrict __format, ...);
diff --git a/gcc/testsuite/gcc.dg/lto/20100709-1_0.c b/gcc/testsuite/gcc.dg/lto/20100709-1_0.c
new file mode 100644
index 00000000000..33f38f6c204
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/lto/20100709-1_0.c
@@ -0,0 +1,7 @@
+/* { dg-lto-do link } */
+
+struct X;
+struct Y {
+ struct X (*fnptr)(struct X);
+};
+struct Y foo;
diff --git a/gcc/testsuite/gcc.dg/lto/20100709-1_1.c b/gcc/testsuite/gcc.dg/lto/20100709-1_1.c
new file mode 100644
index 00000000000..b970795c61d
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/lto/20100709-1_1.c
@@ -0,0 +1,11 @@
+struct X { int i; };
+struct Y {
+ struct X (*fnptr)(struct X);
+};
+extern struct Y foo;
+int main()
+{
+ struct X x;
+ foo.fnptr(x);
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/lto/20100720-1_0.c b/gcc/testsuite/gcc.dg/lto/20100720-1_0.c
new file mode 100644
index 00000000000..ca9366f6247
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/lto/20100720-1_0.c
@@ -0,0 +1,22 @@
+/* { dg-lto-do run } */
+
+struct X {
+ int a;
+};
+
+typedef struct list_node *list;
+
+struct list_node {
+ list next;
+ struct X *value;
+};
+
+list f(void)
+{
+ return 0;
+}
+
+int main(void)
+{
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/lto/20100720-1_1.c b/gcc/testsuite/gcc.dg/lto/20100720-1_1.c
new file mode 100644
index 00000000000..789e88e7d06
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/lto/20100720-1_1.c
@@ -0,0 +1,15 @@
+struct X {
+ int b;
+};
+
+typedef struct list_node *list;
+
+struct list_node {
+ list next;
+ struct X *value;
+};
+
+list g(void)
+{
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/lto/20100720-2_0.c b/gcc/testsuite/gcc.dg/lto/20100720-2_0.c
new file mode 100644
index 00000000000..87b13b0de92
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/lto/20100720-2_0.c
@@ -0,0 +1,23 @@
+/* { dg-lto-do run } */
+
+struct X {
+ int a;
+};
+
+typedef struct list_node *list;
+
+struct list_node {
+ list next;
+ list *ptr;
+ struct X *value;
+};
+
+list f(list lst)
+{
+ return lst->next;
+}
+
+int main(void)
+{
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/lto/20100720-2_1.c b/gcc/testsuite/gcc.dg/lto/20100720-2_1.c
new file mode 100644
index 00000000000..b3a2cd06e66
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/lto/20100720-2_1.c
@@ -0,0 +1,16 @@
+struct X {
+ int b;
+};
+
+typedef struct list_node *list;
+
+struct list_node {
+ list next;
+ list *ptr;
+ struct X *value;
+};
+
+list *g(list *ptr)
+{
+ return ptr;
+}
diff --git a/gcc/testsuite/gcc.dg/lto/20100720-3_0.c b/gcc/testsuite/gcc.dg/lto/20100720-3_0.c
new file mode 100644
index 00000000000..99c89ebd7fd
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/lto/20100720-3_0.c
@@ -0,0 +1,24 @@
+/* { dg-lto-do run } */
+
+struct X {
+ int a;
+};
+
+struct link {
+ struct list_node *next;
+};
+
+struct list_node {
+ struct link lnk;
+ struct X *value;
+};
+
+void f(struct list_node *lst)
+{
+ lst->lnk.next = 0;
+}
+
+int main(void)
+{
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/lto/20100720-3_1.c b/gcc/testsuite/gcc.dg/lto/20100720-3_1.c
new file mode 100644
index 00000000000..3d323813edd
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/lto/20100720-3_1.c
@@ -0,0 +1,17 @@
+struct X {
+ int b;
+};
+
+struct link {
+ struct list_node *next;
+};
+
+struct list_node {
+ struct link lnk;
+ struct X *value;
+};
+
+void g(struct list_node *lst)
+{
+ lst->lnk.next = 0;
+}
diff --git a/gcc/testsuite/gcc.dg/lto/20100720-4_0.c b/gcc/testsuite/gcc.dg/lto/20100720-4_0.c
new file mode 100644
index 00000000000..e7669552fa9
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/lto/20100720-4_0.c
@@ -0,0 +1,15 @@
+/* { dg-lto-do link } */
+/* { dg-lto-options {{-flto -fsigned-char} {-flto -funsigned-char}} } */
+
+char *a;
+int f;
+
+void
+foo (void)
+{
+ f = (*a != '-');
+}
+int main()
+{
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/lto/20100722-1_0.c b/gcc/testsuite/gcc.dg/lto/20100722-1_0.c
new file mode 100644
index 00000000000..275a03c25a0
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/lto/20100722-1_0.c
@@ -0,0 +1,6 @@
+/* { dg-lto-do run } */
+/* { dg-require-linker-plugin "" } */
+/* { dg-extra-ld-options "-fuse-linker-plugin" } */
+
+int main() { return 0; }
+