[all-commits] [llvm/llvm-project] 7809fa: [flang][driver] Add support for `-D`, `-U`
Faris via All-commits
all-commits at lists.llvm.org
Wed Jan 6 08:17:39 PST 2021
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 7809fa20400000fd40b4a4b56696c7fbcd0f0fa9
https://github.com/llvm/llvm-project/commit/7809fa20400000fd40b4a4b56696c7fbcd0f0fa9
Author: Faris Rehman <faris.rehman at arm.com>
Date: 2021-01-06 (Wed, 06 Jan 2021)
Changed paths:
M clang/include/clang/Driver/Options.td
M clang/lib/Driver/ToolChains/Flang.cpp
M clang/lib/Driver/ToolChains/Flang.h
M flang/include/flang/Frontend/CompilerInstance.h
M flang/include/flang/Frontend/CompilerInvocation.h
A flang/include/flang/Frontend/PreprocessorOptions.h
M flang/lib/Frontend/CompilerInstance.cpp
M flang/lib/Frontend/CompilerInvocation.cpp
M flang/test/Flang-Driver/driver-help-hidden.f90
M flang/test/Flang-Driver/driver-help.f90
A flang/test/Flang-Driver/macro_def_undef.f90
A flang/test/Flang-Driver/macro_multiline.f90
Log Message:
-----------
[flang][driver] Add support for `-D`, `-U`
Add support for options -D and -U in the new Flang driver.
Summary of changes:
- Create PreprocessorOptions, to be used by the driver then translated
into Fortran::parser::Options
- Create CompilerInvocation::setFortranOpts to pass preprocessor
options into the parser options
- Add a dedicated method, Flang::AddPreprocessingOptions, to extract
preprocessing options from the driver arguments into the preprocessor
command arguments
Macros specified like -DName will default to definition 1.
When defining macros, the new driver will drop anything after an
end-of-line character. This is consistent with gfortran and clang, but
different to what currently f18 does. However, flang (which is a bash
wrapper for f18), also drops everything after an end-of-line character.
So gfortran-like behaviour felt like the natural choice. Test is added
to demonstrate this behaviour.
Reviewed By: awarzynski
Differential Revision: https://reviews.llvm.org/D93401
More information about the All-commits
mailing list