summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.c-torture/compile/pr36666.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gcc.c-torture/compile/pr36666.c')
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/pr36666.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr36666.c b/gcc/testsuite/gcc.c-torture/compile/pr36666.c
new file mode 100644
index 000000000..9eb132cd0
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/pr36666.c
@@ -0,0 +1,22 @@
+struct Foo {
+ int *p;
+ struct X {
+ int a,b,c,d,e,*f;
+ } x;
+} *init, *init2;
+
+struct X __attribute__((const)) foo(struct X);
+struct Foo __attribute__((const)) foo2(struct Foo);
+
+void bar1 (void)
+{
+ init->x = foo (init2->x);
+}
+void bar2 (void)
+{
+ init->x = foo (init->x);
+}
+void bar3 (void)
+{
+ *init = foo2 (*init2);
+}