http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52985

--- Comment #2 from Will Benfold <will at benfold dot com> 2012-04-18 18:08:16 
UTC ---
Another test case; this one doesn't need any headers and also cuts out the
loop.  The exit status should always be 1, but in fact it's 0 if no
command-line args are supplied and 1 otherwise.

----------------------------------------------------------------

struct Counter 
{
  Counter (int val = 0)
  : m_val(val)
  {}

  int operator* () const
  {
    return m_val;
  }

  Counter operator++ (int)
  {
    return Counter(m_val++);
  }

  int m_val;
};

int main (int argc, char *[])
{
  int a[] = {0};
  int b[] = {0};

  Counter c;

  ((argc > 1) ? a : b)[*c++];  

  return *c;
}

Reply via email to