Skip to content

Compiler warning: -Wmissing-field-initializers in FIX::DateTime::getTmUtc() (FieldTypes.h) #753

Description

@peremunoz

When compiling QuickFIX with compiler warnings enabled (-Wextra / -Wall), GCC/Clang emit a -Wmissing-field-initializers warning in src/C++/FieldTypes.h inside FIX::DateTime::getTmUtc().

The variable result is initialized using tm result = {0};, which triggers compiler warnings for missing initializers for struct tm fields (tm_min, tm_hour, tm_gmtoff, tm_zone, etc.).

Steps to Reproduce

  1. Configure QuickFIX with -DCMAKE_CXX_FLAGS="-Wall -Wextra":
    cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-Wall -Wextra"
  2. Build the project:
  cmake --build build

Expected Behavior

The codebase should compile cleanly without -Wmissing-field-initializers warnings on standard C++ compilers.

Actual Behavior

The compiler outputs the following warnings:

src/C++/FieldTypes.h:231:19: warning: missing initializer for member ‘tm::tm_min’ [-Wmissing-field-initializers]
src/C++/FieldTypes.h:231:19: warning: missing initializer for member ‘tm::tm_hour’ [-Wmissing-field-initializers]
src/C++/FieldTypes.h:231:19: warning: missing initializer for member ‘tm::tm_gmtoff’ [-Wmissing-field-initializers]
src/C++/FieldTypes.h:231:19: warning: missing initializer for member ‘tm::tm_zone’ [-Wmissing-field-initializers]

Location

  • File: src/C++/FieldTypes.h
  • Function: FIX::DateTime::getTmUtc()
  • Line 231: tm result = {0};

Proposed Fix

Change tm result = {0}; to tm result = {}; (or tm result{};), which value-initializes all fields of struct tm without triggering -Wmissing-field-initializers.

Environment

  • QuickFIX version: latest master
  • OS: Linux (Ubuntu x86_64)
  • Compiler: GCC 11 / Clang (with C++17)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions