Re: gcc warning with "some variable may be used uninitialized in this function [-Wmaybe-uninitialized]" when building under msys
Pedro Alves <[email protected]>
| Newsgroups | gmane.comp.gdb.devel |
|---|---|
| Message-ID | <[email protected]> |
On 10/09/2018 08:54 PM, Pedro Alves wrote: > On 10/09/2018 08:33 PM, Tom Tromey wrote: >>>>>>> "Pedro" == Pedro Alves <[email protected]> writes: >> >>>> It would be good if gcc could recognize std::optional and not issue the >>>> warning when it is used. Perhaps gdb could then just always use >>>> optional for the maybe-not-initialized cases. >> >> Pedro> Really not sure whether that is possible. I think there's hope >> Pedro> that GCC value tracking becomes smart enough that these >> Pedro> std::optional-related warnings end up disappearing (which usually >> Pedro> means the code will optimize better too). Fingers crossed, at least. >> >> For gdb::optional, I think it would be good enough if we could simply >> suppress the warning and make operator* assert that the object was >> instantiated. Perhaps std::optional could enforce this in debug mode as >> well. > > Last I tried, I couldn't find a way to suppress the warning from > gdb::optional. The warning triggers in code that belongs to > T in gdb::optional<T>. Maybe we could make gdb::optional's ctor initialize the payload only in devel mode, leave it uninitialized in release mode, and add back -Werror for that warning. We'd see the warnings in release mode, but releases don't use -Werror so it's less of an issue. Doesn't really fix the issue though, just papers over it. Not sure that really helps. Thanks, Pedro Alves