STL_MSFT added a comment.

F2472251: msvc_warnings.txt <https://reviews.llvm.org/F2472251>

- The attached patch on top of your patch fixes two simple MSVC warnings - 
unreferenced formal parameter and class/struct mismatch.

- Three tests are emitting stack consumption warnings (since MSVC /analyze 
tries to understand what's going on in the stack):

test\std\containers\sequences\deque\deque.cons\iter_iter.pass.cpp
iter_iter.pass.cpp(50) : warning C6262: Function uses '32868' bytes of stack:  
exceeds /analyze:stacksize '16384'.  Consider moving some data to heap.

test\std\containers\sequences\deque\deque.cons\size.pass.cpp
size.pass.cpp(85) : warning C6262: Function uses '800032' bytes of stack:  
exceeds /analyze:stacksize '16384'.  Consider moving some data to heap.

test\std\containers\sequences\deque\deque.cons\size_value_alloc.pass.cpp
size_value_alloc.pass.cpp(34) : warning C6262: Function uses '80044' bytes of 
stack:  exceeds /analyze:stacksize '16384'.  Consider moving some data to heap.

The 800KB consumption seems especially egregious. Changing these tests to 
dynamically allocate these huge objects will silence the warning.

- Finally, the following tests are asserting:

test\std\containers\sequences\vector\vector.capacity\reserve.pass.cpp
test\std\containers\sequences\vector\vector.capacity\resize_size.pass.cpp
test\std\containers\sequences\vector\vector.capacity\resize_size_value.pass.cpp
test\std\containers\sequences\vector\vector.cons\construct_iter_iter_alloc.pass.cpp
test\std\containers\sequences\vector\vector.cons\construct_size_value_alloc.pass.cpp
test\std\containers\sequences\vector\vector.modifiers\push_back.pass.cpp
test\std\containers\sequences\vector\vector.modifiers\push_back_rvalue.pass.cpp

This is because of the exact-space-consumption issue I feared/predicted - 
you're constructing stack_allocators with a small fixed amount of space, but 
our debug object occupies space, and that makes the allocator run out of memory.

A possible fix would be to increase the amount of space (two pointers should be 
sufficient).


https://reviews.llvm.org/D25154



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to