[Scummvm-git-logs] scummvm master -> 33643c7cc32b84dd6e2ce16a2dd7f500219ccfd9

orgads noreply at scummvm.org
Thu May 15 04:37:33 UTC 2025


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .

Summary:
33643c7cc3 SCI: Suppress GCC warnings on release builds


Commit: 33643c7cc32b84dd6e2ce16a2dd7f500219ccfd9
    https://github.com/scummvm/scummvm/commit/33643c7cc32b84dd6e2ce16a2dd7f500219ccfd9
Author: Orgad Shaneh (orgads at gmail.com)
Date: 2025-05-15T07:37:28+03:00

Commit Message:
SCI: Suppress GCC warnings on release builds

In member function 'void Sci::reg_t::setSegment(Sci::SegmentId)',
    inlined from 'void Sci::reg_t::setSegment(Sci::SegmentId)' at engines/sci/engine/vm_types.cpp:39:6,
    inlined from 'Sci::reg_t Sci::make_reg(SegmentId, uint16)' at engines/sci/engine/vm_types.h:196:14,
    inlined from 'Sci::reg_t Sci::reg_t::operator+(Sci::reg_t) const' at engines/sci/engine/vm_types.cpp:70:19:
engines/sci/engine/vm_types.cpp:44:38: warning: 'r.Sci::reg_t::_segment' may be used uninitialized [-Wmaybe-uninitialized]
   44 |                 _segment = (_segment & 0xC000) | (segment & 0x3FFF);
      |                            ~~~~~~~~~~^~~~~~~~~
In file included from engines/sci/sci.h:29,
                 from engines/sci/engine/vm_types.cpp:22:
engines/sci/engine/vm_types.h: In member function 'Sci::reg_t Sci::reg_t::operator+(Sci::reg_t) const':
engines/sci/engine/vm_types.h:195:15: note: 'r.Sci::reg_t::_segment' was declared here
  195 |         reg_t r;
      |               ^

setSegment and setOffset together set all the bits without leaving
uninitialized parts, so this is not a real problem.

Changed paths:
    engines/sci/engine/vm_types.h


diff --git a/engines/sci/engine/vm_types.h b/engines/sci/engine/vm_types.h
index 6c222f77dc1..ce33a00d079 100644
--- a/engines/sci/engine/vm_types.h
+++ b/engines/sci/engine/vm_types.h
@@ -191,6 +191,12 @@ private:
 #endif
 };
 
+#if defined(__GNUC__) && !defined(__clang__)
+#pragma GCC diagnostic push
+// setSegment and setOffset together set all the bits without leaving
+// uninitialized parts, so this is not a real problem.
+#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
+#endif
 static inline reg_t make_reg(SegmentId segment, uint16 offset) {
 	reg_t r;
 	r.setSegment(segment);
@@ -204,6 +210,9 @@ static inline reg_t make_reg32(SegmentId segment, uint32 offset) {
 	r.setOffset(offset);
 	return r;
 }
+#if defined(__GNUC__) && !defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
 
 #define PRINT_REG(r) (kSegmentMask) & (unsigned) (r).getSegment(), (unsigned) (r).getOffset()
 




More information about the Scummvm-git-logs mailing list