[all-commits] [llvm/llvm-project] 59325c: libcxx: Don't apply ABI tags to extern "C" fns
Haojian Wu via All-commits
all-commits at lists.llvm.org
Fri Jan 27 06:29:54 PST 2023
Branch: refs/heads/release/16.x
Home: https://github.com/llvm/llvm-project
Commit: 59325c94ed632a718045320fbfaf8f96ba2f816d
https://github.com/llvm/llvm-project/commit/59325c94ed632a718045320fbfaf8f96ba2f816d
Author: Arsen Arsenović <arsen at gentoo.org>
Date: 2023-01-27 (Fri, 27 Jan 2023)
Changed paths:
M libcxx/include/__config
M libcxx/include/__support/android/locale_bionic.h
M libcxx/include/__support/musl/xlocale.h
M libcxx/include/__support/openbsd/xlocale.h
M libcxx/include/__support/xlocale/__nop_locale_mgmt.h
M libcxx/include/__support/xlocale/__posix_l_fallback.h
M libcxx/include/__support/xlocale/__strtonum_fallback.h
Log Message:
-----------
libcxx: Don't apply ABI tags to extern "C" fns
GCC rejects ABI tags on non mangled functions, as they would otherwise
be a no-op. This commit replaces such instances with equivalent
_LIBCPP_HIDE_FROM_ABI constants but without ABI tags attached.
.../include/c++/v1/__support/musl/xlocale.h:28:68: error: 'abi_tag'
attribute applied to extern "C" declaration 'long long int
strtoll_l(const char*, char**, int, locale_t)'
28 | strtoll_l(const char *__nptr, char **__endptr, int __base, locale_t) {
| ^
Bug: https://bugs.gentoo.org/869038
Reviewed By: #libc, ldionne
Differential Revision: https://reviews.llvm.org/D142415
Commit: 99777ef91870f8b26cefebd03f26e2052d0e0535
https://github.com/llvm/llvm-project/commit/99777ef91870f8b26cefebd03f26e2052d0e0535
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2023-01-27 (Fri, 27 Jan 2023)
Changed paths:
M clang/lib/Headers/smmintrin.h
M clang/test/CodeGen/X86/sse41-builtins.c
Log Message:
-----------
[X86] Ensure the _mm_test_all_ones macro does not reuse argument (PR60006)
The macro _mm_test_all_ones(V) was defined as _mm_testc_si128((V), _mm_cmpeq_epi32((V), (V))) - which could cause side effects depending on the source of the V value.
The _mm_cmpeq_epi32((V), (V)) trick was just to materialize an all-ones value, which can be more safely generated with _mm_set1_epi32(-1) .
Fixes #60006
Differential Revision: https://reviews.llvm.org/D142477
(cherry picked from commit c9b28233599a753506687f2f8a4f96331cd5dbb2)
Commit: c39e95cf4562eae42197d64958f9b3aa331720fb
https://github.com/llvm/llvm-project/commit/c39e95cf4562eae42197d64958f9b3aa331720fb
Author: Haojian Wu <hokein.wu at gmail.com>
Date: 2023-01-27 (Fri, 27 Jan 2023)
Changed paths:
M clang-tools-extra/clangd/unittests/SelectionTests.cpp
M clang-tools-extra/include-cleaner/unittests/WalkASTTest.cpp
M clang/include/clang/Sema/DeclSpec.h
M clang/include/clang/Sema/Sema.h
M clang/lib/Parse/ParseDecl.cpp
M clang/lib/Parse/ParseDeclCXX.cpp
M clang/lib/Sema/SemaDecl.cpp
M clang/lib/Sema/SemaDeclCXX.cpp
M clang/lib/Sema/SemaTemplate.cpp
M clang/lib/Sema/SemaType.cpp
M clang/test/CXX/drs/dr2xx.cpp
M clang/test/CXX/drs/dr4xx.cpp
Log Message:
-----------
Revert "[clang] Build UsingType for elaborated type specifiers."
This reverts commit e70ca7b35319a3621f9d9c6475926428f8c5c000 and the
followup patch "[clang] Fix the location of UsingTypeLoc"
(ebbeb164c25a40cb6ba9c6b18dce5dcd06c0bb07).
The patch causes an incorrect lookup result:
```
namespace ns { struct Foo { };}
using ns::Foo;
void test() {
struct Foo {
} k; // the type of k refers to ns::Foo, rather than the local Foo!
}
```
(cherry picked from commit e400c63cc39680538a3726a7736baf6b7844c3a8)
Compare: https://github.com/llvm/llvm-project/compare/46d5a57801bc...c39e95cf4562
More information about the All-commits
mailing list