Skip to content

Commit d7748b3

Browse files
committed
Give char the if_unique treatment too to handle possible collisions with [u]int8_t definitions.
1 parent be9a4e4 commit d7748b3

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

src/cxx.cc

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -532,6 +532,11 @@ using isize_if_unique =
532532
typename std::conditional<std::is_same<rust::isize, int64_t>::value ||
533533
std::is_same<rust::isize, int32_t>::value,
534534
struct isize_ignore, rust::isize>::type;
535+
// Similarly, on some platforms char may just be an alias for [u]int8_t
536+
using char_if_unique =
537+
typename std::conditional<std::is_same<char, uint8_t>::value ||
538+
std::is_same<char, int8_t>::value,
539+
struct char_ignore, char>::type;
535540

536541
class Fail final {
537542
repr::PtrLen &throw$;
@@ -770,7 +775,7 @@ static_assert(sizeof(std::string) <= kMaxExpectedWordsInString * sizeof(void *),
770775
#define FOR_EACH_RUST_VEC(MACRO) \
771776
FOR_EACH_NUMERIC(MACRO) \
772777
MACRO(bool, bool) \
773-
MACRO(char, char) \
778+
MACRO(char, rust::detail::char_if_unique) \
774779
MACRO(usize, rust::detail::usize_if_unique) \
775780
MACRO(isize, rust::detail::isize_if_unique) \
776781
MACRO(string, rust::String) \

0 commit comments

Comments
 (0)