// { dg-do run } // GROUPS passed conversions #include #include #include #include #include class cvec { public: ~cvec(){ delete s; } cvec(const char*x) { s = new char[std::strlen(x)+1]; std::strcpy(s, x); } cvec(const cvec& c) { s = new char[std::strlen(c.s)+1]; std::strcpy(s, c.s); } operator const char*() { return s; } private: char *s; }; cvec B(const char* a) { return a; } void A(const char* s) { // s still ok here std::ifstream inf(s); if (std::strncmp ("aaa", s, 3)) { std::printf ("FAIL\n"); std::exit (1); } else std::printf ("PASS\n"); } int main() { A(B("aaa")); }