|
From: <sv...@va...> - 2009-08-12 12:56:04
|
Author: bart
Date: 2009-08-12 13:55:56 +0100 (Wed, 12 Aug 2009)
New Revision: 10794
Log:
Suppressed compiler warnings reported by gcc 4.4.x on the source code
of regression tests about intentionally uninitialized variables and
about intentionally freed non-heap memory.
Modified:
trunk/configure.in
trunk/memcheck/tests/Makefile.am
trunk/memcheck/tests/badfree.c
trunk/memcheck/tests/xml1.c
Modified: trunk/configure.in
===================================================================
--- trunk/configure.in 2009-08-12 12:52:23 UTC (rev 10793)
+++ trunk/configure.in 2009-08-12 12:55:56 UTC (rev 10794)
@@ -1255,6 +1255,29 @@
CFLAGS=$safe_CFLAGS
+# does this compiler support -Wno-uninitialized ?
+
+AC_MSG_CHECKING([if gcc accepts -Wno-uninitialized])
+
+safe_CFLAGS=$CFLAGS
+CFLAGS="-Wno-uninitialized"
+
+AC_TRY_COMPILE(
+[ ],
+[
+ return 0;
+],
+[
+AC_SUBST([FLAG_W_NO_UNINITIALIZED], [-Wno-uninitialized])
+AC_MSG_RESULT([yes])
+],
+[
+AC_SUBST([FLAG_W_NO_UNINITIALIZED], [])
+AC_MSG_RESULT([no])
+])
+CFLAGS=$safe_CFLAGS
+
+
# does this compiler support -Wextra or the older -W ?
AC_MSG_CHECKING([if gcc accepts -Wextra or -W])
Modified: trunk/memcheck/tests/Makefile.am
===================================================================
--- trunk/memcheck/tests/Makefile.am 2009-08-12 12:52:23 UTC (rev 10793)
+++ trunk/memcheck/tests/Makefile.am 2009-08-12 12:55:56 UTC (rev 10794)
@@ -251,8 +251,14 @@
deep_templates_SOURCES = deep_templates.cpp
deep_templates_CXXFLAGS = $(AM_CFLAGS) -O -gstabs
+error_counts_CFLAGS = $(AM_CFLAGS) @FLAG_W_NO_UNINITIALIZED@
+
+inits_CFLAGS = $(AM_CFLAGS) @FLAG_W_NO_UNINITIALIZED@
+
long_namespace_xml_SOURCES = long_namespace_xml.cpp
+manuel1_CFLAGS = $(AM_CFLAGS) @FLAG_W_NO_UNINITIALIZED@
+
memcmptest_CFLAGS = $(AM_CFLAGS) -fno-builtin-memcmp
mismatches_SOURCES = mismatches.cpp
@@ -260,6 +266,10 @@
new_nothrow_SOURCES = new_nothrow.cpp
new_override_SOURCES = new_override.cpp
+origin2_not_quite_CFLAGS = $(AM_CFLAGS) @FLAG_W_NO_UNINITIALIZED@
+
+origin3_no_CFLAGS = $(AM_CFLAGS) @FLAG_W_NO_UNINITIALIZED@
+
# This requires optimisation in order to get just one resulting error.
origin4_many_CFLAGS = $(AM_CFLAGS) -O
Modified: trunk/memcheck/tests/badfree.c
===================================================================
--- trunk/memcheck/tests/badfree.c 2009-08-12 12:52:23 UTC (rev 10793)
+++ trunk/memcheck/tests/badfree.c 2009-08-12 12:55:56 UTC (rev 10794)
@@ -2,7 +2,7 @@
#include <stdio.h>
#include <stdlib.h>
-
+static void* return_arg(void* q);
int main ( void )
{
void* p = (void*)0x87654321;
@@ -12,7 +12,18 @@
free(p);
/* Free a pointer to a stack block */
- free(q);
+ free(return_arg(q));
return 0;
}
+
+/*
+ * The only purpose of the function below is to make sure that gcc 4.4.x does
+ * not print the following warning during the compilation of this test program:
+ * warning: attempt to free a non-heap object
+ */
+static void* return_arg(void* q)
+{
+ return q;
+}
+
Modified: trunk/memcheck/tests/xml1.c
===================================================================
--- trunk/memcheck/tests/xml1.c 2009-08-12 12:52:23 UTC (rev 10793)
+++ trunk/memcheck/tests/xml1.c 2009-08-12 12:55:56 UTC (rev 10794)
@@ -2,7 +2,7 @@
#include <stdlib.h>
#include <stdio.h>
-
+static void* return_arg(void* p);
int frame3 ( void )
{
int *a = malloc(10 * sizeof(int));
@@ -25,7 +25,7 @@
free(a);
// more invalid frees
- free(&n);
+ free(return_arg(&n));
// leak ..
a = malloc(99 * sizeof(int));
@@ -48,3 +48,14 @@
{
return frame1() - 1;
}
+
+/*
+ * The only purpose of the function below is to make sure that gcc 4.4.x does
+ * not print the following warning during the compilation of this test program:
+ * warning: attempt to free a non-heap object
+ */
+static void* return_arg(void* p)
+{
+ return p;
+}
+
|