Thank you for your replies and clarifications! In general there are few separate scenarios that a driver based on clangDriver should to cater for. It might be helpful to list them here:
C/C++/Obj-C/Obj-C++ files is passed to clang:
This should not affect Flang at all.
Fortran file is passed to clang:
David, as you pointed out, in this case all Fortran flags should be forwarded to Flang via a dedicated specialisation of clang::Driver::tool. This is already available .
Fortran file is passed to Flang :
This should not affect Clang at all . Again, everything is claimed by Flang's specialisation of clang::Driver::tool .
C/C++/Obj-C/Obj-C++ file is passed to Flang :
Currently the new Flang driver rejects non-Fortran files (contributions in this area are very welcome!).
To summarise, for C/C++/Obj-C/Obj-C++ files, all options should be claimed by Clang's frontend driver. For Fortran input files, all options should be claimed by Flang's frontend driver. This covers all scenarios listed above. I would like to skip mixed source projects for now (e.g. C + Fortran).
In this RFC I'm only discussing *SCENARIO-ONE*. More specifically, what should happen when a Fortran flag  is used here:
clang -ffree-form file.c
IMO, it makes no sense for `clang` to claim it. The Flang "tool" is not required here, so it can't claim it either. Should `clang`:
* issue an error (current behaviour, inconsistent with GCC, brought up in  as problematic to some users), or
* issue a warning (implemented in , consistent with GCC)
What are you thoughts?
 llvm-project/Flang.h at 985a42fdf8ae3117442ea129b684569fa6942a71 · llvm/llvm-project · GitHub
 `flang-new` is the new Flang driver, to be renamed as `flang`
 ⚙ D95460 [flang][driver] Add forced form flags and -ffixed-line-length
 Fortran Dialect Options (The GNU Fortran Compiler)