Fix test failure to to new/delete ellisions
authorEric Fiselier <eric@efcs.ca>
Sun, 9 Jul 2017 22:20:07 +0000 (22:20 +0000)
committerEric Fiselier <eric@efcs.ca>
Sun, 9 Jul 2017 22:20:07 +0000 (22:20 +0000)
llvm-svn: 307510

libcxx/test/std/utilities/memory/default.allocator/allocator.members/allocate.pass.cpp

index 253515e..f2cf9f2 100644 (file)
@@ -29,11 +29,12 @@ struct A
 
 int main()
 {
+    globalMemCounter.reset();
     std::allocator<A> a;
     assert(globalMemCounter.checkOutstandingNewEq(0));
     assert(A_constructed == 0);
     globalMemCounter.last_new_size = 0;
-    A* ap = a.allocate(3);
+    A* volatile ap = a.allocate(3);
     assert(globalMemCounter.checkOutstandingNewEq(1));
     assert(globalMemCounter.checkLastNewSizeEq(3 * sizeof(int)));
     assert(A_constructed == 0);
@@ -42,7 +43,7 @@ int main()
     assert(A_constructed == 0);
 
     globalMemCounter.last_new_size = 0;
-    A* ap2 = a.allocate(3, (const void*)5);
+    A* volatile ap2 = a.allocate(3, (const void*)5);
     assert(globalMemCounter.checkOutstandingNewEq(1));
     assert(globalMemCounter.checkLastNewSizeEq(3 * sizeof(int)));
     assert(A_constructed == 0);