1 /*  PR rtl-optimization/16536
2     Origin:  Jeremy Denise      <jeremy.denise@libertysurf.fr>
3     Reduced: Wolfgang Bangerth  <bangerth@dealii.org>
4              Volker Reichelt    <reichelt@igpm.rwth-aachen.de>  */
5 
6 extern void abort ();
7 
8 typedef struct
9 {
10   int i, dummy;
11 } A;
12 
foo(const A * p,const A * q)13 inline A foo (const A* p, const A* q)
14 {
15   return (A){p->i+q->i};
16 }
17 
bar(A * __restrict__ p)18 void bar (A* __restrict__ p)
19 {
20   *p=foo(p,p);
21   if (p->i!=2)
22     abort();
23 }
24 
main()25 int main ()
26 {
27   A a={1};
28   bar(&a);
29   return 0;
30 }
31