Skip to content

Commit

Permalink
Fix a vector test to not use a local type as a template parameter. Th…
Browse files Browse the repository at this point in the history
…is causes a warning on C++03. NFC

llvm-svn: 356726
  • Loading branch information
mclow committed Mar 22, 2019
1 parent 4c66155 commit a73ac7d
Showing 1 changed file with 9 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,11 @@ void test_ctor_under_alloc() {
#endif
}

// In C++03, you can't instantiate a template with a local type.
struct B1 { int x; };
struct B2 { int y; };
struct Der : B1, B2 { int z; };

// Initialize a vector with a different value type.
void test_ctor_with_different_value_type() {
{
Expand All @@ -156,15 +161,12 @@ void test_ctor_with_different_value_type() {
assert(v[1] == 1);
assert(v[2] == 2);
}
struct X { int x; };
struct Y { int y; };
struct Z : X, Y { int z; };
{
Z z;
Z *array[1] = { &z };
// Though the types Z* and Y* are very similar, initialization still cannot
Der z;
Der *array[1] = { &z };
// Though the types Der* and B2* are very similar, initialization still cannot
// be done with `memcpy`.
std::vector<Y*> v(array, array + 1);
std::vector<B2*> v(array, array + 1);
assert(v[0] == &z);
}
{
Expand Down

0 comments on commit a73ac7d

Please sign in to comment.