build: avoid type truncation warnings
discovered with clang's -Wshorten-64-to-32
This commit is contained in:
parent
e71bd9f621
commit
1f432c13b7
@ -11,13 +11,14 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*
|
*
|
||||||
* Copyright 2015 Danny Robson <danny@nerdcruft.net>
|
* Copyright 2015-2016 Danny Robson <danny@nerdcruft.net>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "./stack.hpp"
|
#include "./stack.hpp"
|
||||||
|
|
||||||
#include "../debug.hpp"
|
#include "../debug.hpp"
|
||||||
#include "../pointer.hpp"
|
#include "../pointer.hpp"
|
||||||
|
#include "../cast.hpp"
|
||||||
|
|
||||||
using util::alloc::stack;
|
using util::alloc::stack;
|
||||||
|
|
||||||
@ -65,7 +66,7 @@ stack::allocate (size_t bytes, size_t alignment)
|
|||||||
// store the total size and record the new stack head
|
// store the total size and record the new stack head
|
||||||
record record;
|
record record;
|
||||||
record.as_bytes = ptr - sizeof (record::offset_t);
|
record.as_bytes = ptr - sizeof (record::offset_t);
|
||||||
*record.as_uint32 = ptr - m_cursor;
|
*record.as_uint32 = trunc_cast<uint32_t> (ptr - m_cursor);
|
||||||
|
|
||||||
m_cursor = ptr + bytes;
|
m_cursor = ptr + bytes;
|
||||||
|
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
#include "./debug.hpp"
|
#include "./debug.hpp"
|
||||||
#include "./exe.hpp"
|
#include "./exe.hpp"
|
||||||
#include "./io.hpp"
|
#include "./io.hpp"
|
||||||
#include "cast.hpp"
|
#include "./cast.hpp"
|
||||||
|
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
#include <iomanip>
|
#include <iomanip>
|
||||||
@ -38,7 +38,7 @@ debug::backtrace::backtrace (void):
|
|||||||
size_t last;
|
size_t last;
|
||||||
size_t size = m_frames.size ();
|
size_t size = m_frames.size ();
|
||||||
|
|
||||||
while ((last = ::backtrace (&m_frames[0], m_frames.size ())) == size)
|
while ((last = ::backtrace (&m_frames[0], trunc_cast<int> (m_frames.size ()))) == size)
|
||||||
m_frames.resize (size = m_frames.size () * 2);
|
m_frames.resize (size = m_frames.size () * 2);
|
||||||
|
|
||||||
CHECK_GT (last, 0);
|
CHECK_GT (last, 0);
|
||||||
@ -78,7 +78,7 @@ debug::operator <<(std::ostream &os, const debug::backtrace &rhs) {
|
|||||||
|
|
||||||
// We don't use the array form of unique_ptr as clang fails on ambigious constructors
|
// We don't use the array form of unique_ptr as clang fails on ambigious constructors
|
||||||
typedef std::unique_ptr<char *, decltype(&std::free)> str_t;
|
typedef std::unique_ptr<char *, decltype(&std::free)> str_t;
|
||||||
str_t names (backtrace_symbols (frames.data (), frames.size ()), ::free);
|
str_t names (backtrace_symbols (frames.data (), trunc_cast<int> (frames.size ())), ::free);
|
||||||
|
|
||||||
for (unsigned int i = 0; i < frames.size (); ++i)
|
for (unsigned int i = 0; i < frames.size (); ++i)
|
||||||
os << frames[i] << '\t' << names.get()[i] << '\t' << addr2line (frames[i]);
|
os << frames[i] << '\t' << names.get()[i] << '\t' << addr2line (frames[i]);
|
||||||
|
13
cmdopt.cpp
13
cmdopt.cpp
@ -14,9 +14,10 @@
|
|||||||
* Copyright 2013-2016 Danny Robson <danny@nerdcruft.net>
|
* Copyright 2013-2016 Danny Robson <danny@nerdcruft.net>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "cmdopt.hpp"
|
#include "./cmdopt.hpp"
|
||||||
|
|
||||||
#include "debug.hpp"
|
#include "./cast.hpp"
|
||||||
|
#include "./debug.hpp"
|
||||||
|
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
@ -407,7 +408,7 @@ parser::print_help (const int argc,
|
|||||||
{
|
{
|
||||||
return std::get<std::string> (a).size () < std::get<std::string> (b).size ();
|
return std::get<std::string> (a).size () < std::get<std::string> (b).size ();
|
||||||
});
|
});
|
||||||
int longwidth = std::get<std::string> (*largestwidth).size ();
|
auto longwidth = std::get<std::string> (*largestwidth).size ();
|
||||||
|
|
||||||
// find the longest example text
|
// find the longest example text
|
||||||
auto largestexample = std::max_element (
|
auto largestexample = std::max_element (
|
||||||
@ -421,7 +422,7 @@ parser::print_help (const int argc,
|
|||||||
return example_a.size () > example_b.size ();
|
return example_a.size () > example_b.size ();
|
||||||
});
|
});
|
||||||
|
|
||||||
int longexample = std::get<std::unique_ptr<option::base>> (*largestexample)->example ().size ();
|
auto longexample = std::get<std::unique_ptr<option::base>> (*largestexample)->example ().size ();
|
||||||
|
|
||||||
// field width requires an alignment. we don't care about preserving
|
// field width requires an alignment. we don't care about preserving
|
||||||
// state as we're about to bail anyway
|
// state as we're about to bail anyway
|
||||||
@ -455,13 +456,13 @@ parser::print_help (const int argc,
|
|||||||
else
|
else
|
||||||
std::cout << '\t';
|
std::cout << '\t';
|
||||||
|
|
||||||
std::cout << std::setw (longwidth);
|
std::cout << std::setw (trunc_cast<int> (longwidth));
|
||||||
if (l != std::cend (m_long))
|
if (l != std::cend (m_long))
|
||||||
std::cout << std::get<std::string> (*l) << '\t';
|
std::cout << std::get<std::string> (*l) << '\t';
|
||||||
else
|
else
|
||||||
std::cout << ' ' << '\t';
|
std::cout << ' ' << '\t';
|
||||||
|
|
||||||
std::cout << std::setw (longexample) << ptr->example () << '\t'
|
std::cout << std::setw (trunc_cast<int> (longexample)) << ptr->example () << '\t'
|
||||||
<< std::setw (0) << std::get<std::string> (o)
|
<< std::setw (0) << std::get<std::string> (o)
|
||||||
<< '\n';
|
<< '\n';
|
||||||
}
|
}
|
||||||
|
@ -82,7 +82,8 @@ XXTEA::decrypt (uint32_t *restrict data, size_t count)
|
|||||||
throw std::invalid_argument ("minimum blocksize is 64 bits");
|
throw std::invalid_argument ("minimum blocksize is 64 bits");
|
||||||
|
|
||||||
uint32_t y, z, sum;
|
uint32_t y, z, sum;
|
||||||
uint32_t p, rounds;
|
uint32_t rounds;
|
||||||
|
size_t p;
|
||||||
|
|
||||||
rounds = 6 + 52 / count;
|
rounds = 6 + 52 / count;
|
||||||
sum = rounds * MAGIC;
|
sum = rounds * MAGIC;
|
||||||
|
@ -65,6 +65,6 @@ uint32_t
|
|||||||
util::hash::fasthash::hash32 (const void *restrict data, size_t len, uint32_t seed)
|
util::hash::fasthash::hash32 (const void *restrict data, size_t len, uint32_t seed)
|
||||||
{
|
{
|
||||||
uint64_t h = hash64 (data, len, seed);
|
uint64_t h = hash64 (data, len, seed);
|
||||||
return h - (h >> 32);
|
return (h & 0xffffffff) - (h >> 32);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -42,7 +42,7 @@ util::hash::murmur1::hash_32 (const void *restrict data,
|
|||||||
CHECK (data);
|
CHECK (data);
|
||||||
|
|
||||||
static const uint32_t m = 0xc6a4a793;
|
static const uint32_t m = 0xc6a4a793;
|
||||||
uint32_t h = seed ^ (len * m);
|
uint32_t h = seed ^ (uint32_t (len) * m);
|
||||||
|
|
||||||
// mix the body
|
// mix the body
|
||||||
auto cursor = reinterpret_cast<const uint32_t*> (data);
|
auto cursor = reinterpret_cast<const uint32_t*> (data);
|
||||||
|
@ -86,7 +86,7 @@ util::hash::murmur2::hash_32 (const void *restrict key,
|
|||||||
|
|
||||||
// setup
|
// setup
|
||||||
static const auto m = constants<uint32_t>::m;
|
static const auto m = constants<uint32_t>::m;
|
||||||
uint32_t h = seed ^ len;
|
uint32_t h = seed ^ uint32_t (len);
|
||||||
|
|
||||||
// body
|
// body
|
||||||
auto cursor = reinterpret_cast<const uint32_t*> (key);
|
auto cursor = reinterpret_cast<const uint32_t*> (key);
|
||||||
|
5
log.cpp
5
log.cpp
@ -21,6 +21,7 @@
|
|||||||
#include "term.hpp"
|
#include "term.hpp"
|
||||||
#include "time.hpp"
|
#include "time.hpp"
|
||||||
#include "types.hpp"
|
#include "types.hpp"
|
||||||
|
#include "cast.hpp"
|
||||||
|
|
||||||
#include <array>
|
#include <array>
|
||||||
#include <ctime>
|
#include <ctime>
|
||||||
@ -211,7 +212,7 @@ util::log (util::level_t level, const std::string &msg)
|
|||||||
|
|
||||||
std::cerr << time_string << " ["
|
std::cerr << time_string << " ["
|
||||||
<< level_colour (level)
|
<< level_colour (level)
|
||||||
<< std::setw (level_width ())
|
<< std::setw (trunc_cast<int> (level_width ()))
|
||||||
<< std::left
|
<< std::left
|
||||||
<< level
|
<< level
|
||||||
<< std::setw (0)
|
<< std::setw (0)
|
||||||
@ -254,5 +255,5 @@ util::scoped_timer::~scoped_timer ()
|
|||||||
auto finish = util::nanoseconds ();
|
auto finish = util::nanoseconds ();
|
||||||
auto duration = finish - m_start;
|
auto duration = finish - m_start;
|
||||||
|
|
||||||
log (m_level, "%fs, %s", duration / 1'000'000'000.f, m_message);
|
log (m_level, "%fs, %s", float (duration) / 1'000'000'000.f, m_message);
|
||||||
}
|
}
|
||||||
|
@ -92,7 +92,7 @@ namespace util {
|
|||||||
void clear (void);
|
void clear (void);
|
||||||
|
|
||||||
/// Returns the number of callbacks connected.
|
/// Returns the number of callbacks connected.
|
||||||
unsigned int size (void) const;
|
size_t size (void) const;
|
||||||
bool empty (void) const;
|
bool empty (void) const;
|
||||||
|
|
||||||
/// Execute all callbacks
|
/// Execute all callbacks
|
||||||
|
@ -140,7 +140,7 @@ namespace util {
|
|||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
/// Returns the number of callbacks connected.
|
/// Returns the number of callbacks connected.
|
||||||
template <typename F, template <typename> class C>
|
template <typename F, template <typename> class C>
|
||||||
unsigned int
|
size_t
|
||||||
signal<F,C>::size (void) const
|
signal<F,C>::size (void) const
|
||||||
{
|
{
|
||||||
return m_children.size ();
|
return m_children.size ();
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
namespace util {
|
namespace util {
|
||||||
class stringid {
|
class stringid {
|
||||||
public:
|
public:
|
||||||
typedef unsigned id_t;
|
typedef size_t id_t;
|
||||||
|
|
||||||
id_t add (std::string);
|
id_t add (std::string);
|
||||||
id_t find (const std::string&) const;
|
id_t find (const std::string&) const;
|
||||||
|
4
term.hpp
4
term.hpp
@ -31,12 +31,12 @@ namespace util { namespace term {
|
|||||||
struct graphics : public code {
|
struct graphics : public code {
|
||||||
static constexpr char terminator = 'm';
|
static constexpr char terminator = 'm';
|
||||||
|
|
||||||
enum layer {
|
enum layer : char {
|
||||||
FOREGROUND = 30,
|
FOREGROUND = 30,
|
||||||
BACKGROUND = 40
|
BACKGROUND = 40
|
||||||
};
|
};
|
||||||
|
|
||||||
enum hue {
|
enum hue : char {
|
||||||
BLACK = 0,
|
BLACK = 0,
|
||||||
RED = 1,
|
RED = 1,
|
||||||
GREEN = 2,
|
GREEN = 2,
|
||||||
|
2
uri.hpp
2
uri.hpp
@ -34,7 +34,7 @@ namespace util {
|
|||||||
class parse_error : public std::runtime_error
|
class parse_error : public std::runtime_error
|
||||||
{ using runtime_error::runtime_error; };
|
{ using runtime_error::runtime_error; };
|
||||||
|
|
||||||
enum component : unsigned {
|
enum component {
|
||||||
SCHEME,
|
SCHEME,
|
||||||
AUTHORITY,
|
AUTHORITY,
|
||||||
PATH,
|
PATH,
|
||||||
|
@ -260,7 +260,7 @@ util::operator>> (const json::tree::node &node, util::vector<S,T> &v)
|
|||||||
// compiler error at this point in release mode, so we dumb it down a
|
// compiler error at this point in release mode, so we dumb it down a
|
||||||
// little.
|
// little.
|
||||||
for (size_t i = 0; i < array.size (); ++i)
|
for (size_t i = 0; i < array.size (); ++i)
|
||||||
v.data[i] = static_cast<T> (array[i].as_number ().native ());
|
v.data[i] = array[i].as<T> ();
|
||||||
|
|
||||||
return node;
|
return node;
|
||||||
}
|
}
|
||||||
|
@ -168,9 +168,9 @@ util::version::parse (const char *str) {
|
|||||||
bool
|
bool
|
||||||
version::operator> (const version &rhs) const
|
version::operator> (const version &rhs) const
|
||||||
{
|
{
|
||||||
unsigned int count = min (size, rhs.size);
|
auto count = util::min (size, rhs.size);
|
||||||
|
|
||||||
for (unsigned int i = 0; i < count; ++i)
|
for (decltype(count) i = 0; i < count; ++i)
|
||||||
if (components[i] < rhs.components[i])
|
if (components[i] < rhs.components[i])
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user