You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
#156 turns on -Wall -Wextra for ForeFire's own sources, informational rather than fatal, with -DFOREFIRE_WARNINGS_AS_ERRORS=ON for whoever is clearing a file. This issue tracks emptying the backlog.
Linux/GCC: 428 warning lines, 373 unique after deduplicating header warnings repeated across translation units.
Category
Count
-Wunused-parameter
314
-Wdeprecated-copy
65
-Wmissing-field-initializers
24
-Wreorder
9 lines / 3 sites
-Wunused-variable
7
The 65 -Wdeprecated-copy are one missing operator. All trace to FFPoint, which declares a copy constructor (FFPoint.h:42) and a virtual destructor (line 39) but no copy assignment. Its members are three doubles with no owned memory, so the implicit assignment is behaviourally correct — a Rule of Three violation, not a live bug. Declaring FFPoint& operator=(const FFPoint&) clears 15% of the backlog in one line.
The 3 -Wreorder sites are benign (BurningRatioLayer.h:49, RosLayer.h:50, one more): every member is initialised from a constructor parameter, not from another member. Worth fixing anyway so the warning stays able to catch the dangerous version.
The DataLayer subclasses dominate and share a shape: the unused parameters are interface methods a given layer type genuinely does not need. [[maybe_unused]] or an omitted parameter name, repeated — good first-contribution work.
Turn on FOREFIRE_WARNINGS_AS_ERRORS per file as each is cleared, repository-wide at zero. Worth finishing before the C++17 move so the two diffs do not mix.
Drafted by Claude Opus 5 from a codebase audit. Reviewed by a maintainer before filing.
#156 turns on
-Wall -Wextrafor ForeFire's own sources, informational rather than fatal, with-DFOREFIRE_WARNINGS_AS_ERRORS=ONfor whoever is clearing a file. This issue tracks emptying the backlog.Linux/GCC: 428 warning lines, 373 unique after deduplicating header warnings repeated across translation units.
-Wunused-parameter-Wdeprecated-copy-Wmissing-field-initializers-Wreorder-Wunused-variableThe 65
-Wdeprecated-copyare one missing operator. All trace toFFPoint, which declares a copy constructor (FFPoint.h:42) and a virtual destructor (line 39) but no copy assignment. Its members are threedoubles with no owned memory, so the implicit assignment is behaviourally correct — a Rule of Three violation, not a live bug. DeclaringFFPoint& operator=(const FFPoint&)clears 15% of the backlog in one line.The 3
-Wreordersites are benign (BurningRatioLayer.h:49,RosLayer.h:50, one more): every member is initialised from a constructor parameter, not from another member. Worth fixing anyway so the warning stays able to catch the dangerous version.Where they concentrate:
The
DataLayersubclasses dominate and share a shape: the unused parameters are interface methods a given layer type genuinely does not need.[[maybe_unused]]or an omitted parameter name, repeated — good first-contribution work.Suggested order
src/stb_image_write.h(1724 lines, 24 warnings) and generatedsrc/colormap.h(2883 lines) intothird_party/, which Unit tests for every propagation and flux model, and -Wall -Wextra #156 creates. Both are currently globbed in byfile(GLOB_RECURSE SRC_FILES src/*.cpp).FFPointone-liner.Command.cppandFireDomain.cpp.Turn on
FOREFIRE_WARNINGS_AS_ERRORSper file as each is cleared, repository-wide at zero. Worth finishing before the C++17 move so the two diffs do not mix.Drafted by Claude Opus 5 from a codebase audit. Reviewed by a maintainer before filing.
EDIT: rewrote for human readability.