Skip to content

"Memory free event without a matching allocation" when using std::format with {:L} #1019

@adriengivry

Description

@adriengivry

Description

On the game engine I'm working on, using C++20 and std::format, it seems like the Tracy profiler encounters a "Memory free event without a matching allocation" when using std::format(std::locale(""), "{:L}", 10).

For reference, here are the operators we overloaded:

void* operator new(std::size_t size);
void operator delete(void* ptr) noexcept;
void operator delete(void* ptr, std::size_t size) noexcept;
void* operator new[](std::size_t size);
void operator delete[](void* ptr) noexcept;
void operator delete[](void* ptr, std::size_t size) noexcept;
void* operator new(std::size_t size, const std::nothrow_t&) noexcept;
void operator delete(void* ptr, const std::nothrow_t&) noexcept;
void* operator new[](std::size_t size, const std::nothrow_t&) noexcept;
void operator delete[](void* ptr, const std::nothrow_t&) noexcept;
void* operator new(std::size_t size, std::align_val_t alignment);
void operator delete(void* ptr, std::align_val_t alignment) noexcept;
void* operator new[](std::size_t size, std::align_val_t alignment);
void operator delete[](void* ptr, std::align_val_t alignment) noexcept;
void operator delete(void* ptr, std::size_t size, std::align_val_t alignment) noexcept;
void operator delete[](void* ptr, std::size_t size, std::align_val_t alignment) noexcept;
void* operator new(std::size_t size, std::align_val_t alignment, const std::nothrow_t&) noexcept;
void operator delete(void* ptr, std::align_val_t alignment, const std::nothrow_t&) noexcept;

It works fine when using std::locale(), which defaults to the C locale.

Note: std::locale("") being the user's locale (from its regional settings). In my case, it's en_US

Expected Behaviour

Not sure, is it a false positive, or is there something wrong with std::format?

Environment

MSVC: Microsoft (R) C/C++ Optimizing Compiler Version 19.42.34438 for x86

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions