[libcamera-devel] [PATCH] tests: gstreamer: Fix compiler error with gcc 8.4.0
Umang Jain
umang.jain at ideasonboard.com
Fri Jul 7 11:03:45 CEST 2023
Hi Laurent,
On 7/7/23 11:02 AM, Laurent Pinchart wrote:
> The provider g_autoptr variable introduced by commit adb1bbb748a1
> ("tests: gstreamer: Test cameras' enumeration from GstDeviceProvider")
> is left uninitialized when declared. The cleanup function could thus get
> called on an unitialized variable if the scope was exited before the
> variable gets initialized. This can't occur here, but gcc 8.4.0 still
> complains about it:
>
> /usr/include/glib-2.0/glib/gmacros.h: In member function ‘virtual int GstreamerDeviceProviderTest::run()’:
> /usr/include/glib-2.0/glib/gmacros.h:1049:27: error: ‘provider’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
> { if (_ptr) (cleanup) ((ParentName *) _ptr); } \
> ^
> ../test/gstreamer/gstreamer_device_provider_test.cpp:37:32: note: ‘provider’ was declared here
> g_autoptr(GstDeviceProvider) provider;
>
> Silence the error by initializing the variable to NULL at declaration
> time. This is a good practice in any case, as later refactoring could
> otherwise introduce a scope exit before initialization.
>
> Fixes: adb1bbb748a1 ("tests: gstreamer: Test cameras' enumeration from GstDeviceProvider")
> Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
LGTM, ship it!
Reviewed-by: Umang Jain <umang.jain at ideasonboard.com>
> ---
> test/gstreamer/gstreamer_device_provider_test.cpp | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/test/gstreamer/gstreamer_device_provider_test.cpp b/test/gstreamer/gstreamer_device_provider_test.cpp
> index c8606b90559b..237af8cd934e 100644
> --- a/test/gstreamer/gstreamer_device_provider_test.cpp
> +++ b/test/gstreamer/gstreamer_device_provider_test.cpp
> @@ -34,7 +34,7 @@ protected:
>
> int run() override
> {
> - g_autoptr(GstDeviceProvider) provider;
> + g_autoptr(GstDeviceProvider) provider = NULL;
> GList *devices, *l;
> std::vector<std::string> cameraNames;
> std::unique_ptr<libcamera::CameraManager> cm;
>
> base-commit: adb1bbb748a12eb2427f2d19a46fae55d99b623a
More information about the libcamera-devel
mailing list