[PATCH v1] android: camera_capabilities: Fix GCC 14 warning
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Mon May 27 13:01:35 CEST 2024
On Mon, May 27, 2024 at 11:29:57AM +0100, Kieran Bingham wrote:
> Quoting Barnabás Pőcze (2024-05-25 17:50:55)
> > GCC 14 thinks `rects` is a "possibly dangling reference to a temporary",
> > which causes the compilation to fail due to the use of `-Werror`.
>
> The error message from GCC might be more useful. The fact it fails due
> to the use of -Werror is just a side effect of the warning, and that we
> aim to be warning free.
>
> >
> > Fix this by not using a reference.
> >
> > Signed-off-by: Barnabás Pőcze <pobrn at protonmail.com>
> > ---
> > src/android/camera_capabilities.cpp | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/src/android/camera_capabilities.cpp b/src/android/camera_capabilities.cpp
> > index 6f4d48de..71043e12 100644
> > --- a/src/android/camera_capabilities.cpp
> > +++ b/src/android/camera_capabilities.cpp
> > @@ -1081,7 +1081,7 @@ int CameraCapabilities::initializeStaticMetadata()
> > }
> >
> > {
> > - const Span<const Rectangle> &rects =
> > + const Span<const Rectangle> rects =
> > properties.get(properties::PixelArrayActiveAreas).value_or(Span<const Rectangle>{});
>
> Presumably this means it will make a copy of the Span. But that's
> incredible cheap so not an issue?
Correct, it's cheap. It seems to be a false positive from gcc though.
I'm curious to see the exact error message.
> I don't object to it - and with the compiler warning clarified (which is
> the underlying justification for the change):
>
> Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
>
> > std::vector<int32_t> data{
> > static_cast<int32_t>(rects[0].x),
--
Regards,
Laurent Pinchart
More information about the libcamera-devel
mailing list