Skip to content

Tags: Tedlion/llvm-project

Tags

my_tools_on_release18

Toggle my_tools_on_release18's commit message
[libcxx] Align `__recommend() + 1` by __endian_factor (llvm#90292) This is detected by asan after llvm#83774 Allocation size will be divided by `__endian_factor` before storing. If it's not aligned, we will not be able to recover allocation size to pass into `__alloc_traits::deallocate`. we have code like this ``` auto __allocation = std::__allocate_at_least(__alloc(), __recommend(__sz) + 1); __p = __allocation.ptr; __set_long_cap(__allocation.count); void __set_long_cap(size_type __s) _NOEXCEPT { __r_.first().__l.__cap_ = __s / __endian_factor; __r_.first().__l.__is_long_ = true; } size_type __get_long_cap() const _NOEXCEPT { return __r_.first().__l.__cap_ * __endian_factor; } inline ~basic_string() { __annotate_delete(); if (__is_long()) __alloc_traits::deallocate(__alloc(), __get_long_pointer(), __get_long_cap()); } ``` 1. __recommend() -> even size 2. `std::__allocate_at_least(__alloc(), __recommend(__sz) + 1)` - > not even size 3. ` __set_long_cap() `- > lose one bit of size for __endian_factor == 2 (see `/ __endian_factor`) 4. `__alloc_traits::deallocate(__alloc(), __get_long_pointer(), __get_long_cap())` -> uses even size (see `__get_long_cap`) (cherry picked from commit d129ea8)

llvmorg-17.0.2

Toggle llvmorg-17.0.2's commit message

Verified

This tag was signed with the committer’s verified signature.
tru Tobias Hieta
LLVM 17.0.2 Release 

llvmorg-17.0.1

Toggle llvmorg-17.0.1's commit message

Verified

This tag was signed with the committer’s verified signature.
tru Tobias Hieta
LLVM 17.0.1 Release 

llvmorg-17.0.0

Toggle llvmorg-17.0.0's commit message

Verified

This tag was signed with the committer’s verified signature.
tru Tobias Hieta
LLVM 17.0.0 Release 

llvmorg-17.0.0-rc4

Toggle llvmorg-17.0.0-rc4's commit message

Verified

This tag was signed with the committer’s verified signature.
tru Tobias Hieta
LLVM 17.0.0-rc4 Release 

llvmorg-17.0.0-rc3

Toggle llvmorg-17.0.0-rc3's commit message

Verified

This tag was signed with the committer’s verified signature.
tru Tobias Hieta
LLVM 17.0.0-rc3 Release 

llvmorg-17.0.0-rc2

Toggle llvmorg-17.0.0-rc2's commit message

Verified

This tag was signed with the committer’s verified signature.
tru Tobias Hieta
LLVM 17.0.0-rc2 Release 

llvmorg-17.0.0-rc1

Toggle llvmorg-17.0.0-rc1's commit message

Verified

This tag was signed with the committer’s verified signature.
tru Tobias Hieta
LLVM 17.0.0-rc1 Release 

llvmorg-18-init

Toggle llvmorg-18-init's commit message

Verified

This tag was signed with the committer’s verified signature.
tru Tobias Hieta
LLVM 18.0.0 start tag 

llvmorg-16.0.6

Toggle llvmorg-16.0.6's commit message

Verified

This tag was signed with the committer’s verified signature. The key has expired.
tstellar Tom Stellard
Tag 16.0.6