Compilers use the same command line option to indicate different things.

- A new revision learns to detect new errors and rolls this into an existing flag
- A new revision removes a detection that proved unpopular
- Different compiler implementations make different analyses reasonable
- Different compiler developer motivations lead to different analyses
- Names are hard and get reused

I can see two paths for standardising the parameters passed to the compiler:

- standardised name, implementation defined semantics
- standardised name, standardised semantics

The former appears to be worthless. I'll still need to use different flags with different compilers.

The latter would need to convince roughly n-1 compilers to implement the same semantics as the 1, or for all to change their semantics. Regardless of how reasonable the change is given their architecture or how motivated the developers are to change from the version they already have.

The conditional logic in build scripts to change flags based on the compiler is already trivial. Working out which flags to use is project dependent and comprises all of the work involved in specifying parameters.

The C++ tooling ecosystem needs improvement. I don't think this particular lack is a problem worth the committee time.

Jon