-/* { dg-lto-options {{ -O1 -fwhopr }} } */
-/* { dg-lto-do run } */
-
-/* Test that ipa-reference notice that get_val will not change since do_nothing does not
- modify anything. This needs streaming cross file boundary summaries. */
-extern int get_val (void);
-extern int set_val (void);
-extern do_nothing (void);
-void abort (void);
-main()
+static int val;
+int set_val (void)
{
- int a;
- int b;
- set_val ();
- a = get_val ();
- do_nothing();
- b = get_val ();
- if (a==b)
- {
- if (!,__builtin_constant_p (a==b))
- abort ();
- return 0;
- }
- else
- abort ();
+ val = 5;
+}
+int get_val (void)
+{
+ return val;
+}
+__attribute__ ((__noinline__))
+do_nothing ()
+{
+ asm volatile ("":::"memory");
}