diff options
author | Peter Klausler <pklausler@nvidia.com> | 2023-06-21 12:43:55 -0700 |
---|---|---|
committer | Peter Klausler <pklausler@nvidia.com> | 2023-06-22 07:05:51 -0700 |
commit | fa459d988276bb88ab577dd7a38b42a85ac8db94 (patch) | |
tree | 849e8c0ea0cb9cee9af82b8a5ce36c3d8ecd0050 /flang/lib/Frontend/CompilerInvocation.cpp | |
parent | 73a0ae021ec6112911b98025055b8a2e881b1376 (diff) | |
download | llvm-fa459d988276bb88ab577dd7a38b42a85ac8db94.zip llvm-fa459d988276bb88ab577dd7a38b42a85ac8db94.tar.gz llvm-fa459d988276bb88ab577dd7a38b42a85ac8db94.tar.bz2 |
[flang] Rewrite "1*j" to "(j)", not "j", when j is a variable
Expression folding currently unconditionally rewrites "1*j"
to "j", which is wrong when "j" is a variable, as it transforms
an expression into a variable and can lead to incorrect associations
in contexts like an actual argument or an ASSOCIATE selector.
Transform "1*j" to a parenthesized "(j)" when "j" is a variable.
Fixes LLVM bug https://github.com/llvm/llvm-project/issues/63259.
Differential Revision: https://reviews.llvm.org/D153457
Diffstat (limited to 'flang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions