-
Notifications
You must be signed in to change notification settings - Fork 14.2k
[libc++] [libc++abi] Initialize exception directly in make_exception_ptr if __cxa_init_primary_exception is available in ABI-library #65534
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
ldionne
merged 82 commits into
llvm:main
from
itrofimow:dont_throw_in_make_exception_ptr
Jan 22, 2024
Merged
Changes from all commits
Commits
Show all changes
82 commits
Select commit
Hold shift + click to select a range
154891f
[libcxx] [libcxxabi] don't throw+catch in std::make_exception_ptr, if…
itrofimow 5e74f1e
+ clang-format
itrofimow 918a514
cleanup
itrofimow dd5e10e
+ clang-format, fix libcxx.imp
itrofimow 2bf9b30
wip on making the build green
itrofimow 167a1b7
wip on making the build green
itrofimow 143412f
bits of formatting
itrofimow 4d5e1de
ABI fixes
itrofimow f7c8474
rebase fix
itrofimow 547470a
rebase fix
itrofimow 469eba8
+ clang-format
itrofimow 5fdfe55
+ generate-cxx-abilist
itrofimow 87983b8
fix compilcation under gcc
itrofimow 0fb50a2
some more ifdefs
itrofimow 7e9d774
+ clang-format
itrofimow ee06cd9
+ clang-format
itrofimow ba2ccee
+ clang-format, 17.0.2
itrofimow dbec12c
code review fixes
itrofimow 2b2eb9c
fix transitive_includes tests
itrofimow 481e40a
runtime lookup of __cxa_init_primary_exception
itrofimow b9fb80d
regenerate cxx-abilist
itrofimow 6ff32ad
add exception_ptr.bench
itrofimow ce34b01
add threaded benchmark
itrofimow 921275a
better measurements in benchmark
itrofimow 83fc377
add cxx-abilist for other architectures, some ifdefs for windows
itrofimow d89a05d
support libcxxrt as well
itrofimow 2eb4473
add remaining cxx-abilists
itrofimow 41ed5ff
fix the build for older versions of libcxxrt, add some comments
itrofimow 72698d1
cleaner benchmark
itrofimow 3904feb
revert the typeinfo header split, make exception dependent on typeinf…
itrofimow 52a826e
use weak linkage instead of dlsym
itrofimow 275e5a1
+ clang-format
itrofimow ad0297f
fix transitive_includes
itrofimow 7b71e9a
some formatting again
itrofimow 0be3274
add libsupc++ support
itrofimow 2825b1e
make tidy happy: + _LIBCPP_HIDE_FROM_ABI
itrofimow 9505e1e
include new explicitly
itrofimow f8656cb
regenerate cxx-abilist
itrofimow 62688ba
drop new -> exception include dependency
itrofimow 96d059f
oops
itrofimow 82e367e
oops[2]
itrofimow 2d7d84e
fixing gcc errors hopefully
itrofimow da25833
fix windows build, add fix powerpc abilists
itrofimow 114db76
fix mingw build once again
itrofimow 41f419b
fix abilist for freebsd, reset mingw shenanigans
itrofimow 292d95b
disable for apple and windows, move define to config
itrofimow fbeaf12
+ clang-format
itrofimow f7d7596
fix abilists for apple
itrofimow d828925
bits of cleanup
itrofimow 04a6368
gcc build fix
itrofimow cf916fe
cr fixes
itrofimow 5a9b4e6
support mingw
itrofimow 89a5f3d
+ clang-format
itrofimow 99003b4
cleanup runtime lookup mess, switch to an availability macros instead
itrofimow 0c7a4fc
cleanup exception_pointer_glibcxx
itrofimow 870e924
rebase fix
itrofimow 0602721
remove nullptr branch, as __init_native_exception can't return nullpt…
itrofimow 2685882
cr fixes, simplify: call __cxa_* directly from headers
itrofimow eb9778b
fix abi-list for unknown-linux-gnu
itrofimow e2a8852
fix the build for C++03
itrofimow ce8881f
fix the build for C++03, attempt 2
itrofimow e108f13
fix transitive includes for cxx03
itrofimow 7588693
fix transitive includes for cxx11,14,17,20
itrofimow 14aed04
adjust abi-lists for other platforms
itrofimow 18d3e63
adjust abi-list for freebsd
itrofimow fc10a48
adjust the abi-list for noexceptions
itrofimow f005def
merge with upstream
itrofimow 71b4af1
an attempt to fix MinGW build
itrofimow baa37c5
an attempt to fix MinGW build once again
itrofimow 326a391
merge with upstream
itrofimow 88b19df
cleanup redundant whitespaces
itrofimow c7690dd
merge fix
itrofimow afb7fde
don't declare cxa_* functions for Microsoft ABI
itrofimow 2729379
formatting fix
itrofimow 4da4ca8
Merge remote-tracking branch 'upstream/main' into dont_throw_in_make_…
itrofimow 1561207
Merge remote-tracking branch 'upstream/main' into dont_throw_in_make_…
itrofimow 6748626
Merge remote-tracking branch 'upstream/main' into dont_throw_in_make_…
itrofimow 686f32e
update abilists for Android
itrofimow ef44458
Merge remote-tracking branch 'upstream/main' into dont_throw_in_make_…
itrofimow 0baabd5
undef _LIBCPP_AVAILABILITY_INIT_PRIMARY_EXCEPTION under _LIBCPP_HAS_N…
itrofimow cdff9df
remove unused include
itrofimow 9395df1
fix the docs for building libcxx with other ABI-libraries
itrofimow File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
//===----------------------------------------------------------------------===// | ||
// | ||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. | ||
// See https://llvm.org/LICENSE.txt for license information. | ||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | ||
// | ||
//===----------------------------------------------------------------------===// | ||
|
||
#include <benchmark/benchmark.h> | ||
#include <exception> | ||
|
||
void bm_make_exception_ptr(benchmark::State& state) { | ||
for (auto _ : state) { | ||
benchmark::DoNotOptimize(std::make_exception_ptr(42)); | ||
} | ||
} | ||
BENCHMARK(bm_make_exception_ptr)->ThreadRange(1, 8); | ||
|
||
BENCHMARK_MAIN(); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.