From: Benjamin Kosnik Date: Tue, 17 Apr 2012 16:41:40 +0000 (+0000) Subject: 808590.cc: New. X-Git-Tag: misc/gccgo-go1_1_2~3449 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ac9ce934ed56bc46b865adb396adbf35a1e5a7a1;p=thirdparty%2Fgcc.git 808590.cc: New. 2012-04-17 Benjamin Kosnik * testsuite/20_util/specialized_algorithms/uninitialized_copy/ 808590.cc: New. From-SVN: r186539 --- diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index d016408eb25e..0ef3c815e878 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,8 @@ +2012-04-17 Benjamin Kosnik + + * testsuite/20_util/specialized_algorithms/uninitialized_copy/ + 808590.cc: New. + 2012-04-17 Rainer Orth * testsuite/util/testsuite_abi.cc (compare_symbols): Change diff --git a/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/808590.cc b/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/808590.cc new file mode 100644 index 000000000000..7ccd8da6b3f0 --- /dev/null +++ b/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/808590.cc @@ -0,0 +1,48 @@ +// Copyright (C) 2012 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 3, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without Pred the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING3. If not see +// . + +#include +#include + +// 4.4.x only +struct c +{ + void *m; + + c(void* o = 0) : m(o) {} + c(const c &r) : m(r.m) {} + + template + explicit c(T &o) : m((void*)0xdeadfbeef) { } +}; + +int main() +{ + std::vector cbs; + const c cb((void*)0xcafebabe); + + for (int fd = 62; fd < 67; ++fd) + { + cbs.resize(fd + 1); + cbs[fd] = cb; + } + + for (int fd = 62; fd< 67; ++fd) + if (cb.m != cbs[fd].m) + throw std::runtime_error("wrong"); + return 0; +}