aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Object/MachOObjectFile.cpp
diff options
context:
space:
mode:
authorArthur O'Dwyer <arthur.j.odwyer@gmail.com>2021-12-03 14:55:57 -0500
committerArthur O'Dwyer <arthur.j.odwyer@gmail.com>2021-12-15 20:19:56 -0500
commit5c0ea7488bc051453ad07135f32145465f502a84 (patch)
treef6bc7818fe2df3a373c35baa5d138f44d442c68d /llvm/lib/Object/MachOObjectFile.cpp
parent50187d2dd538711c9afc0b8dd57d9cd5b8ff2d93 (diff)
downloadllvm-5c0ea7488bc051453ad07135f32145465f502a84.zip
llvm-5c0ea7488bc051453ad07135f32145465f502a84.tar.gz
llvm-5c0ea7488bc051453ad07135f32145465f502a84.tar.bz2
[libc++] Enable the optimized _IsSame on GCC as well as Clang.
However, there's a problem on both GCC and Clang: they can't mangle `__is_same(T,U)` if it appears anywhere that affects mangling. That's a hard error. And it turns out that GCC puts dependent return types into the mangling more aggressively than Clang, so for GCC's benefit we need to avoid using raw `_IsSame` in the return type of `swap(tuple&, tuple&)`. Therefore, make `__all` into a named type instead of an alias. If we ever need to support a compiler without the __is_same builtin, we can make this an alias template for `is_same<T,U>::type`. Differential Revision: https://reviews.llvm.org/D115100
Diffstat (limited to 'llvm/lib/Object/MachOObjectFile.cpp')
0 files changed, 0 insertions, 0 deletions