Skip to content

Commit 6bcf0da

Browse files
committed
gcc workaround
1 parent 2a1f885 commit 6bcf0da

File tree

1 file changed

+15
-9
lines changed

1 file changed

+15
-9
lines changed

include/boost/leaf/detail/demangle.hpp

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -133,9 +133,9 @@ namespace detail
133133
}
134134
};
135135
template <int Begin, int End, int S>
136-
BOOST_LEAF_ALWAYS_INLINE constexpr unsigned compute_hash(char const (&str)[S]) noexcept
136+
BOOST_LEAF_ALWAYS_INLINE constexpr unsigned compute_hash(char const(&)[Begin], char const (&)[End], char const (&str)[S]) noexcept
137137
{
138-
return cpp11_hash<Begin, End, S>::compute(str, 2166136261u);
138+
return cpp11_hash<Begin-1, End-1, S>::compute(str, 2166136261u);
139139
}
140140
} // namespace detail
141141

@@ -234,16 +234,22 @@ namespace n
234234
) * 2 - 1];
235235
(void) static_assert_unrecognized_pretty_function_format_please_file_github_issue;
236236

237-
#define BOOST_LEAF_COMPUTE_TYPE_HASH(P, S) detail::compute_hash<sizeof(char[(1 + (P))]) - 1, sizeof(char[(1 + (S))]) - 1>(BOOST_LEAF_PRETTY_FUNCTION)
238237
if( std::size_t const p = sizeof(char[1 + !!s01 * (p01 + p02 + p03 + p04 + p05 + p06 + p07 + p08 + p09 + p10 + p11 + p12)]) - 1 )
239-
return { BOOST_LEAF_PRETTY_FUNCTION + p, s01 - p, BOOST_LEAF_COMPUTE_TYPE_HASH(p, s01) };
240-
238+
{
239+
using begin = char[1 + p];
240+
using end = char[1 + s01];
241+
return { BOOST_LEAF_PRETTY_FUNCTION + p, s01 - p, detail::compute_hash(begin{}, end{}, BOOST_LEAF_PRETTY_FUNCTION) };
242+
}
241243
if( std::size_t const p = sizeof(char[1 + !!s02 * (p13 + p14 + p15 + p16 + p17 + p18 + p19 + p20 + p21)]) - 1 )
242-
return { BOOST_LEAF_PRETTY_FUNCTION + p, s02 - p, BOOST_LEAF_COMPUTE_TYPE_HASH(p, s02) };
243-
244+
{
245+
using begin = char[1 + p];
246+
using end = char[1 + s02];
247+
return { BOOST_LEAF_PRETTY_FUNCTION + p, s02 - p, detail::compute_hash(begin{}, end{}, BOOST_LEAF_PRETTY_FUNCTION) };
248+
}
244249
std::size_t const p = sizeof(char[1 + !!s02 * (p22 + p23 + p24)]) - 1;
245-
return { BOOST_LEAF_PRETTY_FUNCTION + p, s02 - p, BOOST_LEAF_COMPUTE_TYPE_HASH(p, s02) };
246-
#undef BOOST_LEAF_COMPUTE_TYPE_HASH
250+
using begin = char[1 + p];
251+
using end = char[1 + s02];
252+
return { BOOST_LEAF_PRETTY_FUNCTION + p, s02 - p, detail::compute_hash(begin{}, end{}, BOOST_LEAF_PRETTY_FUNCTION) };
247253
}
248254
} // namespace n
249255

0 commit comments

Comments
 (0)