Skip to content

Commit e8c4322

Browse files
committed
Compilation error when we have weird combos for this code
1 parent d49682a commit e8c4322

2 files changed

Lines changed: 8 additions & 2 deletions

File tree

benchmark/0016.endl/u8c_file_unlocked.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ using namespace fast_io::io;
77
int main()
88
{
99
fast_io::timer tm(u8"u8c_file_unlocked");
10-
fast_io::u8c_file_unlocked cf(u8"filebuf_file.txt", fast_io::open_mode::out);
10+
fast_io::u8c_file_unlocked cf(u8"c_file_unlocked.txt", fast_io::open_mode::out);
1111
for (std::size_t i{}; i != 10000000; ++i)
1212
{
1313
print(cf, u8"Hello World\n");

include/fast_io_core_impl/operations/writeimpl/basis.h

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -341,6 +341,11 @@ template <typename outstmtype>
341341
inline constexpr void write_all_bytes_cold_impl(outstmtype outsm, ::std::byte const *first, ::std::byte const *last)
342342
{
343343
using char_type = typename outstmtype::output_char_type;
344+
using char_type_const_ptr
345+
#if __has_cpp_attribute(__gnu__::__may_alias__)
346+
[[__gnu__::__may_alias__]]
347+
#endif
348+
= char_type const *;
344349
if constexpr (::fast_io::operations::decay::defines::has_write_all_bytes_overflow_define<outstmtype>)
345350
{
346351
write_all_bytes_overflow_define(outsm, first, last);
@@ -363,7 +368,8 @@ inline constexpr void write_all_bytes_cold_impl(outstmtype outsm, ::std::byte co
363368
::std::ptrdiff_t itdiff{last - first};
364369
if (itdiff < bfddiff)
365370
{
366-
obuffer_set_curr(outsm, non_overlapped_copy_n(first, static_cast<::std::size_t>(itdiff), curr));
371+
obuffer_set_curr(outsm, non_overlapped_copy_n(
372+
reinterpret_cast<char_type_const_ptr>(first), static_cast<::std::size_t>(itdiff), curr));
367373
return;
368374
}
369375
}

0 commit comments

Comments
 (0)