diff options
author | Jason Merrill <jason@redhat.com> | 2014-03-10 17:06:59 -0400 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2014-03-10 17:06:59 -0400 |
commit | 4a4e80cb6efdea628a8cee19e9dd31fa8b3a98cc (patch) | |
tree | 57e615e8623cd8f12022b2f7c684b8e7bb551211 /gcc/testsuite | |
parent | e5dddc50ba2b9f657ef1933f7a86bcd45560961c (diff) | |
download | gcc-4a4e80cb6efdea628a8cee19e9dd31fa8b3a98cc.zip gcc-4a4e80cb6efdea628a8cee19e9dd31fa8b3a98cc.tar.gz gcc-4a4e80cb6efdea628a8cee19e9dd31fa8b3a98cc.tar.bz2 |
re PR c++/60367 (Default argument object is not getting constructed)
PR c++/60367
* call.c (convert_default_arg): Remove special handling for
CONSTRUCTOR.
From-SVN: r208465
Diffstat (limited to 'gcc/testsuite')
-rw-r--r-- | gcc/testsuite/g++.dg/overload/defarg8.C | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/overload/defarg8.C b/gcc/testsuite/g++.dg/overload/defarg8.C new file mode 100644 index 0000000..b3ddfbb --- /dev/null +++ b/gcc/testsuite/g++.dg/overload/defarg8.C @@ -0,0 +1,22 @@ +// PR c++/60367 +// { dg-do run { target c++11 } } + +extern "C" int printf (const char *, ...); +extern "C" void abort(); + +void *p; +struct foo { + foo() { p = this; } + foo (const foo &) { abort(); } + ~foo() { if (p != this) abort(); } +}; + +void do_something( foo f = {} ) +{ + if (&f != p) abort(); +} + +int main() +{ + do_something(); +} |