/* { dg-do compile } */
extern "C" {
    float sqrtf(float);
}
class T {
public:
    float floats[1];
    inline float length() const {
	return sqrtf(floats[0]);
    }
};
void destruct(void *);
class Container {
    T Ts[1];
public:
    ~Container() {
	destruct((void *)Ts);
    }
    T& operator[](int n) {
	return Ts[0];
    }
};
void fill(Container&);
void doit()
{
  Container data;
  float max = 10;
  int i, j, k;
  for (i = 0; i < 10; i++) {
      for (j = 1; j < 10; j++) {
	  if (max < 5)
	    break;
	  fill( data);
	  max = data[0].length();
	  for (k = 1; k < j; k++) {
	      max = 5;
	  }
      }
  }
}