view gcc/testsuite/g++.dg/expr/cond16.C @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents
children
line wrap: on
line source

// PR c++/90393
// { dg-do run }

int c, d;

struct string {
  string(const char *p): s(p) { ++c; }
  ~string() { ++d; }
  string(const string& str): s(str.s) { ++c; }
  const char* s;
  bool empty() const { return !s; }
};
    
string foo()
{
  string s("foo");
  return s.empty() ? throw "empty" : s;
}

int main()
{
  foo();
  if (c != d)
    __builtin_abort();
}