OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [gcc.target/] [arm/] [pr42495.c] - Blame information for rev 691

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 691 jeremybenn
/* { dg-options "-mthumb -Os -fpic -fdump-rtl-hoist" }  */
2
/* { dg-require-effective-target arm_thumb1_ok } */
3
/* { dg-require-effective-target fpic } */
4
/* Make sure all calculations of gObj's address get hoisted to one location.  */
5
/* { dg-final { scan-rtl-dump "PRE/HOIST: end of bb .* copying expression" "hoist" } } */
6
 
7
struct st_a {
8
   int data;
9
};
10
 
11
struct st_b {
12
   struct st_a *p_a;
13
    struct st_b *next;
14
};
15
 
16
extern struct st_b gObj;
17
extern void foo(int, struct st_b*);
18
 
19
int goo(struct st_b * obj) {
20
   struct st_a *pa;
21
   if (gObj.p_a->data != 0) {
22
     foo(gObj.p_a->data, obj);
23
   }
24
   pa = obj->p_a;
25
   if (pa == 0) {
26
     return 0;
27
   } else if (pa == gObj.p_a) {
28
     return 0;
29
   }
30
   return pa->data;
31
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.