[libcamera-devel] [PATCH] cam: options: Fix unitialized variable warning

Laurent Pinchart laurent.pinchart at ideasonboard.com
Sat Nov 23 09:36:51 CET 2019


gcc 8 and 9 complain about the OptionValue::integer_ member being
possibly used initialized when compiled in release mode. I haven't been
able to find where this could be the case, and the compiler error
message isn't helpful:

In file included from ../../src/cam/options.cpp:14:
../../src/cam/options.h: In member function ‘bool OptionsBase<T>::parseValue(const T&, const Option&, const char*) [with T = std::__cxx11::basic_string<char>]’:
../../src/cam/options.h:84:7: error: ‘<anonymous>.OptionValue::integer_’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
 class OptionValue
       ^~~~~~~~~~~
../../src/cam/options.h: In member function ‘bool OptionsBase<T>::parseValue(const T&, const Option&, const char*) [with T = int]’:
../../src/cam/options.h:84:7: error: ‘<anonymous>.OptionValue::integer_’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
 class OptionValue
       ^~~~~~~~~~~

Furthermore valgrind doesn't report any issue. This is likely a false
positive, but fix it nonetheless as the fix is cheap.

Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
---
 src/cam/options.cpp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/cam/options.cpp b/src/cam/options.cpp
index 7e2dfa636ccf..186e853c8294 100644
--- a/src/cam/options.cpp
+++ b/src/cam/options.cpp
@@ -260,17 +260,17 @@ OptionValue::OptionValue(int value)
 }
 
 OptionValue::OptionValue(const char *value)
-	: type_(ValueString), string_(value)
+	: type_(ValueString), integer_(0), string_(value)
 {
 }
 
 OptionValue::OptionValue(const std::string &value)
-	: type_(ValueString), string_(value)
+	: type_(ValueString), integer_(0), string_(value)
 {
 }
 
 OptionValue::OptionValue(const KeyValueParser::Options &value)
-	: type_(ValueKeyValue), keyValues_(value)
+	: type_(ValueKeyValue), integer_(0), keyValues_(value)
 {
 }
 
-- 
Regards,

Laurent Pinchart



More information about the libcamera-devel mailing list