1 /* { dg-do compile }  */
2 /* { dg-options "-O2 -fdump-tree-optimized" }  */
3 
4 
5 void *arf ();
6 int
foo()7 foo()
8 {
9   void *p = arf ();
10 
11   if ((void (*)(void))p != 0)
12     return 1;
13   else
14     return 2;
15 }
16 
17 /* The cast to a function pointer type must remain after all optimizations
18    are complete so that function pointer canonicalization works on those
19    targets which require it.  */
20 /* { dg-final { scan-tree-dump-times "= \\(void \\(\\*<.*>\\) \\(void\\)\\) p_" 1 "optimized" } } */
21 
22 
23