44 lines
613 B
C
44 lines
613 B
C
// { dg-do assemble }
|
|
// { dg-options "-O2" }
|
|
// g++ crashed because we unsaved the TARGET_EXPR for the return value
|
|
// for get_allocator without first expanding it, because it was part of the
|
|
// cleanup for the temporary string.
|
|
|
|
// Derived from libstdc++ v3 code.
|
|
|
|
|
|
class AA {};
|
|
|
|
void fee (const AA&);
|
|
|
|
class basic_string
|
|
{
|
|
public:
|
|
basic_string(const char*);
|
|
|
|
~basic_string()
|
|
{ fee (this->get_allocator()); }
|
|
|
|
AA get_allocator();
|
|
};
|
|
|
|
class failure
|
|
{
|
|
public:
|
|
failure(const basic_string& __str);
|
|
};
|
|
|
|
class foo
|
|
{
|
|
public:
|
|
foo(int x)
|
|
{
|
|
throw failure ("");
|
|
}
|
|
};
|
|
|
|
void test05()
|
|
{
|
|
foo ofs(0);
|
|
}
|