[PATCH] Fix PR libstdc++/19510: Uninitialized variable in some iterators
Gabriel Dos Reis
gdr@integrable-solutions.net
Thu Jan 20 13:06:00 GMT 2005
Chris Jefferson <caj@cs.york.ac.uk> writes:
| Volker Reichelt wrote:
|
| >PR libstdc++/19510 is about a warning that is triggered from within the
| >libstdc++ headers. When compiling the following code snippet with
| >"-Wall -O3" using mainline
| >
| >===============================================
| >#include<vector>
| >#include<list>
| >
| >std::vector<std::list<int>::iterator> v(1);
| >===============================================
| >
| >the following warning is issued:
| >
| >/long_path/stl_construct.h: In function 'void
| >__static_initialization_and_destruction_0(int, int)':
| >/long_path/stl_construct.h:81: warning: 'SR.133' is used uninitialized in this
| >function
| >
| >
| I apologise if this is obvious / stupid, but is this really a bug in
| the class, or in the error message?
|
| I get the same error arriving from:
|
| #include<vector>
|
| struct ptrwrapper {
| int* a;
| ptrwrapper() {}
| };
|
| std::vector<ptrwrapper> v(1);
That is an error in the class ptrwrapper. Failing to initialise
ptrwrapper::a results in undefined behaviour when you use it.
-- Gaby
More information about the Gcc-patches
mailing list