aboutsummaryrefslogtreecommitdiff
path: root/clang/unittests/Format/FormatTestJava.cpp
diff options
context:
space:
mode:
authorHui <hui.xie1990@gmail.com>2025-10-19 19:25:00 +0100
committerGitHub <noreply@github.com>2025-10-19 19:25:00 +0100
commitb2574c9dad487be92605316efd929738a5f6d851 (patch)
tree024af10a3fd0de1914e560db118e0b267067a705 /clang/unittests/Format/FormatTestJava.cpp
parent8b74582591ba22d8e8454efe35c96fa1c393571a (diff)
downloadllvm-b2574c9dad487be92605316efd929738a5f6d851.zip
llvm-b2574c9dad487be92605316efd929738a5f6d851.tar.gz
llvm-b2574c9dad487be92605316efd929738a5f6d851.tar.bz2
[clang] [libc++] fix _Atomic c11 compare exchange does not update expected results (#78707)
fixes #30023 The issue is that for compare exchange builtin, if the type's size is not power of 2, it creates a temporary of size power of 2, then emit the compare exchange operation. And later, the results of the compare exchange operation has two components: 1. a boolean whether or not the exchange happens. 2. the old value we are supposed to write the old value into user's "expected" value. However, in case the type is not power of 2, what we actually wrote to is the temporary that was created. The fix is to pass the "expected" address all the way down so it can wrote to the correct address
Diffstat (limited to 'clang/unittests/Format/FormatTestJava.cpp')
0 files changed, 0 insertions, 0 deletions