Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
R
riscv-gcc-1
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lvzhengyang
riscv-gcc-1
Commits
d81102f4
Commit
d81102f4
authored
Jul 08, 2016
by
Jonathan Wakely
Committed by
Jonathan Wakely
Jul 08, 2016
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* testsuite/23_containers/vector/modifiers/insert/aliasing.cc: New.
From-SVN: r238169
parent
02eb5b8b
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
83 additions
and
0 deletions
+83
-0
libstdc++-v3/ChangeLog
+4
-0
libstdc++-v3/testsuite/23_containers/vector/modifiers/insert/aliasing.cc
+79
-0
No files found.
libstdc++-v3/ChangeLog
View file @
d81102f4
2016-07-08 Jonathan Wakely <jwakely@redhat.com>
* testsuite/23_containers/vector/modifiers/insert/aliasing.cc: New.
2016-07-07 Jonathan Wakely <jwakely@redhat.com>
* doc/xml/manual/status_cxx2014.xml: Update LFTS status table.
...
...
libstdc++-v3/testsuite/23_containers/vector/modifiers/insert/aliasing.cc
0 → 100644
View file @
d81102f4
// Copyright (C) 2016 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 even 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
// <http://www.gnu.org/licenses/>.
// { dg-options "-std=gnu++14" }
#include <vector>
#include <memory>
#include <testsuite_hooks.h>
// See https://gcc.gnu.org/ml/libstdc++/2016-07/msg00008.html for background.
struct
T
{
T
(
int
v
=
0
)
:
value
(
v
)
{
}
T
(
const
T
&
t
);
T
&
operator
=
(
const
T
&
t
);
void
make_child
()
{
child
=
std
::
make_unique
<
T
>
(
value
+
10
);
}
std
::
unique_ptr
<
T
>
child
;
int
value
;
};
T
::
T
(
const
T
&
t
)
:
value
(
t
.
value
)
{
if
(
t
.
child
)
child
.
reset
(
new
T
(
*
t
.
child
));
}
T
&
T
::
operator
=
(
const
T
&
t
)
{
value
=
t
.
value
;
if
(
t
.
child
)
{
if
(
child
)
*
child
=
*
t
.
child
;
else
child
.
reset
(
new
T
(
*
t
.
child
));
}
else
child
.
reset
();
return
*
this
;
}
void
test01
()
{
std
::
vector
<
T
>
v
;
v
.
reserve
(
3
);
v
.
push_back
(
T
(
1
));
v
.
back
().
make_child
();
v
.
push_back
(
T
(
2
));
v
.
back
().
make_child
();
VERIFY
(
v
[
1
].
child
->
value
==
12
);
VERIFY
(
v
[
1
].
child
->
child
==
nullptr
);
v
.
insert
(
v
.
begin
(),
*
v
[
1
].
child
);
VERIFY
(
v
[
0
].
value
==
12
);
VERIFY
(
v
[
0
].
child
==
nullptr
);
}
int
main
()
{
test01
();
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment