> Allow conversion warnings in subsets of the code base. By allowing this, we 
> can improve the code base in parts, and see that those parts do not regress 
> in the future.
> 
> My approach to implement this is by adding support to our make system to 
> recognise and handle "variable packs". A "variable pack" is a list of quoted 
> variable "appendings". It will be picked up by `NamedParamsMacroTemplate` and 
> there recognised by the lack of an assignment operator that is always used 
> when sending variables to macros today. To support sending lists of "variable 
> appendings", the appendings must quote assignment, spaces and quotes. This 
> would be cleanest to implement by hex or base64 encode the string. However, 
> this is extremely hard to do in make, and I prefer not calling the likes of 
> `od` or `base64` to make the code portable and fast.
> 
> With this infrastructure I implement a simple recursive utility to find all 
> files matching a pattern in a folder; I then transform that list to variable 
> assignments that will add compiler warnings for those files.
> 
> This approach is extremely flexible. I can for example combine many calls to 
> the `overrideFlags` macro with different source directories and different 
> patterns.
> 
> The macro will expand to something like (depending on compiler): 
> `module_file1.cpp_CXXFLAGS+=-Wconversion`
> `module_file2.cpp_CXXFLAGS+=-Wconversion`
> 
> this can flexibly be combined with other flags to overlap: 
> `module_file2.cpp_CXXFLAGS+=$(SPACE)-Wotherflag`
> `module_file3.cpp_CXXFLAGS+=$(SPACE)-Wotherflag`
> 
> (note the overlapping sets of flags `file1 -Wconversion`, `file2 -Wconversion 
> -Wotherflag`, `file3 -Wotherflag`)

Leo Korinth has updated the pull request incrementally with one additional 
commit since the last revision:

  Changes after comments from Erik and Kim

-------------

Changes:
  - all: https://git.openjdk.org/jdk/pull/29523/files
  - new: https://git.openjdk.org/jdk/pull/29523/files/150b2e3c..7964670b

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=29523&range=01
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=29523&range=00-01

  Stats: 30 lines in 3 files changed: 21 ins; 3 del; 6 mod
  Patch: https://git.openjdk.org/jdk/pull/29523.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/29523/head:pull/29523

PR: https://git.openjdk.org/jdk/pull/29523

Reply via email to