| // PR c++/100838 | |
| // { dg-do run } | |
| // { dg-additional-options -fno-elide-constructors } | |
| extern "C" int puts (const char *); | |
| int c,d; | |
| class MyString { | |
| public: | |
| MyString(const char* s = "") { | |
| puts ("ctor"); | |
| ++c; | |
| } | |
| ~MyString() { | |
| puts ("dtor"); | |
| ++d; | |
| } | |
| MyString(const MyString& s) { | |
| puts ("copy ctor"); | |
| ++c; | |
| } | |
| MyString& operator=(const MyString& s); | |
| }; | |
| int main() { | |
| { | |
| MyString s1 = "Hello"; | |
| puts ("main"); | |
| } | |
| if (c != d) | |
| __builtin_abort(); | |
| } |