2018-11-07 Richard Biener <rguenther@suse.de>
[official-gcc.git] / gcc / testsuite / g++.dg / lto / 20080908-1_0.C
blob42b20cb3b3a0d053cb5a22b6a4e1aafeeed121e7
1 /* { dg-lto-do run }  */
2 extern "C" { extern void *memcpy (void *, const void *, __SIZE_TYPE__); }
4 inline int
5 bci (const float &source)
7  int dest;
8  memcpy (&dest, &source, sizeof (dest));
9  return dest;
12 inline float
13 bcf (const int &source)
15  float dest;
16  memcpy (&dest, &source, sizeof (dest));
17  return dest;
20 float
21 Foo ()
23  const int foo = bci (0.0f);
24  int bar = foo;
25  const int baz = foo & 1;
26  if (!baz && (foo & 2))
27    bar = 0;
28  return bcf (bar);
31 int main ()
33   if (Foo () != 0.0)
34     return 1;
35   return 0;