strub: enable conditional support
[official-gcc.git] / gcc / testsuite / g++.dg / torture / pr37421.C
blobc8cfd00cc15bff590179b6f7ea8c0e0e2b2b7bb6
1 /* { dg-do compile } */
2 /* { dg-require-effective-target int_eq_float } */
4 #include <stdio.h>
5 #include <string.h>
7 inline int
8 bci (const float &source)
10  int dest;
11  memcpy (&dest, &source, sizeof (dest));
12  return dest;
15 inline float
16 bcf (const int &source)
18  float dest;
19  memcpy (&dest, &source, sizeof (dest));
20  return dest;
23 float
24 Foo ()
26  const int foo = bci (0.0f);
27  int bar = foo;
28  const int baz = foo & 1;
29  if (!baz && (foo & 2))
30    bar = 0;
31  return bcf (bar);
34 int
35 main ()
37   printf ("Foo() = %f\n", Foo());
38   return 0;