static BOOL TestAlign(size_t align, size_t size) { void *p = memalign(align, size); if (!p) { std::cerr << "Returned NULL for alignment " << align << std::endl; return FALSE; } Pointers.push_back(p); ADDRINT addr = reinterpret_cast<ADDRINT>(p); if (addr & (align-1)) { std::cerr << "Incorrect alignment for " << align << " (p=" << p << ")" << std::endl; return FALSE; } std::cout << "Alignment " << align << " : Size : " << size << " " << p << std::endl; return TRUE; }
static BOOL TestAlign(size_t align, size_t size) { void *p; int err = posix_memalign(&p, align, size); if ( err == EINVAL ) { std::cerr << "Invalid alignment value: " << align << std::endl; return FALSE; } if ( err == ENOMEM ) { std::cerr << "Allocation failed due to insufficient memory." << std::endl; return FALSE; } ADDRINT addr = reinterpret_cast<ADDRINT>(p); if ( addr == 0x0 ) { std::cerr << "Error: NULL value returned." << std::endl; return FALSE; } Pointers.push_back(p); if (addr & (align-1)) { std::cerr << "Incorrect alignment for " << align << " (p=" << p << ")" << std::endl; return FALSE; } std::cout << "Alignment " << align << " : Size : " << size << " " << p << std::endl; return TRUE; }