diff --git a/cfg/gnu.cfg b/cfg/gnu.cfg
index 1c8d1597a7f..d47630bdb32 100644
--- a/cfg/gnu.cfg
+++ b/cfg/gnu.cfg
@@ -168,6 +168,322 @@
+
+
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/cfg/gnu.c b/test/cfg/gnu.c
index 14dfcc7700f..7b67daf23c0 100644
--- a/test/cfg/gnu.c
+++ b/test/cfg/gnu.c
@@ -12,6 +12,7 @@
#define _GNU_SOURCE
#include
+#include
#include
#include
#include
@@ -157,6 +158,132 @@ int nullPointer_getopt_long_only(int argc, char* const* argv, const char* optstr
return getopt_long_only(argc, argv, optstring, longopts, longindex);
}
+bool nullPointer_builtin_add_overflow(char a, char b)
+{
+ // cppcheck-suppress nullPointer
+ return __builtin_add_overflow(a, b, (char *)0);
+}
+
+bool nullPointer_builtin_sadd_overflow(int a, int b)
+{
+ // cppcheck-suppress nullPointer
+ return __builtin_sadd_overflow(a, b, (int *)0);
+}
+
+bool nullPointer_builtin_saddl_overflow(long int a, long int b)
+{
+ // cppcheck-suppress nullPointer
+ return __builtin_saddl_overflow(a, b, (long int *)0);
+}
+
+bool nullPointer_builtin_saddll_overflow(long long int a, long long int b)
+{
+ // cppcheck-suppress nullPointer
+ return __builtin_saddll_overflow(a, b, (long long int *)0);
+}
+
+bool nullPointer_builtin_uadd_overflow(unsigned int a, unsigned int b)
+{
+ // cppcheck-suppress nullPointer
+ return __builtin_uadd_overflow(a, b, (unsigned int *)0);
+}
+
+bool nullPointer_builtin_uaddl_overflow(unsigned long int a, unsigned long int b)
+{
+ // cppcheck-suppress nullPointer
+ return __builtin_uaddl_overflow(a, b, (unsigned long int *)0);
+}
+
+bool nullPointer_builtin_uaddll_overflow(unsigned long long int a, unsigned long long int b)
+{
+ // cppcheck-suppress nullPointer
+ return __builtin_uaddll_overflow(a, b, (unsigned long long int *)0);
+}
+
+bool nullPointer_builtin_sub_overflow(char a, char b)
+{
+ // cppcheck-suppress nullPointer
+ return __builtin_sub_overflow(a, b, (char *)0);
+}
+
+bool nullPointer_builtin_ssub_overflow(int a, int b)
+{
+ // cppcheck-suppress nullPointer
+ return __builtin_ssub_overflow(a, b, (int *)0);
+}
+
+bool nullPointer_builtin_ssubl_overflow(long int a, long int b)
+{
+ // cppcheck-suppress nullPointer
+ return __builtin_ssubl_overflow(a, b, (long int *)0);
+}
+
+bool nullPointer_builtin_ssubll_overflow(long long int a, long long int b)
+{
+ // cppcheck-suppress nullPointer
+ return __builtin_ssubll_overflow(a, b, (long long int *)0);
+}
+
+bool nullPointer_builtin_usub_overflow(unsigned int a, unsigned int b)
+{
+ // cppcheck-suppress nullPointer
+ return __builtin_usub_overflow(a, b, (unsigned int *)0);
+}
+
+bool nullPointer_builtin_usubl_overflow(unsigned long int a, unsigned long int b)
+{
+ // cppcheck-suppress nullPointer
+ return __builtin_usubl_overflow(a, b, (unsigned long int *)0);
+}
+
+bool nullPointer_builtin_usubll_overflow(unsigned long long int a, unsigned long long int b)
+{
+ // cppcheck-suppress nullPointer
+ return __builtin_usubll_overflow(a, b, (unsigned long long int *)0);
+}
+
+bool nullPointer_builtin_mul_overflow(char a, char b)
+{
+ // cppcheck-suppress nullPointer
+ return __builtin_mul_overflow(a, b, (char *)0);
+}
+
+bool nullPointer_builtin_smul_overflow(int a, int b)
+{
+ // cppcheck-suppress nullPointer
+ return __builtin_smul_overflow(a, b, (int *)0);
+}
+
+bool nullPointer_builtin_smull_overflow(long int a, long int b)
+{
+ // cppcheck-suppress nullPointer
+ return __builtin_smull_overflow(a, b, (long int *)0);
+}
+
+bool nullPointer_builtin_smulll_overflow(long long int a, long long int b)
+{
+ // cppcheck-suppress nullPointer
+ return __builtin_smulll_overflow(a, b, (long long int *)0);
+}
+
+bool nullPointer_builtin_umul_overflow(unsigned int a, unsigned int b)
+{
+ // cppcheck-suppress nullPointer
+ return __builtin_umul_overflow(a, b, (unsigned int *)0);
+}
+
+bool nullPointer_builtin_umull_overflow(unsigned long int a, unsigned long int b)
+{
+ // cppcheck-suppress nullPointer
+ return __builtin_umull_overflow(a, b, (unsigned long int *)0);
+}
+
+bool nullPointer_builtin_umulll_overflow(unsigned long long int a, unsigned long long int b)
+{
+ // cppcheck-suppress nullPointer
+ return __builtin_umulll_overflow(a, b, (unsigned long long int *)0);
+}
+
#if !defined(__APPLE__)
int nullPointer_getservent_r(struct servent *restrict result_buf, const char *restrict buf, size_t buflen, struct servent **restrict result)
{
@@ -461,6 +588,216 @@ void uninitvar__builtin_memset(void)
(void)__builtin_memset(s,c,n);
}
+void uninitvar__builtin_add_overflow(void)
+{
+ char a;
+ char b;
+ char c;
+
+ // cppcheck-suppress uninitvar
+ (void)__builtin_add_overflow(a, b, &c);
+}
+
+void uninitvar__builtin_sadd_overflow(void)
+{
+ int a;
+ int b;
+ int c;
+
+ // cppcheck-suppress uninitvar
+ (void)__builtin_sadd_overflow(a, b, &c);
+}
+
+void uninitvar__builtin_saddl_overflow(void)
+{
+ long int a;
+ long int b;
+ long int c;
+
+ // cppcheck-suppress uninitvar
+ (void)__builtin_saddl_overflow(a, b, &c);
+}
+
+void uninitvar__builtin_saddll_overflow(void)
+{
+ long long int a;
+ long long int b;
+ long long int c;
+
+ // cppcheck-suppress uninitvar
+ (void)__builtin_saddll_overflow(a, b, &c);
+}
+
+void uninitvar__builtin_uadd_overflow(void)
+{
+ unsigned int a;
+ unsigned int b;
+ unsigned int c;
+
+ // cppcheck-suppress uninitvar
+ (void)__builtin_uadd_overflow(a, b, &c);
+}
+
+void uninitvar__builtin_uaddl_overflow(void)
+{
+ unsigned long int a;
+ unsigned long int b;
+ unsigned long int c;
+
+ // cppcheck-suppress uninitvar
+ (void)__builtin_uaddl_overflow(a, b, &c);
+}
+
+void uninitvar__builtin_uaddll_overflow(void)
+{
+ unsigned long long int a;
+ unsigned long long int b;
+ unsigned long long int c;
+
+ // cppcheck-suppress uninitvar
+ (void)__builtin_uaddll_overflow(a, b, &c);
+}
+
+void uninitvar__builtin_sub_overflow(void)
+{
+ char a;
+ char b;
+ char c;
+
+ // cppcheck-suppress uninitvar
+ (void)__builtin_sub_overflow(a, b, &c);
+}
+
+void uninitvar__builtin_ssub_overflow(void)
+{
+ int a;
+ int b;
+ int c;
+
+ // cppcheck-suppress uninitvar
+ (void)__builtin_ssub_overflow(a, b, &c);
+}
+
+void uninitvar__builtin_ssubl_overflow(void)
+{
+ long int a;
+ long int b;
+ long int c;
+
+ // cppcheck-suppress uninitvar
+ (void)__builtin_ssubl_overflow(a, b, &c);
+}
+
+void uninitvar__builtin_ssubll_overflow(void)
+{
+ long long int a;
+ long long int b;
+ long long int c;
+
+ // cppcheck-suppress uninitvar
+ (void)__builtin_ssubll_overflow(a, b, &c);
+}
+
+void uninitvar__builtin_usub_overflow(void)
+{
+ unsigned int a;
+ unsigned int b;
+ unsigned int c;
+
+ // cppcheck-suppress uninitvar
+ (void)__builtin_usub_overflow(a, b, &c);
+}
+
+void uninitvar__builtin_usubl_overflow(void)
+{
+ unsigned long int a;
+ unsigned long int b;
+ unsigned long int c;
+
+ // cppcheck-suppress uninitvar
+ (void)__builtin_usubl_overflow(a, b, &c);
+}
+
+void uninitvar__builtin_usubll_overflow(void)
+{
+ unsigned long long int a;
+ unsigned long long int b;
+ unsigned long long int c;
+
+ // cppcheck-suppress uninitvar
+ (void)__builtin_usubll_overflow(a, b, &c);
+}
+
+void uninitvar__builtin_mul_overflow(void)
+{
+ char a;
+ char b;
+ char c;
+
+ // cppcheck-suppress uninitvar
+ (void)__builtin_mul_overflow(a, b, &c);
+}
+
+void uninitvar__builtin_smul_overflow(void)
+{
+ int a;
+ int b;
+ int c;
+
+ // cppcheck-suppress uninitvar
+ (void)__builtin_smul_overflow(a, b, &c);
+}
+
+void uninitvar__builtin_smull_overflow(void)
+{
+ long int a;
+ long int b;
+ long int c;
+
+ // cppcheck-suppress uninitvar
+ (void)__builtin_smull_overflow(a, b, &c);
+}
+
+void uninitvar__builtin_smulll_overflow(void)
+{
+ long long int a;
+ long long int b;
+ long long int c;
+
+ // cppcheck-suppress uninitvar
+ (void)__builtin_smulll_overflow(a, b, &c);
+}
+
+void uninitvar__builtin_umul_overflow(void)
+{
+ unsigned int a;
+ unsigned int b;
+ unsigned int c;
+
+ // cppcheck-suppress uninitvar
+ (void)__builtin_umul_overflow(a, b, &c);
+}
+
+void uninitvar__builtin_umull_overflow(void)
+{
+ unsigned long int a;
+ unsigned long int b;
+ unsigned long int c;
+
+ // cppcheck-suppress uninitvar
+ (void)__builtin_umull_overflow(a, b, &c);
+}
+
+void uninitvar__builtin_umulll_overflow(void)
+{
+ unsigned long long int a;
+ unsigned long long int b;
+ unsigned long long int c;
+
+ // cppcheck-suppress uninitvar
+ (void)__builtin_umulll_overflow(a, b, &c);
+}
+
void bufferAccessOutOfBounds__builtin_memset(void)
{
uint8_t buf[42];