/* Pedantic checking of DWARF files Copyright (C) 2008, 2009, 2010, 2011 Red Hat, Inc. This file is part of elfutils. This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. elfutils is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #ifdef HAVE_CONFIG_H # include #endif #include "misc.hh" #include "messages.hh" #include bool address_aligned (uint64_t addr, uint64_t align) { return align < 2 || (addr % align == 0); } bool necessary_alignment (uint64_t start, uint64_t length, uint64_t align) { return address_aligned (start + length, align) && length < align; } bool supported_version (unsigned version, size_t num_supported, locus const &loc, ...) { bool retval = false; va_list ap; va_start (ap, loc); for (size_t i = 0; i < num_supported; ++i) { unsigned v = va_arg (ap, unsigned); if (version == v) { retval = true; break; } } va_end (ap); if (!retval) wr_error (loc) << "unsupported version " << version << ".\n"; return retval; }