[cfe-dev] warn when ctor-initializer leaves uninitialized data?

Arthur O'Dwyer arthur at push.am
Tue Apr 10 10:20:09 PDT 2012


On Mon, Apr 9, 2012 at 17:04 PM, Nico Weber <thakis at chromium.org> wrote:
>
> this sounds like a really cool warning. I tried building chromium with
> it, here are a few examples where it warns but probably shouldn't:
[initializing a char array with strlcpy or strcpy]
[calling a helper method to initialize the members]
[using assignment statements in the body of the constructor]

This warning has the potential to get really messy if you try to
handle all possible cases.</stating-the-obvious> I know because I
implemented something exactly like this in (a proprietary fork of) the
EDG front-end a few years ago. Not saying you shouldn't try, just
saying it wasn't fun trying (and failing) to make it foolproof.

Here's one more semi-common idiom that we ran into at the time:

Foo::Foo() {
    memset(this, '\0', sizeof *this); // most of my fields should be
false or zero
    this->should_be_true = true; // initialize only the interesting ones
}

-Arthur



More information about the cfe-dev mailing list