Skip to content

Conversation

@azat
Copy link

@azat azat commented May 17, 2022

"Passing a size which is not an integral multiple of alignment" is too
strict, and lots of code relies on it, i.e.:

(gdb) bt
0  mi_aligned_alloc (alignment=8, size=44) at alloc-posix.c:88
1  0x000000002dc55fdd in aligned_alloc (alignment=8, size=44) at alloc-override.c:251
2  0x0000000017be85b6 in Memory::newImpl<std::align_val_t> (size=44, align=(unknown: 8)) at memory.h:47
3  operator new (size=44, align=(unknown: 8)) at new_delete.cpp:60
4  0x000000002ba66c5d in llvm::allocate_buffer(unsigned long, unsigned long) ()
5  0x000000002898eba1 in llvm::MallocAllocator::Allocate(unsigned long, unsigned long) ()
6  0x000000002b9e95ee in llvm::StringMapEntry<llvm::cl::Option*>* llvm::StringMapEntry<llvm::cl::Option*>::Create<llvm::MallocAllocator, llvm::cl::Option*>(llvm::StringRef, llvm::MallocAllocator&, llvm::cl::Option*&&) ()
7  0x000000002b9e9428 in std::__1::pair<llvm::StringMapIterator<llvm::cl::Option*>, bool> llvm::StringMap<llvm::cl::Option*, llvm::MallocAllocator>::try_emplace<llvm::cl::Option*>(llvm::StringRef, llvm::cl::Option*&&) ()
8  0x000000002b9e925f in llvm::StringMap<llvm::cl::Option*, llvm::MallocAllocator>::insert(std::__1::pair<llvm::StringRef, llvm::cl::Option*>) ()
9  0x000000002b9dc689 in (anonymous namespace)::CommandLineParser::addOption(llvm::cl::Option*, llvm::cl::SubCommand*) ()
10 0x000000002b9cf219 in (anonymous namespace)::CommandLineParser::addOption(llvm::cl::Option*, bool) ()
11 0x000000002b9ce831 in llvm::cl::Option::addArgument() ()

"Passing a size which is not an integral multiple of alignment" is too
strict, and lots of code relies on it, i.e.:

    (gdb) bt
    0  mi_aligned_alloc (alignment=8, size=44) at alloc-posix.c:88
    1  0x000000002dc55fdd in aligned_alloc (alignment=8, size=44) at alloc-override.c:251
    2  0x0000000017be85b6 in Memory::newImpl<std::align_val_t> (size=44, align=(unknown: 8)) at memory.h:47
    3  operator new (size=44, align=(unknown: 8)) at new_delete.cpp:60
    4  0x000000002ba66c5d in llvm::allocate_buffer(unsigned long, unsigned long) ()
    5  0x000000002898eba1 in llvm::MallocAllocator::Allocate(unsigned long, unsigned long) ()
    6  0x000000002b9e95ee in llvm::StringMapEntry<llvm::cl::Option*>* llvm::StringMapEntry<llvm::cl::Option*>::Create<llvm::MallocAllocator, llvm::cl::Option*>(llvm::StringRef, llvm::MallocAllocator&, llvm::cl::Option*&&) ()
    7  0x000000002b9e9428 in std::__1::pair<llvm::StringMapIterator<llvm::cl::Option*>, bool> llvm::StringMap<llvm::cl::Option*, llvm::MallocAllocator>::try_emplace<llvm::cl::Option*>(llvm::StringRef, llvm::cl::Option*&&) ()
    8  0x000000002b9e925f in llvm::StringMap<llvm::cl::Option*, llvm::MallocAllocator>::insert(std::__1::pair<llvm::StringRef, llvm::cl::Option*>) ()
    9  0x000000002b9dc689 in (anonymous namespace)::CommandLineParser::addOption(llvm::cl::Option*, llvm::cl::SubCommand*) ()
    10 0x000000002b9cf219 in (anonymous namespace)::CommandLineParser::addOption(llvm::cl::Option*, bool) ()
    11 0x000000002b9ce831 in llvm::cl::Option::addArgument() ()
daanx added a commit that referenced this pull request Oct 31, 2022
… in 'alloc_aligned' as too many programs need this; see PR #584
@daanx
Copy link
Collaborator

daanx commented Oct 31, 2022

Thanks for the PR! and apologies for the late merge -- I fixed this directly with a commit.
I agree we can be more permissive here.

@daanx daanx closed this Oct 31, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants