Resolve msvc warning/error

This commit is contained in:
Jeremy Rifkin 2024-11-11 21:46:48 -06:00
parent e41f89ee82
commit 855210e624
No known key found for this signature in database
GPG Key ID: 19AA8270105E8EB4
3 changed files with 21 additions and 6 deletions

View File

@ -13,12 +13,17 @@
using namespace std::literals;
static volatile int truthy = 2;
// NOTE: returning something and then return stacktrace_multi_3(line_numbers) * rand(); is done to prevent TCO even
// under LTO https://github.com/jeremy-rifkin/cpptrace/issues/179#issuecomment-2467302052
CPPTRACE_FORCE_NO_INLINE int stacktrace_from_current_3(std::vector<int>& line_numbers) {
static volatile int lto_guard; lto_guard = lto_guard + 1;
if(truthy) { // due to a MSVC warning about unreachable code
line_numbers.insert(line_numbers.begin(), __LINE__ + 1);
throw std::runtime_error("foobar");
}
return 2;
}
CPPTRACE_FORCE_NO_INLINE int stacktrace_from_current_2(std::vector<int>& line_numbers) {

View File

@ -13,12 +13,17 @@
using namespace std::literals;
static volatile int truthy = 2;
// NOTE: returning something and then return stacktrace_multi_3(line_numbers) * rand(); is done to prevent TCO even
// under LTO https://github.com/jeremy-rifkin/cpptrace/issues/179#issuecomment-2467302052
CPPTRACE_FORCE_NO_INLINE int stacktrace_from_current_z_3(std::vector<int>& line_numbers) {
static volatile int lto_guard; lto_guard = lto_guard + 1;
if(truthy) { // due to a MSVC warning about unreachable code
line_numbers.insert(line_numbers.begin(), __LINE__ + 1);
throw std::runtime_error("foobar");
}
return 2;
}
CPPTRACE_FORCE_NO_INLINE int stacktrace_from_current_z_2(std::vector<int>& line_numbers) {

View File

@ -11,12 +11,17 @@
using namespace std::literals;
static volatile int truthy = 2;
// NOTE: returning something and then return stacktrace_multi_3(line_numbers) * rand(); is done to prevent TCO even
// under LTO https://github.com/jeremy-rifkin/cpptrace/issues/179#issuecomment-2467302052
CPPTRACE_FORCE_NO_INLINE int stacktrace_traced_object_3(std::vector<int>& line_numbers) {
static volatile int lto_guard; lto_guard = lto_guard + 1;
if(truthy) { // due to a MSVC warning about unreachable code
line_numbers.insert(line_numbers.begin(), __LINE__ + 1);
throw cpptrace::runtime_error("foobar");
}
return 2;
}
CPPTRACE_FORCE_NO_INLINE int stacktrace_traced_object_2(std::vector<int>& line_numbers) {