// RUN: %Slang %s
// RUN: %rs-filecheck-wrapper %s
// CHECK-NOT: define internal i32 @main(
// CHECK-NOT: %f = alloca float,
// CHECK-NOT: %pf = alloca float*,
// CHECK-NOT: %ppn = alloca i32**,

// This test case should behave identically to locals_opt_3.rs.

struct float_struct {
  float f;
  float f2[2];
} compound_float;


static
int main(int argc, char* argv[])
{
  float f = 0.f;
  float *pf = &f;

  double d[2][2] = {{0, 1}, {2, 3.0}};
  struct float_struct s;

  unsigned short us = -1;
  const unsigned long l = (unsigned long) -1.0e8f;

  {
    int** ppn = 0;
    if (ppn) {
      return -1;
    }
  }

  s.f = 10e-4f;
  s.f2[0] = 1e4f;
  s.f2[1] = 100.5f;

  double result = pf[0] * d[1][1] * s.f * us * l;
  return (result == 0 ? 0 : -1);
}

void the_main() {
  main(0, 0);
}

#pragma version(1)
#pragma rs java_package_name(foo)