* tree-loop-distribution.c (INCLUDE_ALGORITHM): New header file.
[official-gcc.git] / gcc / testsuite / gcc.dg / tree-ssa / 20050719-1.c
blob2c1e33513ecc7e2d2937369fd41b583ee98f8900
1 /* { dg-do run } */
2 /* { dg-options "-O2" } */
4 extern void abort (void) __attribute__ ((__nothrow__)) __attribute__
5 ((__noreturn__));
6 extern void exit (int __status) __attribute__ ((__nothrow__))
7 __attribute__ ((__noreturn__));
8 int useboot (void *);
10 struct bootLoader {
11 int x;
14 void
15 zap(struct bootLoader *bootLoader)
17 /* The expression on the RHS of the assignment is *not* a
18 dereference of pointer 'bootLoader'. It is merely used as an
19 offset calculation. VRP was erroneously removing the if()
20 because it thought that 'bootLoader' was always dereferenced. */
21 int *boot = &bootLoader->x;
23 if (bootLoader)
25 useboot (boot);
29 int
30 useboot (void *boot)
32 abort ();
35 int
36 main()
38 zap (0);
39 return 0;