In cases like the below, I usually settle on the compromise of explicitly value-initializing the variable v of (fundamental) type T with

  T v = T();

(maybe even adding a comment like "// avoid warnings"), which keeps compilers happy but still makes it clear to the reader not to assume v is deliberately assigned a specific value at that point, which is the problem with a hack like

  bool bValue = false;

Stephan

On 10/17/2013 04:07 AM, Lionel Elie Mamane wrote:
commit 9d5e05edb20819e7b989f366fbd86ca4c2cd7cc5
Author: Lionel Elie Mamane <lio...@mamane.lu>
Date:   Thu Oct 17 04:06:24 2013 +0200

     bogus WaE: 'bValue' may be used uninitialized in this function

     Change-Id: I14983509a41bd6be0d7fed29d7f89fa4a21fe08a

diff --git a/forms/source/component/CheckBox.cxx 
b/forms/source/component/CheckBox.cxx
index 5198ccc..5db7397 100644
--- a/forms/source/component/CheckBox.cxx
+++ b/forms/source/component/CheckBox.cxx
@@ -217,7 +217,7 @@ Any OCheckBoxModel::translateDbColumnToControlValue()

      //////////////////////////////////////////////////////////////////
      // Set value in ControlModel
-    bool bValue = false;
+    bool bValue;
      if(DbUseBool())
      {
          bValue = m_xColumn->getBoolean();
@@ -241,7 +241,17 @@ Any OCheckBoxModel::translateDbColumnToControlValue()
      }
      else if ( !aValue.hasValue() )
      {
+        // Since above either bValue is initialised, either aValue.hasValue(),
+        // bValue cannot be used uninitialised here.
+        // But GCC does not see/understand that, which breaks -Werror builds.
+#if defined __GNUC__
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
+#endif
          aValue <<= (sal_Int16)( bValue ? STATE_CHECK : STATE_NOCHECK );
+#if defined __GNUC__
+#pragma GCC diagnostic pop
+#endif
      }

      return aValue;
_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice

Reply via email to