Re: New santizer warning in KF 5.98 headers

2023-01-11 Thread Michael Reeves
That looks a lot better. Weird magic numbers are what enums are ment to
avoid.

On Wed, Jan 11, 2023 at 7:26 AM Nicolas Fella  wrote:

> On 1/10/23 22:49, Michael Reeves wrote:
> > /usr/include/KF5/KConfigWidgets/kstandardaction.h:261:64: runtime
> > error: load of value 4294967295, which is not a valid value for type
> > 'Qt::ConnectionType'
> >
> > SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior
> > /usr/include/KF5/KConfigWidgets/kstandardaction.h:261:64 in
> >
> > The issue stems for assigning an int to a enum which is internally
> > considered unsigned and possibly smaller than the four byte int. If
> > this is doing what we expect than I need a way to shut off the warning.
> Looks like
> https://invent.kde.org/frameworks/kconfigwidgets/-/merge_requests/175
> aims to address this?
>


Re: New santizer warning in KF 5.98 headers

2023-01-11 Thread Nicolas Fella

On 1/10/23 22:49, Michael Reeves wrote:

/usr/include/KF5/KConfigWidgets/kstandardaction.h:261:64: runtime
error: load of value 4294967295, which is not a valid value for type
'Qt::ConnectionType'

SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior
/usr/include/KF5/KConfigWidgets/kstandardaction.h:261:64 in

The issue stems for assigning an int to a enum which is internally
considered unsigned and possibly smaller than the four byte int. If
this is doing what we expect than I need a way to shut off the warning.

Looks like
https://invent.kde.org/frameworks/kconfigwidgets/-/merge_requests/175
aims to address this?


Re: New santizer warning in KF 5.98 headers

2023-01-11 Thread Milian Wolff
On Mittwoch, 11. Januar 2023 11:26:42 CET Ingo Klöcker wrote:
> On Mittwoch, 11. Januar 2023 11:02:04 CET Milian Wolff wrote:
> > On Dienstag, 10. Januar 2023 23:45:26 CET Michael Reeves wrote:
> > > Thanks. I would say your right there this would definitely have caught
> > > someone's attention if didn't work in practice with what kde needs.
> > > Santizers are by design quite pedantic as serves there purpose well.
> > 
> > I agree, the code is clearly wrong and it's unclear what it's trying to
> > achieve here. Does anyone know what this is trying to do?
> > 
> > Qt::ConnectionType connectionType = static_cast(-1)
> > 
> > Should this maybe just be changed to use Qt::AutoConnection?
> 
> The code:
> https://invent.kde.org/frameworks/kconfigwidgets/-/blob/master/src/
> kstandardaction.h#L253
> 
> What the code does:
> The default value `static_cast(-1)` serves as hint that
> the function should decide what kind of connection type to use and for some
> reason the `ConfigureToolbars` action explicitly needs to use a
> `Qt::QueuedConnection` instead of a `Qt::AutoConnection`. This could be
> changed to a std::optional (for KF6) to make the intention clear.

Indeed, I should have read the body of the function and not stop at the 
signature only :)

Thanks for the explanation Ingo! And std::optional for KF6 would be great imo, 
if this is really needed.

> Why the code does what it does:
> One could question whether this special casing for `ConfigureToolbars` is
> still necessary. The bug report about the crash that this seems to have
> fixed is from 2009: https://bugs.kde.org/show_bug.cgi?id=200815
> 
> Regards,
> Ingo


-- 
Milian Wolff
m...@milianw.de
http://milianw.de

signature.asc
Description: This is a digitally signed message part.


Re: New santizer warning in KF 5.98 headers

2023-01-11 Thread Ingo Klöcker
On Mittwoch, 11. Januar 2023 11:02:04 CET Milian Wolff wrote:
> On Dienstag, 10. Januar 2023 23:45:26 CET Michael Reeves wrote:
> > Thanks. I would say your right there this would definitely have caught
> > someone's attention if didn't work in practice with what kde needs.
> > Santizers are by design quite pedantic as serves there purpose well.
> 
> I agree, the code is clearly wrong and it's unclear what it's trying to
> achieve here. Does anyone know what this is trying to do?
> 
> Qt::ConnectionType connectionType = static_cast(-1)
> 
> Should this maybe just be changed to use Qt::AutoConnection?

The code:
https://invent.kde.org/frameworks/kconfigwidgets/-/blob/master/src/
kstandardaction.h#L253

What the code does:
The default value `static_cast(-1)` serves as hint that 
the function should decide what kind of connection type to use and for some 
reason the `ConfigureToolbars` action explicitly needs to use a 
`Qt::QueuedConnection` instead of a `Qt::AutoConnection`. This could be 
changed to a std::optional (for KF6) to make the intention clear.

Why the code does what it does:
One could question whether this special casing for `ConfigureToolbars` is still 
necessary. The bug report about the crash that this seems to have fixed is from 
2009: https://bugs.kde.org/show_bug.cgi?id=200815

Regards,
Ingo




signature.asc
Description: This is a digitally signed message part.


Re: New santizer warning in KF 5.98 headers

2023-01-11 Thread Milian Wolff
On Dienstag, 10. Januar 2023 23:45:26 CET Michael Reeves wrote:
> Thanks. I would say your right there this would definitely have caught
> someone's attention if didn't work in practice with what kde needs.
> Santizers are by design quite pedantic as serves there purpose well.

I agree, the code is clearly wrong and it's unclear what it's trying to 
achieve here. Does anyone know what this is trying to do?

Qt::ConnectionType connectionType = static_cast(-1)

Should this maybe just be changed to use Qt::AutoConnection?

Thanks
-- 
Milian Wolff
m...@milianw.de
http://milianw.de

signature.asc
Description: This is a digitally signed message part.