aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/CodeGenModule.cpp
diff options
context:
space:
mode:
authorAsher Mancinelli <ashermancinelli@gmail.com>2025-05-13 08:13:47 -0700
committerGitHub <noreply@github.com>2025-05-13 08:13:47 -0700
commitbbb7f0148177d332df80b5cfdc7d161dca289056 (patch)
treef691c6756de19ac7f99323abd56809c16e841382 /clang/lib/CodeGen/CodeGenModule.cpp
parent4b794c8aff3ba01d95bd29973f45ff776aaee3ed (diff)
downloadllvm-bbb7f0148177d332df80b5cfdc7d161dca289056.zip
llvm-bbb7f0148177d332df80b5cfdc7d161dca289056.tar.gz
llvm-bbb7f0148177d332df80b5cfdc7d161dca289056.tar.bz2
[flang] Fix volatile attribute propagation on allocatables (#139183)
Ensure volatility is reflected not just on the reference to an allocatable, but on the box, too. When we declare a volatile allocatable, we now get a volatile reference to a volatile box. Some related cleanups: * SELECT TYPE constructs check the selector's type for volatility when creating and designating the type used in the selecting block. * Refine the verifier for fir.convert. In general, I think it is ok to implicitly drop volatility in any ptr-to-int conversion because it means we are in codegen (and representing volatility on the LLVM ops and intrinsics) or we are calling an external function (are there any cases I'm not thinking of?) * An allocatable test that was XFAILed is now passing. Making allocatables' boxes volatile resulted in accesses of those boxes being volatile, which resolved some errors coming from the strict verifier. * I noticed a runtime function was missing the fir.runtime attribute.
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
0 files changed, 0 insertions, 0 deletions