Fix std::vector test to pass in C++98 mode
authorJonathan Wakely <jwakely@redhat.com>
Thu, 28 Jul 2016 21:00:39 +0000 (22:00 +0100)
committerJonathan Wakely <redi@gcc.gnu.org>
Thu, 28 Jul 2016 21:00:39 +0000 (22:00 +0100)
* testsuite/23_containers/vector/check_construct_destroy.cc: Account
for different construct/destroy counts in C++98 mode.

From-SVN: r238836

libstdc++-v3/ChangeLog
libstdc++-v3/testsuite/23_containers/vector/check_construct_destroy.cc

index 3afe2bf..bc52008 100644 (file)
@@ -1,5 +1,8 @@
 2016-07-28  Jonathan Wakely  <jwakely@redhat.com>
 
+       * testsuite/23_containers/vector/check_construct_destroy.cc: Account
+       for different construct/destroy counts in C++98 mode.
+
        * testsuite/17_intro/headers/c++2011/stdc++.cc: Change target-specific
        dg-options to dg-additional-options so that default options are used.
        * testsuite/17_intro/headers/c++2011/stdc++_multiple_inclusion.cc:
index b92a152..ddf0f9a 100644 (file)
@@ -44,14 +44,17 @@ int main()
   }
   ok = check_construct_destroy("Construct from range", 10, 10) && ok;
 
+  // For C++11 and later the allocator is used to construct/destroy an
+  // additional temporary object during insertion.
+  const int extra = __cplusplus >= 201102L ? 1 : 0;
   {
     Container c(arr10, arr10 + 10);
     c.reserve(100);
     tracker_allocator_counter::reset();
     c.insert(c.begin(), arr10[0]);
-    ok = check_construct_destroy("Insert element", 2, 1) && ok;
+    ok = check_construct_destroy("Insert element", 1+extra, 0+extra) && ok;
   }
-  ok = check_construct_destroy("Insert element", 2, 12) && ok;
+  ok = check_construct_destroy("Insert element", 1+extra, 11+extra) && ok;
 
   {
     Container c(arr10, arr10 + 10);