aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorpeter klausler <pklausler@nvidia.com>2021-02-17 10:11:29 -0800
committerpeter klausler <pklausler@nvidia.com>2021-02-17 11:31:33 -0800
commit452d7ebc093a5f1434d2c616beb4a9fac6dc9783 (patch)
treee6502e2ce884a5d2f0cc63c617726f1a8ea8ed1c /clang/lib/Frontend/CompilerInvocation.cpp
parent1f9e551a811a4520cc6a3387b53d3cd568531697 (diff)
downloadllvm-452d7ebc093a5f1434d2c616beb4a9fac6dc9783.zip
llvm-452d7ebc093a5f1434d2c616beb4a9fac6dc9783.tar.gz
llvm-452d7ebc093a5f1434d2c616beb4a9fac6dc9783.tar.bz2
[flang] Ensure that intrinsic procedures are PURE &/or ELEMENTAL
The intrinsic procedure table properly classify the various intrinsics, but the PURE and ELEMENTAL attributes that these classifications imply don't always make it to the utility predicates that test symbols for them, leading to spurious error messages in some contexts. So set those attribute flags as appropriate in name resolution, using a new function to isolate the tests. An alternate solution, in which the predicates would query the intrinsic procedure table for these attributes on demand, was something I also tried, so that this information could come directly from an authoritative source; but it would have required references to the intrinsic table to be passed along on too many seemingly unrelated APIs and ended up looking messy. Several symbol table tests needed to have their expected outputs augmented with the PURE and ELEMENTAL flags. Some bogus messages that were flagged as such in test/Semantics/doconcurrent01.f90 were removed, since they are now correctly not emitted. Differential Revision: https://reviews.llvm.org/D96878
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions