[libcamera-devel] [PATCH] tests: gstreamer: Fix compiler error with gcc 8.4.0

Laurent Pinchart laurent.pinchart at ideasonboard.com
Fri Jul 7 11:02:49 CEST 2023


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>
---
 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
-- 
Regards,

Laurent Pinchart



More information about the libcamera-devel mailing list