Re: "might be used uninitialized..." what?
* Victor Bazarov:
Alf P. Steinbach wrote:
It's possible that I'm blind on both eyes.
After all, it's late in the day (or morning) for me.
But, I have this code which adds a string to a list of strings:
virtual cppx::Index add(
cppx::WideString const& s, cppx::WideString const& data
)
{
int const id = myStrings.add( data );
try
{
return Base::basicAdd( s, id );
}
catch( ... )
{
myStrings.remove( id );
throw;
}
}
Compiling with g++ 3.4.5, options (copy/paste from the IDE's build log)
-Wall -O -pedantic -Wall -g -O -pedantic -Wall -std=c++98
-Wno-long-long -Wwrite-strings
the compiler complains that
warning: 'id' might be used uninitialized in this function
Which line?
The reported line number points to the declaration of id.
And why do use such an old compiler, don't they already have v4.x?
No, this is under Windows.
However there's a 4.4.1 version of g++ for Windows available from TDM, <url:
http://www.tdragon.net/recentgcc/>.
"The TDM-GCC builds are unofficial replacements for the official MinGW releases
of GCC binaries. TDM-GCC was previously recommended for experimentation purposes
only, but constant use in day-to-day development and a total download count of
over 50,000 have proven the TDM-GCC releases to be at least as usable as the
most recent official MinGW GCC release. Therefore, TDM-GCC is now heartily
endorsed for production use in any non-critical environment, with only the
following caveats: "
But it's a bit of a risk to use an "unofficial" in-advance build of a voluntary
working-for-free team's porting efforts of this free compiler.
I don't think it would solve anything really.
Cheers,
- Alf