diff options
author | jeanPerier <jperier@nvidia.com> | 2023-10-27 10:33:57 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-27 10:33:57 +0200 |
commit | 0a10e88915167c88443dd58883e01d543963e40e (patch) | |
tree | 769bd04906680c0f787e5feb893fe1a7d35142fb /clang/lib/Frontend/CompilerInvocation.cpp | |
parent | ea1909f82ceca30b009701f1d349247f8fbf1c3e (diff) | |
download | llvm-0a10e88915167c88443dd58883e01d543963e40e.zip llvm-0a10e88915167c88443dd58883e01d543963e40e.tar.gz llvm-0a10e88915167c88443dd58883e01d543963e40e.tar.bz2 |
[flang] Implement legacy %VAL and %REF actual arguments (#70343)
Update evaluate::ActualArgument to propagate the %VAL and %REF markers
until lowering.
Semantic checks are added to %VAL to ensure the argument is a numerical
or logical scalar.
I did not push these markers into the characteristics because other
compilers do not complain about inconsistent usages (e.g. using %VAL in
a call on a procedure with an interface without VALUE dummies is not
flagged by any compilers I tested, and it is not an issue for lowering,
so I decided to stay simple here and minimize the footprint of these
legacy features).
Lowering retrieves these markers and does the right thing: pass %VAL in
registers and pass %REF by address without adding any extra arguments
for characters.
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions