test/serializer_tests.cpp: In member function ‘virtual void Serializer_size_t_Test::TestBody()’:
test/serializer_tests.cpp:2970:19: error: conversion from ‘long long unsigned int’ to ‘std::size_t’ {aka ‘unsigned int’} changes value from ‘4294967296’ to ‘0’ [-Werror=overflow]
2970 | value = (1LLU << 32);
| ~~~~~~^~~~~~
test/serializer_tests.cpp:2978:13: error: conversion from ‘long long unsigned int’ to ‘std::size_t’ {aka ‘unsigned int’} changes value from ‘18446744073709551615’ to ‘4294967295’ [-Werror=overflow]
2978 | value = 0xffffffffffffffffLLU;
| ^~~~~~~~~~~~~~~~~~~~~
https://buildd.debian.org/status/logs.php?pkg=libnop&ver=0.0~git20200728.45dfe0f-2
https://github.com/google/libnop/blob/master/test/serializer_tests.cpp#L2968 does the right thing at runtime, and the compiler might not emit any code for the if(). But the contents is checked at build time, and you are treating these warnings as errors.