cleanup2.C   [plain text]


// PR c++/12526

// We decided that the call to strcmp has no side-effects because strcmp is
// pure, even though the first argument has side-effects.  As a result, we
// stripped the CLEANUP_POINT_EXPR.  Hilarity ensued.

extern "C" int strcmp (const char *, const char *);

struct A {
  A(int);
  const char *str();
  ~A();
};

void printQueryI()
{
  if(!strcmp(A(1).str(), "foo"))
    { }
}