2003-12-26 Guilhem Lavaux <guilhem@kaffe.org>
[official-gcc.git] / gcc / testsuite / g++.old-deja / g++.law / cvt2.C
blobafe138bd96996c00c7ffaa389e25ab1aa866925c
1 // { dg-do run  }
2 // GROUPS passed conversions
3 #include <cstdio>
4 #include <cstdlib>
5 #include <cstring>
6 #include <iostream>
7 #include <fstream>
9 class cvec {
10 public:
11         ~cvec(){ delete s; }
12         cvec(const char*x) { s = new char[std::strlen(x)+1]; std::strcpy(s, x); }
13         cvec(const cvec& c) { s = new char[std::strlen(c.s)+1]; std::strcpy(s, c.s); }
14         operator const char*() { return s; }
15 private:
16         char *s;
19 cvec
20 B(const char* a)
22         return a;
25 void
26 A(const char* s)
28         // s still ok here
29         std::ifstream inf(s);
30         if (std::strncmp ("aaa", s, 3))
31           {
32             std::printf ("FAIL\n");
33             std::exit (1);
34           }
35         else
36           std::printf ("PASS\n");
39 int main()
41         A(B("aaa"));