Skip to content

Fix compiler warning: zero-initialize tm struct in DateTime::getTmUtc() - #754

Open
peremunoz wants to merge 1 commit into
quickfix:masterfrom
peremunoz:fix/fieldtypes-tm-initializer-warning
Open

Fix compiler warning: zero-initialize tm struct in DateTime::getTmUtc()#754
peremunoz wants to merge 1 commit into
quickfix:masterfrom
peremunoz:fix/fieldtypes-tm-initializer-warning

Conversation

@peremunoz

Copy link
Copy Markdown

What changes were made

Replaced tm result = {0}; with value-initialization tm result = {}; in FIX::DateTime::getTmUtc() inside src/C++/FieldTypes.h.

Why the changes were necessary

Compiling QuickFIX with compiler warnings enabled (-Wextra / -Wall) triggers a -Wmissing-field-initializers warning on struct tm:

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]

Using {0} only explicitly initializes the first struct member (tm_sec), causing GCC/Clang to warn about missing initializers for POSIX extension members (such as tm_gmtoff and tm_zone).

Updating to tm result = {}; performs standard C++ value-initialization across all fields of struct tm without triggering -Wmissing-field-initializers warnings.

Related Issues

Fixes #753

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

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

1 participant